Submitted By: Pierre Labastie Date: 2022-05-15 Initial Package Version: 5.15.4 Upstream Status: Applied Origin: The kf5.15 branch (in git, origin/kde/5.15) - see https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection Patch generated using the procedure in https://wiki.linuxfromscratch.org/blfs/ticket/16549#comment:2 Submodule qt3d d2d93cc3..5fd39064: diff --git a/qt3d/src/animation/backend/animationclip.cpp b/qt3d/src/animation/backend/animationclip.cpp index 2c7e4fffb..78152c5bc 100644 --- a/qt3d/src/animation/backend/animationclip.cpp +++ b/qt3d/src/animation/backend/animationclip.cpp @@ -354,7 +354,7 @@ void AnimationClip::clearData() float AnimationClip::findDuration() { // Iterate over the contained fcurves and find the longest one - double tMax = 0.0; + float tMax = 0.f; for (const Channel &channel : qAsConst(m_channels)) { for (const ChannelComponent &channelComponent : qAsConst(channel.channelComponents)) { const float t = channelComponent.fcurve.endTime(); diff --git a/qt3d/src/animation/frontend/qkeyframe.h b/qt3d/src/animation/frontend/qkeyframe.h index 87e2812b2..a05e446dd 100644 --- a/qt3d/src/animation/frontend/qkeyframe.h +++ b/qt3d/src/animation/frontend/qkeyframe.h @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE namespace Qt3DAnimation { -class Q_3DANIMATIONSHARED_EXPORT QKeyFrame +class QKeyFrame { public: enum InterpolationType : quint8 { diff --git a/qt3d/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp b/qt3d/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp index f23dd8485..a472da774 100644 --- a/qt3d/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp +++ b/qt3d/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp @@ -634,6 +634,7 @@ UniformType GraphicsHelperGL4::uniformTypeFromGLType(GLenum type) case GL_SAMPLER_1D: case GL_SAMPLER_1D_ARRAY: case GL_SAMPLER_1D_SHADOW: + case GL_SAMPLER_1D_ARRAY_SHADOW: case GL_SAMPLER_2D: case GL_SAMPLER_2D_RECT: case GL_SAMPLER_2D_SHADOW: @@ -652,6 +653,7 @@ UniformType GraphicsHelperGL4::uniformTypeFromGLType(GLenum type) case GL_INT_SAMPLER_2D: case GL_INT_SAMPLER_3D: case GL_INT_SAMPLER_BUFFER: + case GL_INT_SAMPLER_2D_RECT: case GL_INT_SAMPLER_CUBE: case GL_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_INT_SAMPLER_1D_ARRAY: @@ -662,6 +664,7 @@ UniformType GraphicsHelperGL4::uniformTypeFromGLType(GLenum type) case GL_UNSIGNED_INT_SAMPLER_2D: case GL_UNSIGNED_INT_SAMPLER_3D: case GL_UNSIGNED_INT_SAMPLER_BUFFER: + case GL_UNSIGNED_INT_SAMPLER_2D_RECT: case GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: @@ -1078,17 +1081,21 @@ void GraphicsHelperGL4::buildUniformBuffer(const QVariant &v, const ShaderUnifor case GL_INT_SAMPLER_2D: case GL_INT_SAMPLER_3D: case GL_INT_SAMPLER_CUBE: + case GL_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_INT_SAMPLER_BUFFER: case GL_INT_SAMPLER_2D_RECT: case GL_UNSIGNED_INT_SAMPLER_1D: case GL_UNSIGNED_INT_SAMPLER_2D: case GL_UNSIGNED_INT_SAMPLER_3D: case GL_UNSIGNED_INT_SAMPLER_CUBE: + case GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_UNSIGNED_INT_SAMPLER_BUFFER: case GL_UNSIGNED_INT_SAMPLER_2D_RECT: case GL_SAMPLER_1D_SHADOW: case GL_SAMPLER_2D_SHADOW: case GL_SAMPLER_CUBE_SHADOW: + case GL_SAMPLER_CUBE_MAP_ARRAY: + case GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: case GL_SAMPLER_1D_ARRAY: case GL_SAMPLER_2D_ARRAY: case GL_INT_SAMPLER_1D_ARRAY: @@ -1251,6 +1258,10 @@ uint GraphicsHelperGL4::uniformByteSize(const ShaderUniform &description) case GL_SAMPLER_1D_SHADOW: case GL_SAMPLER_2D_SHADOW: case GL_SAMPLER_CUBE_SHADOW: + case GL_SAMPLER_CUBE_MAP_ARRAY: + case GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: + case GL_INT_SAMPLER_CUBE_MAP_ARRAY: + case GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_SAMPLER_1D_ARRAY: case GL_SAMPLER_2D_ARRAY: case GL_INT_SAMPLER_1D_ARRAY: diff --git a/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp b/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp index ab5948e49..ef32594e1 100644 --- a/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp +++ b/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp @@ -1598,7 +1598,7 @@ void SubmissionContext::blitFramebuffer(Qt3DCore::QNodeId inputRenderTargetId, if (!outputBufferIsDefault) { // Note that we use glDrawBuffers, not glDrawBuffer. The // latter is not available with GLES. - const int buf = glAttachmentPoint(outputAttachmentPoint); + const int buf = outputAttachmentPoint; drawBuffers(1, &buf); } diff --git a/qt3d/src/plugins/renderers/opengl/renderer/renderer.cpp b/qt3d/src/plugins/renderers/opengl/renderer/renderer.cpp index 5c55d3bb9..4de847bf3 100644 --- a/qt3d/src/plugins/renderers/opengl/renderer/renderer.cpp +++ b/qt3d/src/plugins/renderers/opengl/renderer/renderer.cpp @@ -594,38 +594,50 @@ void Renderer::releaseGraphicsResources() QOpenGLContext *context = m_submissionContext->openGLContext(); Q_ASSERT(context); - if (context->thread() == QThread::currentThread() && context->makeCurrent(offscreenSurface)) { - - // Clean up the graphics context and any resources - const std::vector &activeTexturesHandles = m_glResourceManagers->glTextureManager()->activeHandles(); - for (const HGLTexture &textureHandle : activeTexturesHandles) { - GLTexture *tex = m_glResourceManagers->glTextureManager()->data(textureHandle); - tex->destroy(); - } + if (context->thread() == QThread::currentThread()) { + QSurface *lastContextSurface = context->surface(); + + if (context->makeCurrent(offscreenSurface)) { + // Clean up the graphics context and any resources + const std::vector &activeTexturesHandles = m_glResourceManagers->glTextureManager()->activeHandles(); + for (const HGLTexture &textureHandle : activeTexturesHandles) { + GLTexture *tex = m_glResourceManagers->glTextureManager()->data(textureHandle); + tex->destroy(); + } - // Do the same thing with buffers - const std::vector &activeBuffers = m_glResourceManagers->glBufferManager()->activeHandles(); - for (const HGLBuffer &bufferHandle : activeBuffers) { - GLBuffer *buffer = m_glResourceManagers->glBufferManager()->data(bufferHandle); - buffer->destroy(m_submissionContext.data()); - } + // Do the same thing with buffers + const std::vector &activeBuffers = m_glResourceManagers->glBufferManager()->activeHandles(); + for (const HGLBuffer &bufferHandle : activeBuffers) { + GLBuffer *buffer = m_glResourceManagers->glBufferManager()->data(bufferHandle); + buffer->destroy(m_submissionContext.data()); + } - // Do the same thing with shaders - const QVector shaders = m_glResourceManagers->glShaderManager()->takeActiveResources(); - qDeleteAll(shaders); + // Do the same thing with shaders + const QVector shaders = m_glResourceManagers->glShaderManager()->takeActiveResources(); + qDeleteAll(shaders); - // Do the same thing with VAOs - const std::vector &activeVaos = m_glResourceManagers->vaoManager()->activeHandles(); - for (const HVao &vaoHandle : activeVaos) { - OpenGLVertexArrayObject *vao = m_glResourceManagers->vaoManager()->data(vaoHandle); - vao->destroy(); - } + // Do the same thing with VAOs + const std::vector &activeVaos = m_glResourceManagers->vaoManager()->activeHandles(); + for (const HVao &vaoHandle : activeVaos) { + OpenGLVertexArrayObject *vao = m_glResourceManagers->vaoManager()->data(vaoHandle); + vao->destroy(); + } - m_submissionContext->releaseRenderTargets(); + m_submissionContext->releaseRenderTargets(); - m_frameProfiler.reset(); - if (m_ownedContext) - context->doneCurrent(); + m_frameProfiler.reset(); + if (m_ownedContext) { + context->doneCurrent(); + } else { + // Leave the context in the state we found it in by restoring + // its last used surface. This satisfies expectations when used + // with QQuickWidgets that surface on current context after + // QQuickRenderControl cleanup is the same as prior to the + // cleanup. Arguably this could also be checked for in + // QQuickWidgetPrivate::invalidateRenderControl. + context->makeCurrent(lastContextSurface); + } + } } else { qWarning() << "Failed to make context current: OpenGL resources will not be destroyed"; } @@ -1872,6 +1884,7 @@ QVector Renderer::renderBinJobs() // Remove previous dependencies m_cleanupJob->removeDependency(QWeakPointer()); + const bool dirtyParametersForCurrentFrame = m_dirtyBits.marked & AbstractRenderer::ParameterDirty; const BackendNodeDirtySet dirtyBitsForFrame = m_dirtyBits.marked | m_dirtyBits.remaining; m_dirtyBits.marked = {}; m_dirtyBits.remaining = {}; @@ -1995,6 +2008,10 @@ QVector Renderer::renderBinJobs() m_dirtyBits.remaining = dirtyBitsForFrame & notCleared; + // Dirty Parameters might need 2 frames to react if the parameter references a texture + if (dirtyParametersForCurrentFrame) + m_dirtyBits.remaining |= AbstractRenderer::ParameterDirty; + return renderBinJobs; } diff --git a/qt3d/src/quick3d/imports/scene3d/scene3ditem.cpp b/qt3d/src/quick3d/imports/scene3d/scene3ditem.cpp index 377569f6a..126680595 100644 --- a/qt3d/src/quick3d/imports/scene3d/scene3ditem.cpp +++ b/qt3d/src/quick3d/imports/scene3d/scene3ditem.cpp @@ -219,6 +219,7 @@ Scene3DItem::Scene3DItem(QQuickItem *parent) , m_cameraAspectRatioMode(AutomaticAspectRatio) , m_compositingMode(FBO) , m_dummySurface(nullptr) + , m_framesToRender(ms_framesNeededToFlushPipeline) { setFlag(QQuickItem::ItemHasContents, true); setAcceptedMouseButtons(Qt::MouseButtonMask); @@ -542,8 +543,13 @@ bool Scene3DItem::needsRender(QRenderAspect *renderAspect) || (renderAspectPriv && renderAspectPriv->m_renderer && renderAspectPriv->m_renderer->shouldRender()); - m_dirty = false; - return dirty; + + if (m_dirty) { + --m_framesToRender; + if (m_framesToRender <= 0) + m_dirty = false; + } + return dirty || m_framesToRender > 0; } // This function is triggered in the context of the Main Thread @@ -911,15 +917,16 @@ QSGNode *Scene3DItem::updatePaintNode(QSGNode *node, QQuickItem::UpdatePaintNode updateWindowSurface(); managerNode->init(); // Note: ChangeArbiter is only set after aspect was registered - - // This allows Scene3DItem to know when it needs to re-render as a result of frontend nodes receiving a change. - QObject::connect(renderAspectPriv->m_aspectManager->changeArbiter(), &Qt3DCore::QChangeArbiter::receivedChange, - this, [this] { m_dirty = true; }, Qt::DirectConnection); - - // This allows Scene3DItem to know when it needs to re-render as a result of backend nodes receiving a change. - // For e.g. nodes being created/destroyed. - QObject::connect(renderAspectPriv->m_aspectManager->changeArbiter(), &Qt3DCore::QChangeArbiter::syncedChanges, - this, [this] { m_dirty = true; }, Qt::QueuedConnection); + QObject::connect( + renderAspectPriv->m_aspectManager->changeArbiter(), + &Qt3DCore::QChangeArbiter::receivedChange, this, + [this] { + m_dirty = true; + m_framesToRender = ms_framesNeededToFlushPipeline; + }, + Qt::DirectConnection); + // Give the window a nudge to trigger an update. + QMetaObject::invokeMethod(window(), "requestUpdate", Qt::QueuedConnection); } const bool usesFBO = m_compositingMode == FBO; diff --git a/qt3d/src/quick3d/imports/scene3d/scene3ditem_p.h b/qt3d/src/quick3d/imports/scene3d/scene3ditem_p.h index 4a939aaab..3a6ca5007 100644 --- a/qt3d/src/quick3d/imports/scene3d/scene3ditem_p.h +++ b/qt3d/src/quick3d/imports/scene3d/scene3ditem_p.h @@ -169,6 +169,9 @@ private: QOffscreenSurface *m_dummySurface; QVector m_views; QMetaObject::Connection m_windowConnection; + qint8 m_framesToRender; + + static const qint8 ms_framesNeededToFlushPipeline = 2; }; } // Qt3DRender diff --git a/qt3d/src/render/backend/cameralens.cpp b/qt3d/src/render/backend/cameralens.cpp index 9b8d7d710..743749210 100644 --- a/qt3d/src/render/backend/cameralens.cpp +++ b/qt3d/src/render/backend/cameralens.cpp @@ -133,12 +133,12 @@ void CameraLens::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstTim const Matrix4x4 projectionMatrix(node->projectionMatrix()); if (projectionMatrix != m_projection) { m_projection = projectionMatrix; - markDirty(AbstractRenderer::AllDirty); + markDirty(AbstractRenderer::ParameterDirty); } if (!qFuzzyCompare(node->exposure(), m_exposure)) { m_exposure = node->exposure(); - markDirty(AbstractRenderer::AllDirty); + markDirty(AbstractRenderer::ParameterDirty); } const QCameraLensPrivate *d = static_cast(QNodePrivate::get(node)); diff --git a/qt3d/src/render/backend/computecommand.cpp b/qt3d/src/render/backend/computecommand.cpp index bc82291f0..b80f81eb2 100644 --- a/qt3d/src/render/backend/computecommand.cpp +++ b/qt3d/src/render/backend/computecommand.cpp @@ -81,7 +81,10 @@ void ComputeCommand::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firs if (!node) return; + const bool wasEnabled = isEnabled(); BackendNode::syncFromFrontEnd(frontEnd, firstTime); + if (wasEnabled != isEnabled()) + markDirty(AbstractRenderer::ComputeDirty); if (m_workGroups[0] != node->workGroupX()) { m_workGroups[0] = node->workGroupX(); diff --git a/qt3d/src/render/frontend/qrenderaspect.cpp b/qt3d/src/render/frontend/qrenderaspect.cpp index 4e8967e6e..bbf1013d9 100644 --- a/qt3d/src/render/frontend/qrenderaspect.cpp +++ b/qt3d/src/render/frontend/qrenderaspect.cpp @@ -322,7 +322,9 @@ QRenderAspectPrivate::QRenderAspectPrivate(QRenderAspect::RenderType type) m_expandBoundingVolumeJob->addDependency(m_updateWorldBoundingVolumeJob); m_updateLevelOfDetailJob->addDependency(m_expandBoundingVolumeJob); m_pickBoundingVolumeJob->addDependency(m_expandBoundingVolumeJob); + m_pickBoundingVolumeJob->addDependency(m_updateEntityLayersJob); m_rayCastingJob->addDependency(m_expandBoundingVolumeJob); + m_rayCastingJob->addDependency(m_updateEntityLayersJob); } /*! \internal */ @@ -717,17 +719,20 @@ QVector QRenderAspect::jobsToExecute(qint64 time) if (entitiesEnabledDirty) jobs.push_back(d->m_updateTreeEnabledJob); - if (dirtyBitsForFrame & AbstractRenderer::TransformDirty) { + if (entitiesEnabledDirty || + dirtyBitsForFrame & AbstractRenderer::TransformDirty) { jobs.push_back(d->m_worldTransformJob); jobs.push_back(d->m_updateWorldBoundingVolumeJob); } - if (dirtyBitsForFrame & AbstractRenderer::GeometryDirty || + if (entitiesEnabledDirty || + dirtyBitsForFrame & AbstractRenderer::GeometryDirty || dirtyBitsForFrame & AbstractRenderer::BuffersDirty) { jobs.push_back(d->m_calculateBoundingVolumeJob); } - if (dirtyBitsForFrame & AbstractRenderer::GeometryDirty || + if (entitiesEnabledDirty || + dirtyBitsForFrame & AbstractRenderer::GeometryDirty || dirtyBitsForFrame & AbstractRenderer::TransformDirty) { jobs.push_back(d->m_expandBoundingVolumeJob); } diff --git a/qt3d/src/render/jobs/filterlayerentityjob.cpp b/qt3d/src/render/jobs/filterlayerentityjob.cpp index ae3cced59..401bbc148 100644 --- a/qt3d/src/render/jobs/filterlayerentityjob.cpp +++ b/qt3d/src/render/jobs/filterlayerentityjob.cpp @@ -75,6 +75,33 @@ void FilterLayerEntityJob::run() std::sort(m_filteredEntities.begin(), m_filteredEntities.end()); } +void FilterLayerEntityJob::filterEntityAgainstLayers(Entity *entity, + const Qt3DCore::QNodeIdVector &layerIds, + const QLayerFilter::FilterMode filterMode) +{ + // Perform filtering + switch (filterMode) { + case QLayerFilter::AcceptAnyMatchingLayers: { + filterAcceptAnyMatchingLayers(entity, layerIds); + break; + } + case QLayerFilter::AcceptAllMatchingLayers: { + filterAcceptAllMatchingLayers(entity, layerIds); + break; + } + case QLayerFilter::DiscardAnyMatchingLayers: { + filterDiscardAnyMatchingLayers(entity, layerIds); + break; + } + case QLayerFilter::DiscardAllMatchingLayers: { + filterDiscardAllMatchingLayers(entity, layerIds); + break; + } + default: + Q_UNREACHABLE(); + } +} + // We accept the entity if it contains any of the layers that are in the layer filter void FilterLayerEntityJob::filterAcceptAnyMatchingLayers(Entity *entity, const Qt3DCore::QNodeIdVector &layerIds) @@ -181,28 +208,8 @@ void FilterLayerEntityJob::filterLayerAndEntity() const QLayerFilter::FilterMode filterMode = layerFilter->filterMode(); // Perform filtering - for (Entity *entity : entitiesToFilter) { - switch (filterMode) { - case QLayerFilter::AcceptAnyMatchingLayers: { - filterAcceptAnyMatchingLayers(entity, layerIds); - break; - } - case QLayerFilter::AcceptAllMatchingLayers: { - filterAcceptAllMatchingLayers(entity, layerIds); - break; - } - case QLayerFilter::DiscardAnyMatchingLayers: { - filterDiscardAnyMatchingLayers(entity, layerIds); - break; - } - case QLayerFilter::DiscardAllMatchingLayers: { - filterDiscardAllMatchingLayers(entity, layerIds); - break; - } - default: - Q_UNREACHABLE(); - } - } + for (Entity *entity : entitiesToFilter) + filterEntityAgainstLayers(entity, layerIds, filterMode); // Entities to filter for the next frame are the filtered result of the // current LayerFilter diff --git a/qt3d/src/render/jobs/filterlayerentityjob_p.h b/qt3d/src/render/jobs/filterlayerentityjob_p.h index 33023775f..6e8636f28 100644 --- a/qt3d/src/render/jobs/filterlayerentityjob_p.h +++ b/qt3d/src/render/jobs/filterlayerentityjob_p.h @@ -80,6 +80,7 @@ public: // QAspectJob interface void run() final; + void filterEntityAgainstLayers(Entity *entity, const Qt3DCore::QNodeIdVector &layerIds, const QLayerFilter::FilterMode filterMode); void filterAcceptAnyMatchingLayers(Entity *entity, const Qt3DCore::QNodeIdVector &layerIds); void filterAcceptAllMatchingLayers(Entity *entity, const Qt3DCore::QNodeIdVector &layerIds); void filterDiscardAnyMatchingLayers(Entity *entity, const Qt3DCore::QNodeIdVector &layerIds); diff --git a/qt3d/src/render/jobs/pickboundingvolumejob.cpp b/qt3d/src/render/jobs/pickboundingvolumejob.cpp index eebacc681..7519cbd9c 100644 --- a/qt3d/src/render/jobs/pickboundingvolumejob.cpp +++ b/qt3d/src/render/jobs/pickboundingvolumejob.cpp @@ -330,6 +330,7 @@ bool PickBoundingVolumeJob::runHelper() } PickingUtils::HierarchicalEntityPicker entityPicker(ray); + entityPicker.setLayerFilterIds(vca.layersFilters); if (entityPicker.collectHits(m_manager, m_node)) { if (trianglePickingRequested) { PickingUtils::TriangleCollisionGathererFunctor gathererFunctor; @@ -472,6 +473,7 @@ void PickBoundingVolumeJob::dispatchPickEvents(const QMouseEvent &event, case QEvent::MouseButtonPress: { // Store pressed object handle m_currentPicker = objectPickerHandle; + m_currentViewport = viewportNodeId; // Send pressed event to m_currentPicker d->dispatches.push_back({objectPicker->peerId(), event.type(), pickEvent, viewportNodeId}); objectPicker->setPressed(true); @@ -489,6 +491,7 @@ void PickBoundingVolumeJob::dispatchPickEvents(const QMouseEvent &event, PickBoundingVolumeJobPrivate::MouseButtonClick, pickEvent, viewportNodeId}); m_currentPicker = HObjectPicker(); + m_currentViewport = {}; } break; } @@ -533,8 +536,9 @@ void PickBoundingVolumeJob::dispatchPickEvents(const QMouseEvent &event, switch (event.type()) { case QEvent::MouseButtonRelease: { // Send release event to m_currentPicker - if (lastCurrentPicker != nullptr) { + if (lastCurrentPicker != nullptr && m_currentViewport == viewportNodeId) { m_currentPicker = HObjectPicker(); + m_currentViewport = {}; QPickEventPtr pickEvent(new QPickEvent); lastCurrentPicker->setPressed(false); d->dispatches.push_back({lastCurrentPicker->peerId(), event.type(), pickEvent, viewportNodeId}); diff --git a/qt3d/src/render/jobs/pickboundingvolumejob_p.h b/qt3d/src/render/jobs/pickboundingvolumejob_p.h index 4f2c4340e..286bbb051 100644 --- a/qt3d/src/render/jobs/pickboundingvolumejob_p.h +++ b/qt3d/src/render/jobs/pickboundingvolumejob_p.h @@ -112,6 +112,7 @@ private: bool m_pickersDirty; bool m_oneHoverAtLeast; HObjectPicker m_currentPicker; + Qt3DCore::QNodeId m_currentViewport; QVector m_hoveredPickers; QVector m_hoveredPickersToClear; }; diff --git a/qt3d/src/render/jobs/pickboundingvolumeutils.cpp b/qt3d/src/render/jobs/pickboundingvolumeutils.cpp index 1d22e8645..f4c5cc094 100644 --- a/qt3d/src/render/jobs/pickboundingvolumeutils.cpp +++ b/qt3d/src/render/jobs/pickboundingvolumeutils.cpp @@ -52,6 +52,9 @@ #include #include #include +#include +#include +#include #include #include @@ -105,6 +108,11 @@ ViewportCameraAreaDetails ViewportCameraAreaGatherer::gatherUpViewportCameraArea // prevent picking in the presence of a NoPicking node return {}; } + case FrameGraphNode::LayerFilter: { + auto fnode = static_cast(node); + vca.layersFilters.push_back(fnode->peerId()); + break; + } default: break; } @@ -139,7 +147,8 @@ bool ViewportCameraAreaGatherer::isUnique(const QVector worklist; - worklist.push_back({root, !root->componentHandle().isNull(), {}, 0}); - - LayerManager *layerManager = manager->layerManager(); + worklist.push_back({root, !root->componentHandle().isNull(), 0}); + + // Record all entities that satisfy layerFiltering. We can then check against + // that to see if a picked Entity also satisfies the layer filtering + + // Note: PickBoundingVolumeJob filters against LayerFilter nodes (FG) whereas + // the RayCastingJob filters only against a set of Layers and a filter Mode + const bool hasLayerFilters = m_layerFilterIds.size() > 0; + const bool hasLayers = m_layerIds.size() > 0; + const bool hasLayerFiltering = hasLayerFilters || hasLayers; + QVector layerFilterEntities; + FilterLayerEntityJob layerFilterJob; + layerFilterJob.setManager(manager); + + if (hasLayerFilters) { + // Note: we expect UpdateEntityLayersJob was called beforehand to handle layer recursivness + // Filtering against LayerFilters (PickBoundingVolumeJob) + if (m_layerFilterIds.size()) { + layerFilterJob.setLayerFilters(m_layerFilterIds); + layerFilterJob.run(); + layerFilterEntities = layerFilterJob.filteredEntities(); + } + } while (!worklist.empty()) { EntityData current = worklist.back(); worklist.pop_back(); - bool accepted = true; - if (m_layerIds.size()) { - // TODO investigate reusing logic from LayerFilter job - Qt3DCore::QNodeIdVector filterLayers = current.recursiveLayers + current.entity->componentsUuid(); - - // remove disabled layers - filterLayers.erase(std::remove_if(filterLayers.begin(), filterLayers.end(), - [layerManager](const Qt3DCore::QNodeId layerId) { - Layer *layer = layerManager->lookupResource(layerId); - return !layer || !layer->isEnabled(); - }), filterLayers.end()); - - std::sort(filterLayers.begin(), filterLayers.end()); - - Qt3DCore::QNodeIdVector commonIds; - std::set_intersection(m_layerIds.cbegin(), m_layerIds.cend(), - filterLayers.cbegin(), filterLayers.cend(), - std::back_inserter(commonIds)); - - switch (m_filterMode) { - case QAbstractRayCaster::AcceptAnyMatchingLayers: { - accepted = !commonIds.empty(); - break; - } - case QAbstractRayCaster::AcceptAllMatchingLayers: { - accepted = commonIds == m_layerIds; - break; - } - case QAbstractRayCaster::DiscardAnyMatchingLayers: { - accepted = commonIds.empty(); - break; - } - case QAbstractRayCaster::DiscardAllMatchingLayers: { - accepted = !(commonIds == m_layerIds); - break; - } - default: - Q_UNREACHABLE(); - break; - } - } - // first pick entry sub-scene-graph QCollisionQueryResult::Hit queryResult = rayCasting.query(m_ray, current.entity->worldBoundingVolumeWithChildren()); @@ -784,21 +773,27 @@ bool HierarchicalEntityPicker::collectHits(NodeManagers *manager, Entity *root) // if we get a hit, we check again for this specific entity queryResult = rayCasting.query(m_ray, current.entity->worldBoundingVolume()); - if (accepted && queryResult.m_distance >= 0.f && (current.hasObjectPicker || !m_objectPickersRequired)) { + + // Check Entity is in selected Layers if we have LayerIds or LayerFilterIds + // Note: it's not because a parent doesn't satisfy the layerFiltering that a child might not. + // Therefore we need to keep traversing children in all cases + + // Are we filtering against layerIds (RayCastingJob) + if (hasLayers) { + // QLayerFilter::FilterMode and QAbstractRayCaster::FilterMode are the same + layerFilterJob.filterEntityAgainstLayers(current.entity, m_layerIds, static_cast(m_layerFilterMode)); + layerFilterEntities = layerFilterJob.filteredEntities(); + } + + const bool isInLayers = !hasLayerFiltering || layerFilterEntities.contains(current.entity); + + if (isInLayers && queryResult.m_distance >= 0.f && (current.hasObjectPicker || !m_objectPickersRequired)) { m_entities.push_back(current.entity); m_hits.push_back(queryResult); // Record entry for entity/priority m_entityToPriorityTable.insert(current.entity->peerId(), current.priority); } - Qt3DCore::QNodeIdVector recursiveLayers; - const Qt3DCore::QNodeIdVector entityLayers = current.entity->componentsUuid(); - for (const Qt3DCore::QNodeId layerId : entityLayers) { - Layer *layer = layerManager->lookupResource(layerId); - if (layer->recursive()) - recursiveLayers << layerId; - } - // and pick children const auto childrenHandles = current.entity->childrenHandles(); for (const HEntity &handle : childrenHandles) { @@ -806,7 +801,6 @@ bool HierarchicalEntityPicker::collectHits(NodeManagers *manager, Entity *root) if (child) { ObjectPicker *childPicker = child->renderComponent(); worklist.push_back({child, current.hasObjectPicker || childPicker, - current.recursiveLayers + recursiveLayers, (childPicker ? childPicker->priority() : current.priority)}); } } diff --git a/qt3d/src/render/jobs/pickboundingvolumeutils_p.h b/qt3d/src/render/jobs/pickboundingvolumeutils_p.h index fa3e701c2..1fe81fc46 100644 --- a/qt3d/src/render/jobs/pickboundingvolumeutils_p.h +++ b/qt3d/src/render/jobs/pickboundingvolumeutils_p.h @@ -83,8 +83,9 @@ struct Q_AUTOTEST_EXPORT ViewportCameraAreaDetails QRectF viewport; QSize area; QSurface *surface = nullptr; + Qt3DCore::QNodeIdVector layersFilters; }; -QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, PickingUtils, ViewportCameraAreaDetails, Q_PRIMITIVE_TYPE) +QT3D_DECLARE_TYPEINFO_3(Qt3DRender, Render, PickingUtils, ViewportCameraAreaDetails, Q_COMPLEX_TYPE) class Q_AUTOTEST_EXPORT ViewportCameraAreaGatherer { @@ -108,7 +109,8 @@ class Q_AUTOTEST_EXPORT HierarchicalEntityPicker public: explicit HierarchicalEntityPicker(const RayCasting::QRay3D &ray, bool requireObjectPicker = true); - void setFilterLayers(const Qt3DCore::QNodeIdVector &layerIds, QAbstractRayCaster::FilterMode mode); + void setLayerFilterIds(const Qt3DCore::QNodeIdVector &layerFilterIds); + void setLayerIds(const Qt3DCore::QNodeIdVector &layerIds, QAbstractRayCaster::FilterMode mode); bool collectHits(NodeManagers *manager, Entity *root); inline HitList hits() const { return m_hits; } @@ -120,8 +122,9 @@ private: HitList m_hits; QVector m_entities; bool m_objectPickersRequired; + Qt3DCore::QNodeIdVector m_layerFilterIds; Qt3DCore::QNodeIdVector m_layerIds; - QAbstractRayCaster::FilterMode m_filterMode; + QAbstractRayCaster::FilterMode m_layerFilterMode = QAbstractRayCaster::AcceptAnyMatchingLayers; QHash m_entityToPriorityTable; }; diff --git a/qt3d/src/render/jobs/raycastingjob.cpp b/qt3d/src/render/jobs/raycastingjob.cpp index b7d4c4b7c..56f681a2c 100644 --- a/qt3d/src/render/jobs/raycastingjob.cpp +++ b/qt3d/src/render/jobs/raycastingjob.cpp @@ -202,7 +202,7 @@ bool RayCastingJob::runHelper() for (const QRay3D &ray: qAsConst(rays)) { PickingUtils::HitList sphereHits; PickingUtils::HierarchicalEntityPicker entityPicker(ray, false); - entityPicker.setFilterLayers(pair.second->layerIds(), pair.second->filterMode()); + entityPicker.setLayerIds(pair.second->layerIds(), pair.second->filterMode()); if (entityPicker.collectHits(m_manager, m_node)) { if (trianglePickingRequested) { PickingUtils::TriangleCollisionGathererFunctor gathererFunctor; diff --git a/qt3d/src/render/picking/objectpicker.cpp b/qt3d/src/render/picking/objectpicker.cpp index 2835d1b0e..cc2ebbf15 100644 --- a/qt3d/src/render/picking/objectpicker.cpp +++ b/qt3d/src/render/picking/objectpicker.cpp @@ -81,7 +81,15 @@ void ObjectPicker::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstT if (!node) return; - BackendNode::syncFromFrontEnd(frontEnd, firstTime); + if (firstTime) { + markDirty(AbstractRenderer::AllDirty); + notifyJob(); + } + + if (isEnabled() != node->isEnabled()) { + markDirty(AbstractRenderer::AllDirty); + // We let QBackendNode::syncFromFrontEnd change the enabled property + } if (node->isHoverEnabled() != m_hoverEnabled) { m_hoverEnabled = node->isHoverEnabled(); @@ -100,6 +108,8 @@ void ObjectPicker::syncFromFrontEnd(const Qt3DCore::QNode *frontEnd, bool firstT markDirty(AbstractRenderer::AllDirty); notifyJob(); } + + BackendNode::syncFromFrontEnd(frontEnd, firstTime); } void ObjectPicker::notifyJob() diff --git a/qt3d/src/render/shadergraph/qshadernode.cpp b/qt3d/src/render/shadergraph/qshadernode.cpp index e0421e006..56c9961f3 100644 --- a/qt3d/src/render/shadergraph/qshadernode.cpp +++ b/qt3d/src/render/shadergraph/qshadernode.cpp @@ -152,11 +152,15 @@ QVector QShaderNode::availableFormats() const QShaderNode::Rule QShaderNode::rule(const QShaderFormat &format) const { - const auto it = std::find_if(m_rules.crbegin(), m_rules.crend(), - [format](const QPair &entry) { - return format.supports(entry.first); - }); - return it != m_rules.crend() ? it->second : Rule(); + const QPair *selected = nullptr; + for (auto it = m_rules.crbegin(); it != m_rules.crend(); ++it) { + const auto &entry = *it; + if (format.supports(entry.first)) { + if (!selected || entry.first.version() > selected->first.version()) + selected = &entry; + } + } + return selected ? selected->second : Rule(); } QShaderNode::Rule::Rule(const QByteArray &subs, const QByteArrayList &snippets) noexcept diff --git a/qt3d/tests/auto/render/aspect/tst_aspect.cpp b/qt3d/tests/auto/render/aspect/tst_aspect.cpp index 9bd5df698..5d0ead7ef 100644 --- a/qt3d/tests/auto/render/aspect/tst_aspect.cpp +++ b/qt3d/tests/auto/render/aspect/tst_aspect.cpp @@ -139,6 +139,10 @@ private Q_SLOTS: // THEN -> enabled dirty QCOMPARE(jobs.size(), 1 + // UpdateTreeEnabled + 1 + // UpdateTransform + 1 + // UpdateWorldBoundingVolume + 1 + // CalcBoundingVolume + 1 + // ExpandBoundingVolume 1 + // SyncLoadingJobs 1 + // UpdateSkinningPalette 1 + // UpdateLevelOfDetail diff --git a/qt3d/tests/auto/render/computecommand/tst_computecommand.cpp b/qt3d/tests/auto/render/computecommand/tst_computecommand.cpp index d6fa1d579..e583a9c61 100644 --- a/qt3d/tests/auto/render/computecommand/tst_computecommand.cpp +++ b/qt3d/tests/auto/render/computecommand/tst_computecommand.cpp @@ -141,6 +141,10 @@ private Q_SLOTS: backendComputeCommand.setRenderer(&renderer); simulateInitializationSync(&computeCommand, &backendComputeCommand); + // THEN + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); + { // WHEN const bool newValue = false; @@ -149,6 +153,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.isEnabled(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -158,6 +164,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.x(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -167,6 +175,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.y(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -176,6 +186,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.z(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -185,6 +197,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.runType(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } { // WHEN @@ -194,6 +208,8 @@ private Q_SLOTS: // THEN QCOMPARE(backendComputeCommand.frameCount(), newValue); + QVERIFY(renderer.dirtyBits() & Qt3DRender::Render::AbstractRenderer::ComputeDirty); + renderer.clearDirtyBits(Qt3DRender::Render::AbstractRenderer::AllDirty); } } diff --git a/qt3d/tests/auto/render/objectpicker/tst_objectpicker.cpp b/qt3d/tests/auto/render/objectpicker/tst_objectpicker.cpp index 24fa2159d..b1898e040 100644 --- a/qt3d/tests/auto/render/objectpicker/tst_objectpicker.cpp +++ b/qt3d/tests/auto/render/objectpicker/tst_objectpicker.cpp @@ -40,6 +40,21 @@ class tst_ObjectPicker : public Qt3DCore::QBackendNodeTester Q_OBJECT private Q_SLOTS: + void checkInitialSync() + { + // GIVEN + TestRenderer renderer; + Qt3DRender::Render::ObjectPicker objectPicker; + Qt3DRender::QObjectPicker picker; + + // WHEN + objectPicker.setRenderer(&renderer); + simulateInitializationSync(&picker, &objectPicker); + + // THEN + QVERIFY(renderer.dirtyBits() != 0); + } + void checkPeerPropertyMirroring() { // GIVEN diff --git a/qt3d/tests/auto/render/pickboundingvolumejob/pickboundingvolumejob.qrc b/qt3d/tests/auto/render/pickboundingvolumejob/pickboundingvolumejob.qrc index 76150da31..df0198f76 100644 --- a/qt3d/tests/auto/render/pickboundingvolumejob/pickboundingvolumejob.qrc +++ b/qt3d/tests/auto/render/pickboundingvolumejob/pickboundingvolumejob.qrc @@ -12,5 +12,7 @@ testscene_cameraposition.qml testscene_priorityoverlapping.qml testscene_nopicking.qml + testscene_layerfilter.qml + testscene_nested_layerfilter.qml diff --git a/qt3d/tests/auto/render/pickboundingvolumejob/testscene_layerfilter.qml b/qt3d/tests/auto/render/pickboundingvolumejob/testscene_layerfilter.qml new file mode 100644 index 000000000..392623a6a --- /dev/null +++ b/qt3d/tests/auto/render/pickboundingvolumejob/testscene_layerfilter.qml @@ -0,0 +1,162 @@ +/**************************************************************************** +** +** Copyright (C) 2021 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * 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. +** * Neither the name of The Qt Company Ltd 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +** "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 COPYRIGHT +** OWNER OR CONTRIBUTORS 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, 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." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt3D.Core 2.0 +import Qt3D.Render 2.0 +import Qt3D.Extras 2.0 +import QtQuick.Window 2.0 + +Entity { + id: sceneRoot + + Window { + id: _view + width: 600 + height: 600 + visible: true + } + + Camera { + id: camera + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: _view.width / 2 / _view.height + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 0.0, 0.0, -10.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } + + Camera { + id: camera2 + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: _view.width / 2 / _view.height + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 0.0, 0.0, -10.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } + + FirstPersonCameraController { + camera: camera + } + + DirectionalLight { + worldDirection: camera.viewVector.times(-1) + } + + // Draw 2 viewports + components: [ + RenderSettings { + RenderSurfaceSelector { + surface: _view + + Viewport { + normalizedRect: Qt.rect(0.0, 0.0, 0.5, 1.0) + ClearBuffers { + buffers : ClearBuffers.ColorDepthBuffer + clearColor: "white" + CameraSelector { + camera: camera + + LayerFilter { + layers: [ layer1 ] + } + } + } + } + + Viewport { + normalizedRect: Qt.rect(0.5, 0.0, 0.5, 1.0) + CameraSelector { + camera: camera2 + + LayerFilter { + layers: [ layer2 ] + } + } + } + } + } + ] + + CuboidMesh { id: cubeMesh } + + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker1" + onClicked: console.log("o1") + } + readonly property Transform transform: Transform { + scale: 4 + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "red" } + readonly property Layer layer: Layer { id: layer1 } + + components: [cubeMesh, transform, material, objectPicker, layer ] + } + + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker2" + onClicked: console.log("o2") + } + readonly property Transform transform: Transform { + scale: 3 + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "green" } + readonly property Layer layer: Layer { id: layer2 } + + components: [cubeMesh, transform, material, objectPicker, layer ] + } +} diff --git a/qt3d/tests/auto/render/pickboundingvolumejob/testscene_nested_layerfilter.qml b/qt3d/tests/auto/render/pickboundingvolumejob/testscene_nested_layerfilter.qml new file mode 100644 index 000000000..b913b6f5f --- /dev/null +++ b/qt3d/tests/auto/render/pickboundingvolumejob/testscene_nested_layerfilter.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** Copyright (C) 2021 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * 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. +** * Neither the name of The Qt Company Ltd 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 COPYRIGHT HOLDERS AND CONTRIBUTORS +** "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 COPYRIGHT +** OWNER OR CONTRIBUTORS 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, 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." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import Qt3D.Core 2.0 +import Qt3D.Render 2.0 +import Qt3D.Extras 2.0 +import QtQuick.Window 2.0 + +Entity { + id: sceneRoot + + Window { + id: _view + width: 600 + height: 600 + visible: true + } + + Camera { + id: camera + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: _view.width / 2 / _view.height + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 0.0, 0.0, -10.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } + + Camera { + id: camera2 + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: _view.width / 2 / _view.height + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 0.0, 0.0, -10.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } + + FirstPersonCameraController { + camera: camera + } + + DirectionalLight { + worldDirection: camera.viewVector.times(-1) + } + + // Draw 2 viewports + components: [ + RenderSettings { + RenderSurfaceSelector { + surface: _view + + Viewport { + normalizedRect: Qt.rect(0.0, 0.0, 0.5, 1.0) + ClearBuffers { + buffers : ClearBuffers.ColorDepthBuffer + clearColor: "red" + CameraSelector { + camera: camera + + LayerFilter { + // Any of + layers: [ layer1, layer3 ] + + LayerFilter { + filterMode: LayerFilter.DiscardAnyMatchingLayers + layers: [layer2] + } + } + } + } + } + + Viewport { + normalizedRect: Qt.rect(0.5, 0.0, 0.5, 1.0) + CameraSelector { + camera: camera2 + + LayerFilter { + layers: [ layerRecursive ] + + LayerFilter { + filterMode: LayerFilter.DiscardAnyMatchingLayers + layers: [layer1] + } + } + } + } + } + + pickingSettings { + pickMethod: PickingSettings.TrianglePicking + } + } + ] + + CuboidMesh { id: cubeMesh } + + Layer { id: layerRecursive; recursive: true } + Layer { id: layer1 } + Layer { id: layer2 } + Layer { id: layer3 } + + Entity { + id: rootSceneEntity + components: [layerRecursive] + + // Selected by Viewport 1 + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker1" + onClicked: console.log("o1 " + pick.position) + } + readonly property Transform transform: Transform { + scale: 2 + translation: Qt.vector3d(-1, 0, 0) + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "red" } + + components: [cubeMesh, transform, material, objectPicker, layer1 ] + } + + // Selected by Viewport 2 + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker2" + onClicked: console.log("o2" + pick.position) + } + readonly property Transform transform: Transform { + scale: 3 + translation: Qt.vector3d(-2, 3, 5) + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "green" } + + components: [cubeMesh, transform, material, objectPicker, layer2 ] + } + + // Not Selected by Any Viewport + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker3" + onClicked: console.log("o3" + pick.position) + } + readonly property Transform transform: Transform { + scale: 4 + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "blue" } + + components: [cubeMesh, transform, material, objectPicker, layer1, layer2 ] + } + + // Both Viewport + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker4" + onClicked: console.log("o4" + pick.position) + } + readonly property Transform transform: Transform { + scale: 1 + translation: Qt.vector3d(0, -2, -1) + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "orange" } + + components: [cubeMesh, transform, material, objectPicker, layer3 ] + } + + // Viewport 1 + Entity { + readonly property ObjectPicker objectPicker: ObjectPicker { + objectName: "Picker5" + onClicked: console.log("o5" + pick.position) + } + readonly property Transform transform: Transform { + scale: 2 + translation: Qt.vector3d(0, 1, 3) + } + readonly property PhongMaterial material: PhongMaterial { diffuse: "purple" } + + components: [cubeMesh, transform, material, objectPicker, layer3, layer1 ] + } + } +} diff --git a/qt3d/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp b/qt3d/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp index 0c1ee0183..41afb0ee9 100644 --- a/qt3d/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp +++ b/qt3d/tests/auto/render/pickboundingvolumejob/tst_pickboundingvolumejob.cpp @@ -60,6 +60,7 @@ #include #include #include +#include #include #include #include @@ -215,6 +216,10 @@ void runRequiredJobs(Qt3DRender::TestAspect *test) Qt3DRender::Render::CalcGeometryTriangleVolumes calcGeometryTriangles(geometryRendererId, test->nodeManagers()); calcGeometryTriangles.run(); } + + Qt3DRender::Render::UpdateEntityLayersJob updateEntityLayer; + updateEntityLayer.setManager(test->nodeManagers()); + updateEntityLayer.run(); } void initializePickBoundingVolumeJob(Qt3DRender::Render::PickBoundingVolumeJob *job, Qt3DRender::TestAspect *test) @@ -287,7 +292,6 @@ private: } private Q_SLOTS: - void viewportCameraAreaGather() { // GIVEN @@ -1547,6 +1551,390 @@ private Q_SLOTS: QCOMPARE(mouseExited.count(), 0); } + void checkPickerAndLayerFilters() + { + // GIVEN + QmlSceneReader sceneReader(QUrl("qrc:/testscene_layerfilter.qml")); + QScopedPointer root(qobject_cast(sceneReader.root())); + QVERIFY(root); + + QScopedPointer test(new Qt3DRender::TestAspect(root.data())); + TestArbiter arbiter; + + // Runs Required jobs + runRequiredJobs(test.data()); + + // THEN + // object partially obscured by another viewport, make sure only visible portion is pickable + QList pickers = root->findChildren(); + QCOMPARE(pickers.size(), 2); + + Qt3DRender::QObjectPicker *picker1 = pickers.front(); + QCOMPARE(picker1->objectName(), QLatin1String("Picker1")); + + Qt3DRender::Render::ObjectPicker *backendPicker1 = test->nodeManagers()->objectPickerManager()->lookupResource(picker1->id()); + QVERIFY(backendPicker1); + + QSignalSpy mouseButtonPressedSpy1(picker1, &Qt3DRender::QObjectPicker::pressed); + + QVERIFY(mouseButtonPressedSpy1.isValid()); + + Qt3DRender::QObjectPicker *picker2 = pickers.last(); + QCOMPARE(picker2->objectName(), QLatin1String("Picker2")); + + Qt3DRender::Render::ObjectPicker *backendPicker2 = test->nodeManagers()->objectPickerManager()->lookupResource(picker2->id()); + QVERIFY(backendPicker2); + + QSignalSpy mouseButtonPressedSpy2(picker2, &Qt3DRender::QObjectPicker::pressed); + + QVERIFY(mouseButtonPressedSpy2.isValid()); + + // WHEN -> Pressed on object in vp1 + Qt3DRender::Render::PickBoundingVolumeJob pickBVJob; + initializePickBoundingVolumeJob(&pickBVJob, test.data()); + + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(150., 300.), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier) }); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Pressed + QVERIFY(!earlyReturn); + QVERIFY(backendPicker1->isPressed()); + QVERIFY(picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 0); + + events.clear(); + + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonRelease, QPointF(150., 300.), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + pickBVJob.runHelper(); + } + + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(450., 300.), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Nothing happened + QVERIFY(!earlyReturn); + QVERIFY(backendPicker2->isPressed()); + QVERIFY(picker2->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + } + } + + void checkPickerAndNestedLayerFilters() + { + // GIVEN + QmlSceneReader sceneReader(QUrl("qrc:/testscene_nested_layerfilter.qml")); + QScopedPointer root(qobject_cast(sceneReader.root())); + QVERIFY(root); + + QScopedPointer test(new Qt3DRender::TestAspect(root.data())); + TestArbiter arbiter; + + // Runs Required jobs + runRequiredJobs(test.data()); + + // THEN + // object partially obscured by another viewport, make sure only visible portion is pickable + QList pickers = root->findChildren(); + QCOMPARE(pickers.size(), 5); + + Qt3DRender::QObjectPicker *picker1 = pickers[0]; + QCOMPARE(picker1->objectName(), QLatin1String("Picker1")); + Qt3DRender::QObjectPicker *picker2 = pickers[1]; + QCOMPARE(picker2->objectName(), QLatin1String("Picker2")); + Qt3DRender::QObjectPicker *picker3 = pickers[2]; + QCOMPARE(picker3->objectName(), QLatin1String("Picker3")); + Qt3DRender::QObjectPicker *picker4 = pickers[3]; + QCOMPARE(picker4->objectName(), QLatin1String("Picker4")); + Qt3DRender::QObjectPicker *picker5 = pickers[4]; + QCOMPARE(picker5->objectName(), QLatin1String("Picker5")); + + Qt3DRender::Render::ObjectPicker *backendPicker1 = test->nodeManagers()->objectPickerManager()->lookupResource(picker1->id()); + QVERIFY(backendPicker1); + + QSignalSpy mouseButtonPressedSpy1(picker1, &Qt3DRender::QObjectPicker::pressed); + QVERIFY(mouseButtonPressedSpy1.isValid()); + + Qt3DRender::Render::ObjectPicker *backendPicker2 = test->nodeManagers()->objectPickerManager()->lookupResource(picker2->id()); + QVERIFY(backendPicker2); + + QSignalSpy mouseButtonPressedSpy2(picker2, &Qt3DRender::QObjectPicker::pressed); + QVERIFY(mouseButtonPressedSpy2.isValid()); + + Qt3DRender::Render::ObjectPicker *backendPicker3 = test->nodeManagers()->objectPickerManager()->lookupResource(picker3->id()); + QVERIFY(backendPicker3); + + QSignalSpy mouseButtonPressedSpy3(picker3, &Qt3DRender::QObjectPicker::pressed); + QVERIFY(mouseButtonPressedSpy3.isValid()); + + Qt3DRender::Render::ObjectPicker *backendPicker4 = test->nodeManagers()->objectPickerManager()->lookupResource(picker4->id()); + QVERIFY(backendPicker4); + + QSignalSpy mouseButtonPressedSpy4(picker4, &Qt3DRender::QObjectPicker::pressed); + QVERIFY(mouseButtonPressedSpy4.isValid()); + + Qt3DRender::Render::ObjectPicker *backendPicker5 = test->nodeManagers()->objectPickerManager()->lookupResource(picker5->id()); + QVERIFY(backendPicker5); + + QSignalSpy mouseButtonPressedSpy5(picker5, &Qt3DRender::QObjectPicker::pressed); + QVERIFY(mouseButtonPressedSpy5.isValid()); + + Qt3DRender::Render::PickBoundingVolumeJob pickBVJob; + initializePickBoundingVolumeJob(&pickBVJob, test.data()); + + // Picker1 -> Viewport 1 + // Picker2 -> Viewport 2 + // Picker3 -> No Viewport + // Picker4 -> Viewport 1 and 2 + // Picker5 -> Viewport 1 + + // WHEN -> Pressed on object1 in VP1 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(200.0f, 300.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Pressed + QVERIFY(!earlyReturn); + QVERIFY(backendPicker1->isPressed()); + QVERIFY(picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(!backendPicker4->isPressed()); + QVERIFY(!picker4->isPressed()); + QVERIFY(!backendPicker5->isPressed()); + QVERIFY(!picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 0); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 0); + QCOMPARE(mouseButtonPressedSpy5.count(), 0); + + events.clear(); + + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonRelease, QPointF(200.0f, 300.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + pickBVJob.runHelper(); + } + + // WHEN -> Pressed on object2 in VP2 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(541.0f, 183.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Pressed + QVERIFY(!earlyReturn); + QVERIFY(!backendPicker1->isPressed()); + QVERIFY(!picker1->isPressed()); + QVERIFY(backendPicker2->isPressed()); + QVERIFY(picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(!backendPicker4->isPressed()); + QVERIFY(!picker4->isPressed()); + QVERIFY(!backendPicker5->isPressed()); + QVERIFY(!picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 0); + QCOMPARE(mouseButtonPressedSpy5.count(), 0); + + events.clear(); + + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonRelease, QPointF(541.0f, 183.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + pickBVJob.runHelper(); + } + + // WHEN -> Pressed on object3 in VP1 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(80.0f, 150.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Nothing Pressed as not selected by Layer + QVERIFY(!earlyReturn); + QVERIFY(!backendPicker1->isPressed()); + QVERIFY(!picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(!backendPicker4->isPressed()); + QVERIFY(!picker4->isPressed()); + QVERIFY(!backendPicker5->isPressed()); + QVERIFY(!picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 0); + QCOMPARE(mouseButtonPressedSpy5.count(), 0); + } + + // WHEN -> Pressed on object3 in VP2 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(504.0f, 263.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Nothing Pressed as not selected by Layer + QVERIFY(!earlyReturn); + QVERIFY(!backendPicker1->isPressed()); + QVERIFY(!picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(!backendPicker4->isPressed()); + QVERIFY(!picker4->isPressed()); + QVERIFY(!backendPicker5->isPressed()); + QVERIFY(!picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 0); + QCOMPARE(mouseButtonPressedSpy5.count(), 0); + } + + // WHEN -> Pressed on object4 in VP1 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(160.0f, 431.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Pressed + QVERIFY(!earlyReturn); + QVERIFY(!backendPicker1->isPressed()); + QVERIFY(!picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(backendPicker4->isPressed()); + QVERIFY(picker4->isPressed()); + QVERIFY(!backendPicker5->isPressed()); + QVERIFY(!picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 1); + QCOMPARE(mouseButtonPressedSpy5.count(), 0); + + events.clear(); + + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonRelease, QPointF(160.0f, 431.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + pickBVJob.runHelper(); + } + + // WHEN -> Pressed on object4 in VP2 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(447.0f, 472.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Pressed + QVERIFY(!earlyReturn); + QVERIFY(!backendPicker1->isPressed()); + QVERIFY(!picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(backendPicker4->isPressed()); + QVERIFY(picker4->isPressed()); + QVERIFY(!backendPicker5->isPressed()); + QVERIFY(!picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 2); + QCOMPARE(mouseButtonPressedSpy5.count(), 0); + + events.clear(); + + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonRelease, QPointF(447.0f, 472.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + pickBVJob.runHelper(); + } + + // WHEN -> Pressed on object5 in VP1 + { + QList> events; + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonPress, QPointF(153.0f, 195.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + bool earlyReturn = !pickBVJob.runHelper(); + Qt3DCore::QAspectJobPrivate::get(&pickBVJob)->postFrame(test->aspectManager()); + + // THEN -> Pressed + QVERIFY(!earlyReturn); + QVERIFY(!backendPicker1->isPressed()); + QVERIFY(!picker1->isPressed()); + QVERIFY(!backendPicker2->isPressed()); + QVERIFY(!picker2->isPressed()); + QVERIFY(!backendPicker3->isPressed()); + QVERIFY(!picker3->isPressed()); + QVERIFY(!backendPicker4->isPressed()); + QVERIFY(!picker4->isPressed()); + QVERIFY(backendPicker5->isPressed()); + QVERIFY(picker5->isPressed()); + QCOMPARE(mouseButtonPressedSpy1.count(), 1); + QCOMPARE(mouseButtonPressedSpy2.count(), 1); + QCOMPARE(mouseButtonPressedSpy3.count(), 0); + QCOMPARE(mouseButtonPressedSpy4.count(), 2); + QCOMPARE(mouseButtonPressedSpy5.count(), 1); + + events.clear(); + + events.push_back({nullptr, QMouseEvent(QMouseEvent::MouseButtonRelease, QPointF(153.0f, 195.0f), + Qt::LeftButton, Qt::LeftButton, Qt::NoModifier)}); + pickBVJob.setMouseEvents(events); + pickBVJob.runHelper(); + } + } + void checkMultipleRayDirections_data() { QTest::addColumn("cameraOrigin"); @@ -1879,7 +2267,6 @@ private Q_SLOTS: QCOMPARE(vca.cameraId, camera->id()); QCOMPARE(vca.viewport, QRectF(0., 0., 1., 1.)); } - }; QTEST_MAIN(tst_PickBoundingVolumeJob) diff --git a/qt3d/tests/auto/render/raycastingjob/tst_raycastingjob.cpp b/qt3d/tests/auto/render/raycastingjob/tst_raycastingjob.cpp index 9eb73cbd6..6638d88d9 100644 --- a/qt3d/tests/auto/render/raycastingjob/tst_raycastingjob.cpp +++ b/qt3d/tests/auto/render/raycastingjob/tst_raycastingjob.cpp @@ -58,6 +58,7 @@ #include #include #include +#include #include #include @@ -212,6 +213,10 @@ void runRequiredJobs(Qt3DRender::TestAspect *test) Qt3DRender::Render::CalcGeometryTriangleVolumes calcGeometryTriangles(geometryRendererId, test->nodeManagers()); calcGeometryTriangles.run(); } + + Qt3DRender::Render::UpdateEntityLayersJob updateEntityLayer; + updateEntityLayer.setManager(test->nodeManagers()); + updateEntityLayer.run(); } void initializeJob(Qt3DRender::Render::RayCastingJob *job, Qt3DRender::TestAspect *test) diff --git a/qt3d/tests/auto/render/shadergraph/qshadernodes/tst_qshadernodes.cpp b/qt3d/tests/auto/render/shadergraph/qshadernodes/tst_qshadernodes.cpp index 2cd2ff90d..2c53de349 100644 --- a/qt3d/tests/auto/render/shadergraph/qshadernodes/tst_qshadernodes.cpp +++ b/qt3d/tests/auto/render/shadergraph/qshadernodes/tst_qshadernodes.cpp @@ -540,8 +540,8 @@ void tst_QShaderNodes::shouldHandleNodeRulesSupportAndOrder() QCOMPARE(node.availableFormats().at(2), openGL3); QCOMPARE(node.rule(openGLES2), es2Rule); QCOMPARE(node.rule(openGL3), gl3bisRule); - QCOMPARE(node.rule(openGL32), gl3bisRule); - QCOMPARE(node.rule(openGL4), gl3bisRule); + QCOMPARE(node.rule(openGL32), gl32Rule); + QCOMPARE(node.rule(openGL4), gl32Rule); } QTEST_MAIN(tst_QShaderNodes) Submodule qtbase ffdd372c..e0a15c11: diff --git a/qtbase/mkspecs/common/android/qplatformdefs.h b/qtbase/mkspecs/common/android/qplatformdefs.h index f75bc4093b..2bd59410d4 100644 --- a/qtbase/mkspecs/common/android/qplatformdefs.h +++ b/qtbase/mkspecs/common/android/qplatformdefs.h @@ -144,11 +144,7 @@ #define QT_SIGNAL_ARGS int #define QT_SIGNAL_IGNORE SIG_IGN -#if defined(__GLIBC__) && (__GLIBC__ >= 2) #define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) #define QT_SNPRINTF ::snprintf diff --git a/qtbase/mkspecs/linux-clang/qplatformdefs.h b/qtbase/mkspecs/linux-clang/qplatformdefs.h index a818d973f0..c1ab72fbc6 100644 --- a/qtbase/mkspecs/linux-clang/qplatformdefs.h +++ b/qtbase/mkspecs/linux-clang/qplatformdefs.h @@ -79,14 +79,6 @@ #define QT_USE_XOPEN_LFS_EXTENSIONS #include "../common/posix/qplatformdefs.h" -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) #define QT_SNPRINTF ::snprintf #define QT_VSNPRINTF ::vsnprintf diff --git a/qtbase/mkspecs/linux-g++/qplatformdefs.h b/qtbase/mkspecs/linux-g++/qplatformdefs.h index 13523f0702..4d2750d9ec 100644 --- a/qtbase/mkspecs/linux-g++/qplatformdefs.h +++ b/qtbase/mkspecs/linux-g++/qplatformdefs.h @@ -79,14 +79,6 @@ #define QT_USE_XOPEN_LFS_EXTENSIONS #include "../common/posix/qplatformdefs.h" -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ < 2) -#define QT_SOCKLEN_T int -#else -#define QT_SOCKLEN_T socklen_t -#endif - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) #define QT_SNPRINTF ::snprintf #define QT_VSNPRINTF ::vsnprintf diff --git a/qtbase/mkspecs/linux-llvm/qplatformdefs.h b/qtbase/mkspecs/linux-llvm/qplatformdefs.h index dc750ab1ef..d3cc39b47f 100644 --- a/qtbase/mkspecs/linux-llvm/qplatformdefs.h +++ b/qtbase/mkspecs/linux-llvm/qplatformdefs.h @@ -80,14 +80,6 @@ #define QT_USE_XOPEN_LFS_EXTENSIONS #include "../common/posix/qplatformdefs.h" -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) #define QT_SNPRINTF ::snprintf #define QT_VSNPRINTF ::vsnprintf diff --git a/qtbase/mkspecs/linux-lsb-g++/qplatformdefs.h b/qtbase/mkspecs/linux-lsb-g++/qplatformdefs.h index 4c4e53da2a..83baffb3e3 100644 --- a/qtbase/mkspecs/linux-lsb-g++/qplatformdefs.h +++ b/qtbase/mkspecs/linux-lsb-g++/qplatformdefs.h @@ -85,16 +85,9 @@ #include "../common/posix/qplatformdefs.h" #undef QT_OPEN_LARGEFILE -#undef QT_SOCKLEN_T #define QT_OPEN_LARGEFILE 0 -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - #ifndef SIOCGIFBRDADDR # define SIOCGIFBRDADDR 0x8919 #endif diff --git a/qtbase/mkspecs/lynxos-g++/qplatformdefs.h b/qtbase/mkspecs/lynxos-g++/qplatformdefs.h index 4339ea2b23..6007af0055 100644 --- a/qtbase/mkspecs/lynxos-g++/qplatformdefs.h +++ b/qtbase/mkspecs/lynxos-g++/qplatformdefs.h @@ -72,14 +72,6 @@ #include "../common/posix/qplatformdefs.h" -#undef QT_SOCKLEN_T - -#if defined(__GLIBC__) && (__GLIBC__ >= 2) -#define QT_SOCKLEN_T socklen_t -#else -#define QT_SOCKLEN_T int -#endif - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) #define QT_SNPRINTF ::snprintf #define QT_VSNPRINTF ::vsnprintf diff --git a/qtbase/mkspecs/macx-xcode/WorkspaceSettings.xcsettings b/qtbase/mkspecs/macx-xcode/WorkspaceSettings.xcsettings index a3f43a8b38..08de0be8d3 100644 --- a/qtbase/mkspecs/macx-xcode/WorkspaceSettings.xcsettings +++ b/qtbase/mkspecs/macx-xcode/WorkspaceSettings.xcsettings @@ -2,8 +2,6 @@ - BuildSystemType - Original IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded diff --git a/qtbase/src/3rdparty/zlib/qt_attribution.json b/qtbase/src/3rdparty/zlib/qt_attribution.json index ea3a476e7b..07bea6ba86 100644 --- a/qtbase/src/3rdparty/zlib/qt_attribution.json +++ b/qtbase/src/3rdparty/zlib/qt_attribution.json @@ -6,10 +6,10 @@ "Description": "zlib is a general purpose data compression library.", "Homepage": "http://zlib.net/", - "Version": "1.2.11", + "Version": "1.2.12", "License": "zlib License", "LicenseId": "Zlib", "LicenseFile": "LICENSE", - "Copyright": "(C) 1995-2017 Jean-loup Gailly and Mark Adler" + "Copyright": "(C) 1995-2022 Jean-loup Gailly and Mark Adler" } diff --git a/qtbase/src/3rdparty/zlib/qtpatches.diff b/qtbase/src/3rdparty/zlib/qtpatches.diff index 105dda967c..681697afb0 100644 --- a/qtbase/src/3rdparty/zlib/qtpatches.diff +++ b/qtbase/src/3rdparty/zlib/qtpatches.diff @@ -1,21 +1,21 @@ diff -ruN orig/ChangeLog src/ChangeLog ---- orig/ChangeLog 2017-08-03 08:25:11.347386101 +0200 -+++ src/ChangeLog 2017-08-03 08:25:21.477268439 +0200 +--- orig/ChangeLog ++++ src/ChangeLog @@ -1,6 +1,10 @@ ChangeLog file for zlib -+Changes in 1.2.11 (Qt) (28 Jul 2017) ++Changes in 1.2.12 (Qt) (28 Mar 2022) +- This is a stripped down copy of zlib that contains patches to + make it compile as part of Qt. See also "qtpatches.diff". + - Changes in 1.2.11 (15 Jan 2017) - - Fix deflate stored bug when pulling last block from window - - Permit immediate deflateParams changes before any deflate input + Changes in 1.2.12 (27 Mar 2022) + - Cygwin does not have _wopen(), so do not create gzopen_w() there + - Permit a deflateParams() parameter change as soon as possible diff -ruN orig/gzguts.h src/gzguts.h ---- orig/gzguts.h 2017-08-03 08:25:11.347386101 +0200 -+++ src/gzguts.h 2017-08-03 08:25:21.477268439 +0200 -@@ -3,6 +3,15 @@ +--- orig/gzguts.h ++++ src/gzguts.h +@@ -3,6 +3,25 @@ * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -26,6 +26,8 @@ diff -ruN orig/gzguts.h src/gzguts.h +# ifndef _CRT_NONSTDC_NO_DEPRECATE +# define _CRT_NONSTDC_NO_DEPRECATE +# endif ++// disable warnings like '=': conversion from 'size_t' to 'unsigned int', possible loss of data ++# pragma warning(disable: 4267; disable: 4244) +#endif + #ifdef _LARGEFILE64_SOURCE @@ -43,13 +45,12 @@ diff -ruN orig/gzguts.h src/gzguts.h +#define HAVE_HIDDEN +#endif + -+ - #ifdef HAVE_HIDDEN - # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) - #else + #ifdef _LARGEFILE64_SOURCE + # ifndef _LARGEFILE_SOURCE + # define _LARGEFILE_SOURCE 1 diff -ruN orig/README src/README ---- orig/README 2017-08-03 08:25:11.347386101 +0200 -+++ src/README 2017-08-03 08:25:21.477268439 +0200 +--- orig/README ++++ src/README @@ -6,6 +6,9 @@ http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and rfc1952 (gzip format). @@ -61,8 +62,8 @@ diff -ruN orig/README src/README (volunteer to write man pages welcome, contact zlib@gzip.org). A usage example of the library is given in the file test/example.c which also tests that diff -ruN orig/zconf.h src/zconf.h ---- orig/zconf.h 2017-08-03 08:25:11.347386101 +0200 -+++ src/zconf.h 2017-08-03 08:25:21.477268439 +0200 +--- orig/zconf.h ++++ src/zconf.h @@ -8,6 +8,9 @@ #ifndef ZCONF_H #define ZCONF_H @@ -91,9 +92,9 @@ diff -ruN orig/zconf.h src/zconf.h #endif diff -ruN orig/zlib.h src/zlib.h ---- orig/zlib.h 2017-08-03 08:25:11.347386101 +0200 -+++ src/zlib.h 2017-08-03 08:25:21.480601733 +0200 -@@ -33,12 +33,16 @@ +--- orig/zlib.h ++++ src/zlib.h +@@ -33,11 +33,15 @@ #include "zconf.h" @@ -105,17 +106,15 @@ diff -ruN orig/zlib.h src/zlib.h extern "C" { #endif --#define ZLIB_VERSION "1.2.11" --#define ZLIB_VERNUM 0x12b0 -+#define ZLIB_VERSION "1.2.11 (Qt)" -+#define ZLIB_VERNUM 0x12b0f +-#define ZLIB_VERSION "1.2.12" ++#define ZLIB_VERSION "1.2.12 (Qt)" + #define ZLIB_VERNUM 0x12c0 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 - #define ZLIB_VER_REVISION 11 diff -ruN orig/zutil.h src/zutil.h ---- orig/zutil.h 2017-08-03 08:25:11.347386101 +0200 -+++ src/zutil.h 2017-08-03 08:30:04.490657570 +0200 -@@ -13,6 +13,15 @@ +--- orig/zutil.h ++++ src/zutil.h +@@ -13,6 +13,14 @@ #ifndef ZUTIL_H #define ZUTIL_H @@ -126,12 +125,11 @@ diff -ruN orig/zutil.h src/zutil.h +#ifdef QT_VISIBILITY_AVAILABLE +#define HAVE_HIDDEN +#endif -+ + #ifdef HAVE_HIDDEN # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) #else -@@ -136,6 +145,11 @@ +@@ -143,6 +151,11 @@ # if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os # include /* for fdopen */ # else @@ -143,7 +141,7 @@ diff -ruN orig/zutil.h src/zutil.h # ifndef fdopen # define fdopen(fd,mode) NULL /* No fdopen() */ # endif -@@ -159,7 +173,7 @@ +@@ -166,7 +179,7 @@ # define OS_CODE 18 #endif diff --git a/qtbase/src/3rdparty/zlib/src/ChangeLog b/qtbase/src/3rdparty/zlib/src/ChangeLog index 251a32262f..14939b2025 100644 --- a/qtbase/src/3rdparty/zlib/src/ChangeLog +++ b/qtbase/src/3rdparty/zlib/src/ChangeLog @@ -1,10 +1,73 @@ ChangeLog file for zlib -Changes in 1.2.11 (Qt) (28 Jul 2017) +Changes in 1.2.12 (Qt) (28 Mar 2022) - This is a stripped down copy of zlib that contains patches to make it compile as part of Qt. See also "qtpatches.diff". +Changes in 1.2.12 (27 Mar 2022) +- Cygwin does not have _wopen(), so do not create gzopen_w() there +- Permit a deflateParams() parameter change as soon as possible +- Limit hash table inserts after switch from stored deflate +- Fix bug when window full in deflate_stored() +- Fix CLEAR_HASH macro to be usable as a single statement +- Avoid a conversion error in gzseek when off_t type too small +- Have Makefile return non-zero error code on test failure +- Avoid some conversion warnings in gzread.c and gzwrite.c +- Update use of errno for newer Windows CE versions +- Small speedup to inflate [psumbera] +- Return an error if the gzputs string length can't fit in an int +- Add address checking in clang to -w option of configure +- Don't compute check value for raw inflate if asked to validate +- Handle case where inflateSync used when header never processed +- Avoid the use of ptrdiff_t +- Avoid an undefined behavior of memcpy() in gzappend() +- Avoid undefined behaviors of memcpy() in gz*printf() +- Avoid an undefined behavior of memcpy() in _tr_stored_block() +- Make the names in functions declarations identical to definitions +- Remove old assembler code in which bugs have manifested +- Fix deflateEnd() to not report an error at start of raw deflate +- Add legal disclaimer to README +- Emphasize the need to continue decompressing gzip members +- Correct the initialization requirements for deflateInit2() +- Fix a bug that can crash deflate on some input when using Z_FIXED +- Assure that the number of bits for deflatePrime() is valid +- Use a structure to make globals in enough.c evident +- Use a macro for the printf format of big_t in enough.c +- Clean up code style in enough.c, update version +- Use inline function instead of macro for index in enough.c +- Clarify that prefix codes are counted in enough.c +- Show all the codes for the maximum tables size in enough.c +- Add gznorm.c example, which normalizes gzip files +- Fix the zran.c example to work on a multiple-member gzip file +- Add tables for crc32_combine(), to speed it up by a factor of 200 +- Add crc32_combine_gen() and crc32_combine_op() for fast combines +- Speed up software CRC-32 computation by a factor of 1.5 to 3 +- Use atomic test and set, if available, for dynamic CRC tables +- Don't bother computing check value after successful inflateSync() +- Correct comment in crc32.c +- Add use of the ARMv8 crc32 instructions when requested +- Use ARM crc32 instructions if the ARM architecture has them +- Explicitly note that the 32-bit check values are 32 bits +- Avoid adding empty gzip member after gzflush with Z_FINISH +- Fix memory leak on error in gzlog.c +- Fix error in comment on the polynomial representation of a byte +- Clarify gz* function interfaces, referring to parameter names +- Change macro name in inflate.c to avoid collision in VxWorks +- Correct typo in blast.c +- Improve portability of contrib/minizip +- Fix indentation in minizip's zip.c +- Replace black/white with allow/block. (theresa-m) +- minizip warning fix if MAXU32 already defined. (gvollant) +- Fix unztell64() in minizip to work past 4GB. (Daniël Hörchner) +- Clean up minizip to reduce warnings for testing +- Add fallthrough comments for gcc +- Eliminate use of ULL constants +- Separate out address sanitizing from warnings in configure +- Remove destructive aspects of make distclean +- Check for cc masquerading as gcc or clang in configure +- Fix crc32.c to compile local functions only if used + Changes in 1.2.11 (15 Jan 2017) - Fix deflate stored bug when pulling last block from window - Permit immediate deflateParams changes before any deflate input @@ -515,7 +578,7 @@ Changes in 1.2.3.5 (8 Jan 2010) - Don't use _vsnprintf on later versions of MSVC [Lowman] - Add CMake build script and input file [Lowman] - Update contrib/minizip to 1.1 [Svensson, Vollant] -- Moved nintendods directory from contrib to . +- Moved nintendods directory from contrib to root - Replace gzio.c with a new set of routines with the same functionality - Add gzbuffer(), gzoffset(), gzclose_r(), gzclose_w() as part of above - Update contrib/minizip to 1.1b @@ -689,7 +752,7 @@ Changes in 1.2.2.4 (11 July 2005) - Be more strict on incomplete code sets in inflate_table() and increase ENOUGH and MAXD -- this repairs a possible security vulnerability for invalid inflate input. Thanks to Tavis Ormandy and Markus Oberhumer for - discovering the vulnerability and providing test cases. + discovering the vulnerability and providing test cases - Add ia64 support to configure for HP-UX [Smith] - Add error return to gzread() for format or i/o error [Levin] - Use malloc.h for OS/2 [Necasek] @@ -725,7 +788,7 @@ Changes in 1.2.2.2 (30 December 2004) - Add Z_FIXED strategy option to deflateInit2() to force fixed trees - Add updated make_vms.com [Coghlan], update README - Create a new "examples" directory, move gzappend.c there, add zpipe.c, - fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html. + fitblk.c, gzlog.[ch], gzjoin.c, and zlib_how.html - Add FAQ entry and comments in deflate.c on uninitialized memory access - Add Solaris 9 make options in configure [Gilbert] - Allow strerror() usage in gzio.c for STDC @@ -796,7 +859,7 @@ Changes in 1.2.1.1 (9 January 2004) - Fix a big fat bug in inftrees.c that prevented decoding valid dynamic blocks with only literals and no distance codes -- Thanks to "Hot Emu" for the bug report and sample file -- Add a note to puff.c on no distance codes case. +- Add a note to puff.c on no distance codes case Changes in 1.2.1 (17 November 2003) - Remove a tab in contrib/gzappend/gzappend.c @@ -1040,14 +1103,14 @@ Changes in 1.2.0 (9 March 2003) - Add contrib/puff/ simple inflate for deflate format description Changes in 1.1.4 (11 March 2002) -- ZFREE was repeated on same allocation on some error conditions. +- ZFREE was repeated on same allocation on some error conditions This creates a security problem described in http://www.zlib.org/advisory-2002-03-11.txt - Returned incorrect error (Z_MEM_ERROR) on some invalid data - Avoid accesses before window for invalid distances with inflate window - less than 32K. + less than 32K - force windowBits > 8 to avoid a bug in the encoder for a window size - of 256 bytes. (A complete fix will be available in 1.1.5). + of 256 bytes. (A complete fix will be available in 1.1.5) Changes in 1.1.3 (9 July 1998) - fix "an inflate input buffer bug that shows up on rare but persistent @@ -1121,7 +1184,7 @@ Changes in 1.1.1 (27 Feb 98) - remove block truncation heuristic which had very marginal effect for zlib (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the compression ratio on some files. This also allows inlining _tr_tally for - matches in deflate_slow. + matches in deflate_slow - added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier) Changes in 1.1.0 (24 Feb 98) @@ -1166,7 +1229,7 @@ Changes in 1.0.8 (27 Jan 1998) - include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong) - use constant arrays for the static trees in trees.c instead of computing them at run time (thanks to Ken Raeburn for this suggestion). To create - trees.h, compile with GEN_TREES_H and run "make test". + trees.h, compile with GEN_TREES_H and run "make test" - check return code of example in "make test" and display result - pass minigzip command line options to file_compress - simplifying code of inflateSync to avoid gcc 2.8 bug @@ -1205,12 +1268,12 @@ Changes in 1.0.6 (19 Jan 1998) - add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code) - Fix a deflate bug occurring only with compression level 0 (thanks to - Andy Buckler for finding this one). -- In minigzip, pass transparently also the first byte for .Z files. + Andy Buckler for finding this one) +- In minigzip, pass transparently also the first byte for .Z files - return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress() - check Z_FINISH in inflate (thanks to Marc Schluper) - Implement deflateCopy (thanks to Adam Costello) -- make static libraries by default in configure, add --shared option. +- make static libraries by default in configure, add --shared option - move MSDOS or Windows specific files to directory msdos - suppress the notion of partial flush to simplify the interface (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4) @@ -1222,7 +1285,7 @@ Changes in 1.0.6 (19 Jan 1998) - added Makefile.nt (thanks to Stephen Williams) - added the unsupported "contrib" directory: contrib/asm386/ by Gilles Vollant - 386 asm code replacing longest_match(). + 386 asm code replacing longest_match() contrib/iostream/ by Kevin Ruland A C++ I/O streams interface to the zlib gz* functions contrib/iostream2/ by Tyge Løvset @@ -1230,7 +1293,7 @@ Changes in 1.0.6 (19 Jan 1998) contrib/untgz/ by "Pedro A. Aranda Guti\irrez" A very simple tar.gz file extractor using zlib contrib/visual-basic.txt by Carlos Rios - How to use compress(), uncompress() and the gz* functions from VB. + How to use compress(), uncompress() and the gz* functions from VB - pass params -f (filtered data), -h (huffman only), -1 to -9 (compression level) in minigzip (thanks to Tom Lane) @@ -1239,8 +1302,8 @@ Changes in 1.0.6 (19 Jan 1998) - add undocumented function inflateSyncPoint() (hack for Paul Mackerras) - add undocumented function zError to convert error code to string (for Tim Smithers) -- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code. -- Use default memcpy for Symantec MSDOS compiler. +- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code +- Use default memcpy for Symantec MSDOS compiler - Add EXPORT keyword for check_func (needed for Windows DLL) - add current directory to LD_LIBRARY_PATH for "make test" - create also a link for libz.so.1 @@ -1253,7 +1316,7 @@ Changes in 1.0.6 (19 Jan 1998) - allow compilation with ANSI keywords only enabled for TurboC in large model - avoid "versionString"[0] (Borland bug) - add NEED_DUMMY_RETURN for Borland -- use variable z_verbose for tracing in debug mode (L. Peter Deutsch). +- use variable z_verbose for tracing in debug mode (L. Peter Deutsch) - allow compilation with CC - defined STDC for OS/2 (David Charlap) - limit external names to 8 chars for MVS (Thomas Lund) @@ -1263,7 +1326,7 @@ Changes in 1.0.6 (19 Jan 1998) - use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) - added makelcc.bat for lcc-win32 (Tom St Denis) - in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) -- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. +- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion - check for unistd.h in configure (for off_t) - remove useless check parameter in inflate_blocks_free - avoid useless assignment of s->check to itself in inflate_blocks_new @@ -1284,7 +1347,7 @@ Changes in 1.0.5 (3 Jan 98) Changes in 1.0.4 (24 Jul 96) - In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF bit, so the decompressor could decompress all the correct data but went - on to attempt decompressing extra garbage data. This affected minigzip too. + on to attempt decompressing extra garbage data. This affected minigzip too - zlibVersion and gzerror return const char* (needed for DLL) - port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno) - use z_error only for DEBUG (avoid problem with DLLs) @@ -1314,7 +1377,7 @@ Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion] - fix array overlay in deflate.c which sometimes caused bad compressed data - fix inflate bug with empty stored block - fix MSDOS medium model which was broken in 0.99 -- fix deflateParams() which could generate bad compressed data. +- fix deflateParams() which could generate bad compressed data - Bytef is define'd instead of typedef'ed (work around Borland bug) - added an INDEX file - new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), @@ -1335,7 +1398,7 @@ Changes in 0.99 (27 Jan 96) - allow preset dictionary shared between compressor and decompressor - allow compression level 0 (no compression) - add deflateParams in zlib.h: allow dynamic change of compression level - and compression strategy. + and compression strategy - test large buffers and deflateParams in example.c - add optional "configure" to build zlib as a shared library - suppress Makefile.qnx, use configure instead @@ -1377,30 +1440,30 @@ Changes in 0.99 (27 Jan 96) - use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc... - use Z_BINARY instead of BINARY - document that gzclose after gzdopen will close the file -- allow "a" as mode in gzopen. +- allow "a" as mode in gzopen - fix error checking in gzread - allow skipping .gz extra-field on pipes - added reference to Perl interface in README - put the crc table in FAR data (I dislike more and more the medium model :) - added get_crc_table -- added a dimension to all arrays (Borland C can't count). +- added a dimension to all arrays (Borland C can't count) - workaround Borland C bug in declaration of inflate_codes_new & inflate_fast - guard against multiple inclusion of *.h (for precompiled header on Mac) -- Watcom C pretends to be Microsoft C small model even in 32 bit mode. +- Watcom C pretends to be Microsoft C small model even in 32 bit mode - don't use unsized arrays to avoid silly warnings by Visual C++: warning C4746: 'inflate_mask' : unsized array treated as '__far' - (what's wrong with far data in far model?). + (what's wrong with far data in far model?) - define enum out of inflate_blocks_state to allow compilation with C++ Changes in 0.95 (16 Aug 95) - fix MSDOS small and medium model (now easier to adapt to any compiler) - inlined send_bits - fix the final (:-) bug for deflate with flush (output was correct but - not completely flushed in rare occasions). + not completely flushed in rare occasions) - default window size is same for compression and decompression - (it's now sufficient to set MAX_WBITS in zconf.h). + (it's now sufficient to set MAX_WBITS in zconf.h) - voidp -> voidpf and voidnp -> voidp (for consistency with other - typedefs and because voidnp was not near in large model). + typedefs and because voidnp was not near in large model) Changes in 0.94 (13 Aug 95) - support MSDOS medium model @@ -1409,12 +1472,12 @@ Changes in 0.94 (13 Aug 95) - added support for VMS - allow a compression level in gzopen() - gzflush now calls fflush -- For deflate with flush, flush even if no more input is provided. +- For deflate with flush, flush even if no more input is provided - rename libgz.a as libz.a - avoid complex expression in infcodes.c triggering Turbo C bug - work around a problem with gcc on Alpha (in INSERT_STRING) - don't use inline functions (problem with some gcc versions) -- allow renaming of Byte, uInt, etc... with #define. +- allow renaming of Byte, uInt, etc... with #define - avoid warning about (unused) pointer before start of array in deflate.c - avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c - avoid reserved word 'new' in trees.c @@ -1433,7 +1496,7 @@ Changes in 0.92 (3 May 95) - no memcpy on Pyramid - suppressed inftest.c - optimized fill_window, put longest_match inline for gcc -- optimized inflate on stored blocks. +- optimized inflate on stored blocks - untabify all sources to simplify patches Changes in 0.91 (2 May 95) @@ -1451,7 +1514,7 @@ Changes in 0.9 (1 May 95) - let again gzread copy uncompressed data unchanged (was working in 0.71) - deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented - added a test of inflateSync in example.c -- moved MAX_WBITS to zconf.h because users might want to change that. +- moved MAX_WBITS to zconf.h because users might want to change that - document explicitly that zalloc(64K) on MSDOS must return a normalized pointer (zero offset) - added Makefiles for Microsoft C, Turbo C, Borland C++ @@ -1460,7 +1523,7 @@ Changes in 0.9 (1 May 95) Changes in 0.8 (29 April 95) - added fast inflate (inffast.c) - deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this - is incompatible with previous versions of zlib which returned Z_OK. + is incompatible with previous versions of zlib which returned Z_OK - work around a TurboC compiler bug (bad code for b << 0, see infutil.h) (actually that was not a compiler bug, see 0.81 above) - gzread no longer reads one extra byte in certain cases @@ -1470,50 +1533,50 @@ Changes in 0.8 (29 April 95) Changes in 0.71 (14 April 95) - Fixed more MSDOS compilation problems :( There is still a bug with - TurboC large model. + TurboC large model Changes in 0.7 (14 April 95) -- Added full inflate support. +- Added full inflate support - Simplified the crc32() interface. The pre- and post-conditioning (one's complement) is now done inside crc32(). WARNING: this is - incompatible with previous versions; see zlib.h for the new usage. + incompatible with previous versions; see zlib.h for the new usage Changes in 0.61 (12 April 95) -- workaround for a bug in TurboC. example and minigzip now work on MSDOS. +- workaround for a bug in TurboC. example and minigzip now work on MSDOS Changes in 0.6 (11 April 95) - added minigzip.c - added gzdopen to reopen a file descriptor as gzFile -- added transparent reading of non-gziped files in gzread. +- added transparent reading of non-gziped files in gzread - fixed bug in gzread (don't read crc as data) -- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose). +- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose) - don't allocate big arrays in the stack (for MSDOS) - fix some MSDOS compilation problems Changes in 0.5: - do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but - not yet Z_FULL_FLUSH. + not yet Z_FULL_FLUSH - support decompression but only in a single step (forced Z_FINISH) -- added opaque object for zalloc and zfree. +- added opaque object for zalloc and zfree - added deflateReset and inflateReset -- added a variable zlib_version for consistency checking. -- renamed the 'filter' parameter of deflateInit2 as 'strategy'. - Added Z_FILTERED and Z_HUFFMAN_ONLY constants. +- added a variable zlib_version for consistency checking +- renamed the 'filter' parameter of deflateInit2 as 'strategy' + Added Z_FILTERED and Z_HUFFMAN_ONLY constants Changes in 0.4: -- avoid "zip" everywhere, use zlib instead of ziplib. +- avoid "zip" everywhere, use zlib instead of ziplib - suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush - if compression method == 8. + if compression method == 8 - added adler32 and crc32 - renamed deflateOptions as deflateInit2, call one or the other but not both -- added the method parameter for deflateInit2. +- added the method parameter for deflateInit2 - added inflateInit2 - simplied considerably deflateInit and inflateInit by not supporting user-provided history buffer. This is supported only in deflateInit2 - and inflateInit2. + and inflateInit2 Changes in 0.3: - prefix all macro names with Z_ -- use Z_FINISH instead of deflateEnd to finish compression. +- use Z_FINISH instead of deflateEnd to finish compression - added Z_HUFFMAN_ONLY - added gzerror() diff --git a/qtbase/src/3rdparty/zlib/src/README b/qtbase/src/3rdparty/zlib/src/README index 4dc7436a3b..1e4f39181d 100644 --- a/qtbase/src/3rdparty/zlib/src/README +++ b/qtbase/src/3rdparty/zlib/src/README @@ -1,6 +1,6 @@ ZLIB DATA COMPRESSION LIBRARY -zlib 1.2.11 is a general purpose data compression library. All the code is +zlib 1.2.12 is a general purpose data compression library. All the code is thread safe. The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files http://tools.ietf.org/html/rfc1950 (zlib format), rfc1951 (deflate format) and @@ -34,7 +34,7 @@ Mark Nelson wrote an article about zlib for the Jan. 1997 issue of Dr. Dobb's Journal; a copy of the article is available at http://marknelson.us/1997/01/01/zlib-engine/ . -The changes made in version 1.2.11 are documented in the file ChangeLog. +The changes made in version 1.2.12 are documented in the file ChangeLog. Unsupported third party contributions are provided in directory contrib/ . @@ -87,7 +87,7 @@ Acknowledgments: Copyright notice: - (C) 1995-2017 Jean-loup Gailly and Mark Adler + (C) 1995-2022 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -111,7 +111,10 @@ Copyright notice: If you use the zlib library in a product, we would appreciate *not* receiving lengthy legal documents to sign. The sources are provided for free but without warranty of any kind. The library has been entirely written by Jean-loup -Gailly and Mark Adler; it does not include third-party code. +Gailly and Mark Adler; it does not include third-party code. We make all +contributions to and distributions of this project solely in our personal +capacity, and are not conveying any rights to any intellectual property of +any third parties. If you redistribute modified sources, we would appreciate that you include in the file ChangeLog history information documenting your changes. Please read diff --git a/qtbase/src/3rdparty/zlib/src/crc32.c b/qtbase/src/3rdparty/zlib/src/crc32.c index 9580440c0e..a1bdce5c23 100644 --- a/qtbase/src/3rdparty/zlib/src/crc32.c +++ b/qtbase/src/3rdparty/zlib/src/crc32.c @@ -1,12 +1,10 @@ /* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-2006, 2010, 2011, 2012, 2016 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h * - * Thanks to Rodney Brown for his contribution of faster - * CRC methods: exclusive-oring 32 bits of data at a time, and pre-computing - * tables for updating the shift register in one step with three exclusive-ors - * instead of four steps with four exclusive-ors. This results in about a - * factor of two increase in speed on a Power PC G4 (PPC7455) using gcc -O3. + * This interleaved implementation of a CRC makes use of pipelined multiple + * arithmetic-logic units, commonly found in modern CPU cores. It is due to + * Kadatch and Jenkins (2010). See doc/crc-doc.1.0.pdf in this distribution. */ /* @(#) $Id$ */ @@ -14,11 +12,12 @@ /* Note on the use of DYNAMIC_CRC_TABLE: there is no mutex or semaphore protection on the static variables used to control the first-use generation - of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should + of the crc tables. Therefore, if you #define DYNAMIC_CRC_TABLE, you should first call get_crc_table() to initialize the tables before allowing more than one thread to use crc32(). - DYNAMIC_CRC_TABLE and MAKECRCH can be #defined to write out crc32.h. + MAKECRCH can be #defined to write out crc32.h. A main() routine is also + produced, so that this one source file can be compiled to an executable. */ #ifdef MAKECRCH @@ -28,415 +27,1090 @@ # endif /* !DYNAMIC_CRC_TABLE */ #endif /* MAKECRCH */ -#include "zutil.h" /* for STDC and FAR definitions */ +#include "zutil.h" /* for Z_U4, Z_U8, z_crc_t, and FAR definitions */ -/* Definitions for doing the crc four data bytes at a time. */ -#if !defined(NOBYFOUR) && defined(Z_U4) -# define BYFOUR + /* + A CRC of a message is computed on N braids of words in the message, where + each word consists of W bytes (4 or 8). If N is 3, for example, then three + running sparse CRCs are calculated respectively on each braid, at these + indices in the array of words: 0, 3, 6, ..., 1, 4, 7, ..., and 2, 5, 8, ... + This is done starting at a word boundary, and continues until as many blocks + of N * W bytes as are available have been processed. The results are combined + into a single CRC at the end. For this code, N must be in the range 1..6 and + W must be 4 or 8. The upper limit on N can be increased if desired by adding + more #if blocks, extending the patterns apparent in the code. In addition, + crc32.h would need to be regenerated, if the maximum N value is increased. + + N and W are chosen empirically by benchmarking the execution time on a given + processor. The choices for N and W below were based on testing on Intel Kaby + Lake i7, AMD Ryzen 7, ARM Cortex-A57, Sparc64-VII, PowerPC POWER9, and MIPS64 + Octeon II processors. The Intel, AMD, and ARM processors were all fastest + with N=5, W=8. The Sparc, PowerPC, and MIPS64 were all fastest at N=5, W=4. + They were all tested with either gcc or clang, all using the -O3 optimization + level. Your mileage may vary. + */ + +/* Define N */ +#ifdef Z_TESTN +# define N Z_TESTN +#else +# define N 5 +#endif +#if N < 1 || N > 6 +# error N must be in 1..6 #endif -#ifdef BYFOUR - local unsigned long crc32_little OF((unsigned long, - const unsigned char FAR *, z_size_t)); - local unsigned long crc32_big OF((unsigned long, - const unsigned char FAR *, z_size_t)); -# define TBLS 8 + +/* + z_crc_t must be at least 32 bits. z_word_t must be at least as long as + z_crc_t. It is assumed here that z_word_t is either 32 bits or 64 bits, and + that bytes are eight bits. + */ + +/* + Define W and the associated z_word_t type. If W is not defined, then a + braided calculation is not used, and the associated tables and code are not + compiled. + */ +#ifdef Z_TESTW +# if Z_TESTW-1 != -1 +# define W Z_TESTW +# endif #else -# define TBLS 1 -#endif /* BYFOUR */ +# ifdef MAKECRCH +# define W 8 /* required for MAKECRCH */ +# else +# if defined(__x86_64__) || defined(__aarch64__) +# define W 8 +# else +# define W 4 +# endif +# endif +#endif +#ifdef W +# if W == 8 && defined(Z_U8) + typedef Z_U8 z_word_t; +# elif defined(Z_U4) +# undef W +# define W 4 + typedef Z_U4 z_word_t; +# else +# undef W +# endif +#endif -/* Local functions for crc concatenation */ -local unsigned long gf2_matrix_times OF((unsigned long *mat, - unsigned long vec)); -local void gf2_matrix_square OF((unsigned long *square, unsigned long *mat)); -local uLong crc32_combine_ OF((uLong crc1, uLong crc2, z_off64_t len2)); +/* Local functions. */ +local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); +local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); +/* If available, use the ARM processor CRC32 instruction. */ +#if defined(__aarch64__) && defined(__ARM_FEATURE_CRC32) && W == 8 +# define ARMCRC32 +#endif + +#if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) +/* + Swap the bytes in a z_word_t to convert between little and big endian. Any + self-respecting compiler will optimize this to a single machine byte-swap + instruction, if one is available. This assumes that word_t is either 32 bits + or 64 bits. + */ +local z_word_t byte_swap(word) + z_word_t word; +{ +# if W == 8 + return + (word & 0xff00000000000000) >> 56 | + (word & 0xff000000000000) >> 40 | + (word & 0xff0000000000) >> 24 | + (word & 0xff00000000) >> 8 | + (word & 0xff000000) << 8 | + (word & 0xff0000) << 24 | + (word & 0xff00) << 40 | + (word & 0xff) << 56; +# else /* W == 4 */ + return + (word & 0xff000000) >> 24 | + (word & 0xff0000) >> 8 | + (word & 0xff00) << 8 | + (word & 0xff) << 24; +# endif +} +#endif + +/* CRC polynomial. */ +#define POLY 0xedb88320 /* p(x) reflected, with x^32 implied */ #ifdef DYNAMIC_CRC_TABLE -local volatile int crc_table_empty = 1; -local z_crc_t FAR crc_table[TBLS][256]; +local z_crc_t FAR crc_table[256]; +local z_crc_t FAR x2n_table[32]; local void make_crc_table OF((void)); +#ifdef W + local z_word_t FAR crc_big_table[256]; + local z_crc_t FAR crc_braid_table[W][256]; + local z_word_t FAR crc_braid_big_table[W][256]; + local void braid OF((z_crc_t [][256], z_word_t [][256], int, int)); +#endif #ifdef MAKECRCH - local void write_table OF((FILE *, const z_crc_t FAR *)); + local void write_table OF((FILE *, const z_crc_t FAR *, int)); + local void write_table32hi OF((FILE *, const z_word_t FAR *, int)); + local void write_table64 OF((FILE *, const z_word_t FAR *, int)); #endif /* MAKECRCH */ + +/* + Define a once() function depending on the availability of atomics. If this is + compiled with DYNAMIC_CRC_TABLE defined, and if CRCs will be computed in + multiple threads, and if atomics are not available, then get_crc_table() must + be called to initialize the tables and must return before any threads are + allowed to compute or combine CRCs. + */ + +/* Definition of once functionality. */ +typedef struct once_s once_t; +local void once OF((once_t *, void (*)(void))); + +/* Check for the availability of atomics. */ +#if defined(__STDC__) && __STDC_VERSION__ >= 201112L && \ + !defined(__STDC_NO_ATOMICS__) + +#include + +/* Structure for once(), which must be initialized with ONCE_INIT. */ +struct once_s { + atomic_flag begun; + atomic_int done; +}; +#define ONCE_INIT {ATOMIC_FLAG_INIT, 0} + +/* + Run the provided init() function exactly once, even if multiple threads + invoke once() at the same time. The state must be a once_t initialized with + ONCE_INIT. + */ +local void once(state, init) + once_t *state; + void (*init)(void); +{ + if (!atomic_load(&state->done)) { + if (atomic_flag_test_and_set(&state->begun)) + while (!atomic_load(&state->done)) + ; + else { + init(); + atomic_store(&state->done, 1); + } + } +} + +#else /* no atomics */ + +/* Structure for once(), which must be initialized with ONCE_INIT. */ +struct once_s { + volatile int begun; + volatile int done; +}; +#define ONCE_INIT {0, 0} + +/* Test and set. Alas, not atomic, but tries to minimize the period of + vulnerability. */ +local int test_and_set OF((int volatile *)); +local int test_and_set(flag) + int volatile *flag; +{ + int was; + + was = *flag; + *flag = 1; + return was; +} + +/* Run the provided init() function once. This is not thread-safe. */ +local void once(state, init) + once_t *state; + void (*init)(void); +{ + if (!state->done) { + if (test_and_set(&state->begun)) + while (!state->done) + ; + else { + init(); + state->done = 1; + } + } +} + +#endif + +/* State for once(). */ +local once_t made = ONCE_INIT; + /* Generate tables for a byte-wise 32-bit CRC calculation on the polynomial: x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. Polynomials over GF(2) are represented in binary, one bit per coefficient, - with the lowest powers in the most significant bit. Then adding polynomials + with the lowest powers in the most significant bit. Then adding polynomials is just exclusive-or, and multiplying a polynomial by x is a right shift by - one. If we call the above polynomial p, and represent a byte as the + one. If we call the above polynomial p, and represent a byte as the polynomial q, also with the lowest power in the most significant bit (so the - byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, + byte 0xb1 is the polynomial x^7+x^3+x^2+1), then the CRC is (q*x^32) mod p, where a mod b means the remainder after dividing a by b. This calculation is done using the shift-register method of multiplying and - taking the remainder. The register is initialized to zero, and for each + taking the remainder. The register is initialized to zero, and for each incoming bit, x^32 is added mod p to the register if the bit is a one (where - x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by - x (which is shifting right by one and adding x^32 mod p if the bit shifted - out is a one). We start with the highest power (least significant bit) of - q and repeat for all eight bits of q. - - The first table is simply the CRC of all possible eight bit values. This is - all the information needed to generate CRCs on data a byte at a time for all - combinations of CRC register values and incoming bytes. The remaining tables - allow for word-at-a-time CRC calculation for both big-endian and little- - endian machines, where a word is four bytes. -*/ + x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by x + (which is shifting right by one and adding x^32 mod p if the bit shifted out + is a one). We start with the highest power (least significant bit) of q and + repeat for all eight bits of q. + + The table is simply the CRC of all possible eight bit values. This is all the + information needed to generate CRCs on data a byte at a time for all + combinations of CRC register values and incoming bytes. + */ + local void make_crc_table() { - z_crc_t c; - int n, k; - z_crc_t poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static volatile int first = 1; /* flag to limit concurrent making */ - static const unsigned char p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; - - /* See if another task is already doing this (not thread-safe, but better - than nothing -- significantly reduces duration of vulnerability in - case the advice about DYNAMIC_CRC_TABLE is ignored) */ - if (first) { - first = 0; - - /* make exclusive-or pattern from polynomial (0xedb88320UL) */ - poly = 0; - for (n = 0; n < (int)(sizeof(p)/sizeof(unsigned char)); n++) - poly |= (z_crc_t)1 << (31 - p[n]); - - /* generate a crc for every 8-bit value */ - for (n = 0; n < 256; n++) { - c = (z_crc_t)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[0][n] = c; - } + unsigned i, j, n; + z_crc_t p; -#ifdef BYFOUR - /* generate crc for each value followed by one, two, and three zeros, - and then the byte reversal of those as well as the first table */ - for (n = 0; n < 256; n++) { - c = crc_table[0][n]; - crc_table[4][n] = ZSWAP32(c); - for (k = 1; k < 4; k++) { - c = crc_table[0][c & 0xff] ^ (c >> 8); - crc_table[k][n] = c; - crc_table[k + 4][n] = ZSWAP32(c); - } - } -#endif /* BYFOUR */ - - crc_table_empty = 0; - } - else { /* not first */ - /* wait for the other guy to finish (not efficient, but rare) */ - while (crc_table_empty) - ; + /* initialize the CRC of bytes tables */ + for (i = 0; i < 256; i++) { + p = i; + for (j = 0; j < 8; j++) + p = p & 1 ? (p >> 1) ^ POLY : p >> 1; + crc_table[i] = p; +#ifdef W + crc_big_table[i] = byte_swap(p); +#endif } + /* initialize the x^2^n mod p(x) table */ + p = (z_crc_t)1 << 30; /* x^1 */ + x2n_table[0] = p; + for (n = 1; n < 32; n++) + x2n_table[n] = p = multmodp(p, p); + +#ifdef W + /* initialize the braiding tables -- needs x2n_table[] */ + braid(crc_braid_table, crc_braid_big_table, N, W); +#endif + #ifdef MAKECRCH - /* write out CRC tables to crc32.h */ { + /* + The crc32.h header file contains tables for both 32-bit and 64-bit + z_word_t's, and so requires a 64-bit type be available. In that case, + z_word_t must be defined to be 64-bits. This code then also generates + and writes out the tables for the case that z_word_t is 32 bits. + */ +#if !defined(W) || W != 8 +# error Need a 64-bit integer type in order to generate crc32.h. +#endif FILE *out; + int k, n; + z_crc_t ltl[8][256]; + z_word_t big[8][256]; out = fopen("crc32.h", "w"); if (out == NULL) return; - fprintf(out, "/* crc32.h -- tables for rapid CRC calculation\n"); - fprintf(out, " * Generated automatically by crc32.c\n */\n\n"); - fprintf(out, "local const z_crc_t FAR "); - fprintf(out, "crc_table[TBLS][256] =\n{\n {\n"); - write_table(out, crc_table[0]); -# ifdef BYFOUR - fprintf(out, "#ifdef BYFOUR\n"); - for (k = 1; k < 8; k++) { - fprintf(out, " },\n {\n"); - write_table(out, crc_table[k]); + + /* write out little-endian CRC table to crc32.h */ + fprintf(out, + "/* crc32.h -- tables for rapid CRC calculation\n" + " * Generated automatically by crc32.c\n */\n" + "\n" + "local const z_crc_t FAR crc_table[] = {\n" + " "); + write_table(out, crc_table, 256); + fprintf(out, + "};\n"); + + /* write out big-endian CRC table for 64-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#ifdef W\n" + "\n" + "#if W == 8\n" + "\n" + "local const z_word_t FAR crc_big_table[] = {\n" + " "); + write_table64(out, crc_big_table, 256); + fprintf(out, + "};\n"); + + /* write out big-endian CRC table for 32-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#else /* W == 4 */\n" + "\n" + "local const z_word_t FAR crc_big_table[] = {\n" + " "); + write_table32hi(out, crc_big_table, 256); + fprintf(out, + "};\n" + "\n" + "#endif\n"); + + /* write out braid tables for each value of N */ + for (n = 1; n <= 6; n++) { + fprintf(out, + "\n" + "#if N == %d\n", n); + + /* compute braid tables for this N and 64-bit word_t */ + braid(ltl, big, n, 8); + + /* write out braid tables for 64-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#if W == 8\n" + "\n" + "local const z_crc_t FAR crc_braid_table[][256] = {\n"); + for (k = 0; k < 8; k++) { + fprintf(out, " {"); + write_table(out, ltl[k], 256); + fprintf(out, "}%s", k < 7 ? ",\n" : ""); + } + fprintf(out, + "};\n" + "\n" + "local const z_word_t FAR crc_braid_big_table[][256] = {\n"); + for (k = 0; k < 8; k++) { + fprintf(out, " {"); + write_table64(out, big[k], 256); + fprintf(out, "}%s", k < 7 ? ",\n" : ""); + } + fprintf(out, + "};\n"); + + /* compute braid tables for this N and 32-bit word_t */ + braid(ltl, big, n, 4); + + /* write out braid tables for 32-bit z_word_t to crc32.h */ + fprintf(out, + "\n" + "#else /* W == 4 */\n" + "\n" + "local const z_crc_t FAR crc_braid_table[][256] = {\n"); + for (k = 0; k < 4; k++) { + fprintf(out, " {"); + write_table(out, ltl[k], 256); + fprintf(out, "}%s", k < 3 ? ",\n" : ""); + } + fprintf(out, + "};\n" + "\n" + "local const z_word_t FAR crc_braid_big_table[][256] = {\n"); + for (k = 0; k < 4; k++) { + fprintf(out, " {"); + write_table32hi(out, big[k], 256); + fprintf(out, "}%s", k < 3 ? ",\n" : ""); + } + fprintf(out, + "};\n" + "\n" + "#endif\n" + "\n" + "#endif\n"); } - fprintf(out, "#endif\n"); -# endif /* BYFOUR */ - fprintf(out, " }\n};\n"); + fprintf(out, + "\n" + "#endif\n"); + + /* write out zeros operator table to crc32.h */ + fprintf(out, + "\n" + "local const z_crc_t FAR x2n_table[] = {\n" + " "); + write_table(out, x2n_table, 32); + fprintf(out, + "};\n"); fclose(out); } #endif /* MAKECRCH */ } #ifdef MAKECRCH -local void write_table(out, table) + +/* + Write the 32-bit values in table[0..k-1] to out, five per line in + hexadecimal separated by commas. + */ +local void write_table(out, table, k) FILE *out; const z_crc_t FAR *table; + int k; { int n; - for (n = 0; n < 256; n++) - fprintf(out, "%s0x%08lxUL%s", n % 5 ? "" : " ", + for (n = 0; n < k; n++) + fprintf(out, "%s0x%08lx%s", n == 0 || n % 5 ? "" : " ", (unsigned long)(table[n]), - n == 255 ? "\n" : (n % 5 == 4 ? ",\n" : ", ")); + n == k - 1 ? "" : (n % 5 == 4 ? ",\n" : ", ")); } + +/* + Write the high 32-bits of each value in table[0..k-1] to out, five per line + in hexadecimal separated by commas. + */ +local void write_table32hi(out, table, k) +FILE *out; +const z_word_t FAR *table; +int k; +{ + int n; + + for (n = 0; n < k; n++) + fprintf(out, "%s0x%08lx%s", n == 0 || n % 5 ? "" : " ", + (unsigned long)(table[n] >> 32), + n == k - 1 ? "" : (n % 5 == 4 ? ",\n" : ", ")); +} + +/* + Write the 64-bit values in table[0..k-1] to out, three per line in + hexadecimal separated by commas. This assumes that if there is a 64-bit + type, then there is also a long long integer type, and it is at least 64 + bits. If not, then the type cast and format string can be adjusted + accordingly. + */ +local void write_table64(out, table, k) + FILE *out; + const z_word_t FAR *table; + int k; +{ + int n; + + for (n = 0; n < k; n++) + fprintf(out, "%s0x%016llx%s", n == 0 || n % 3 ? "" : " ", + (unsigned long long)(table[n]), + n == k - 1 ? "" : (n % 3 == 2 ? ",\n" : ", ")); +} + +/* Actually do the deed. */ +int main() +{ + make_crc_table(); + return 0; +} + #endif /* MAKECRCH */ +#ifdef W +/* + Generate the little and big-endian braid tables for the given n and z_word_t + size w. Each array must have room for w blocks of 256 elements. + */ +local void braid(ltl, big, n, w) + z_crc_t ltl[][256]; + z_word_t big[][256]; + int n; + int w; +{ + int k; + z_crc_t i, p, q; + for (k = 0; k < w; k++) { + p = x2nmodp((n * w + 3 - k) << 3, 0); + ltl[k][0] = 0; + big[w - 1 - k][0] = 0; + for (i = 1; i < 256; i++) { + ltl[k][i] = q = multmodp(i << 24, p); + big[w - 1 - k][i] = byte_swap(q); + } + } +} +#endif + #else /* !DYNAMIC_CRC_TABLE */ /* ======================================================================== - * Tables of CRC-32s of all single-byte values, made by make_crc_table(). + * Tables for byte-wise and braided CRC-32 calculations, and a table of powers + * of x for combining CRC-32s, all made by make_crc_table(). */ #include "crc32.h" #endif /* DYNAMIC_CRC_TABLE */ +/* ======================================================================== + * Routines used for CRC calculation. Some are also required for the table + * generation above. + */ + +/* + Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial, + reflected. For speed, this requires that a not be zero. + */ +local z_crc_t multmodp(a, b) + z_crc_t a; + z_crc_t b; +{ + z_crc_t m, p; + + m = (z_crc_t)1 << 31; + p = 0; + for (;;) { + if (a & m) { + p ^= b; + if ((a & (m - 1)) == 0) + break; + } + m >>= 1; + b = b & 1 ? (b >> 1) ^ POLY : b >> 1; + } + return p; +} + +/* + Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been + initialized. + */ +local z_crc_t x2nmodp(n, k) + z_off64_t n; + unsigned k; +{ + z_crc_t p; + + p = (z_crc_t)1 << 31; /* x^0 == 1 */ + while (n) { + if (n & 1) + p = multmodp(x2n_table[k & 31], p); + n >>= 1; + k++; + } + return p; +} + /* ========================================================================= - * This function can be used by asm versions of crc32() + * This function can be used by asm versions of crc32(), and to force the + * generation of the CRC tables in a threaded application. */ const z_crc_t FAR * ZEXPORT get_crc_table() { #ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); + once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ return (const z_crc_t FAR *)crc_table; } -/* ========================================================================= */ -#define DO1 crc = crc_table[0][((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8) -#define DO8 DO1; DO1; DO1; DO1; DO1; DO1; DO1; DO1 +/* ========================================================================= + * Use ARM machine instructions if available. This will compute the CRC about + * ten times faster than the braided calculation. This code does not check for + * the presence of the CRC instruction at run time. __ARM_FEATURE_CRC32 will + * only be defined if the compilation specifies an ARM processor architecture + * that has the instructions. For example, compiling with -march=armv8.1-a or + * -march=armv8-a+crc, or -march=native if the compile machine has the crc32 + * instructions. + */ +#ifdef ARMCRC32 + +/* + Constants empirically determined to maximize speed. These values are from + measurements on a Cortex-A57. Your mileage may vary. + */ +#define Z_BATCH 3990 /* number of words in a batch */ +#define Z_BATCH_ZEROS 0xa10d3d0c /* computed from Z_BATCH = 3990 */ +#define Z_BATCH_MIN 800 /* fewest words in a final batch */ -/* ========================================================================= */ unsigned long ZEXPORT crc32_z(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; z_size_t len; { - if (buf == Z_NULL) return 0UL; + z_crc_t val; + z_word_t crc1, crc2; + const z_word_t *word; + z_word_t val0, val1, val2; + z_size_t last, last2, i; + z_size_t num; + + /* Return initial CRC, if requested. */ + if (buf == Z_NULL) return 0; #ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); + once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ -#ifdef BYFOUR - if (sizeof(void *) == sizeof(ptrdiff_t)) { - z_crc_t endian; + /* Pre-condition the CRC */ + crc ^= 0xffffffff; - endian = 1; - if (*((unsigned char *)(&endian))) - return crc32_little(crc, buf, len); - else - return crc32_big(crc, buf, len); + /* Compute the CRC up to a word boundary. */ + while (len && ((z_size_t)buf & 7) != 0) { + len--; + val = *buf++; + __asm__ volatile("crc32b %w0, %w0, %w1" : "+r"(crc) : "r"(val)); } -#endif /* BYFOUR */ - crc = crc ^ 0xffffffffUL; - while (len >= 8) { - DO8; - len -= 8; + + /* Prepare to compute the CRC on full 64-bit words word[0..num-1]. */ + word = (z_word_t const *)buf; + num = len >> 3; + len &= 7; + + /* Do three interleaved CRCs to realize the throughput of one crc32x + instruction per cycle. Each CRC is calcuated on Z_BATCH words. The three + CRCs are combined into a single CRC after each set of batches. */ + while (num >= 3 * Z_BATCH) { + crc1 = 0; + crc2 = 0; + for (i = 0; i < Z_BATCH; i++) { + val0 = word[i]; + val1 = word[i + Z_BATCH]; + val2 = word[i + 2 * Z_BATCH]; + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc) : "r"(val0)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc1) : "r"(val1)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc2) : "r"(val2)); + } + word += 3 * Z_BATCH; + num -= 3 * Z_BATCH; + crc = multmodp(Z_BATCH_ZEROS, crc) ^ crc1; + crc = multmodp(Z_BATCH_ZEROS, crc) ^ crc2; } - if (len) do { - DO1; - } while (--len); - return crc ^ 0xffffffffUL; -} -/* ========================================================================= */ -unsigned long ZEXPORT crc32(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - uInt len; -{ - return crc32_z(crc, buf, len); + /* Do one last smaller batch with the remaining words, if there are enough + to pay for the combination of CRCs. */ + last = num / 3; + if (last >= Z_BATCH_MIN) { + last2 = last << 1; + crc1 = 0; + crc2 = 0; + for (i = 0; i < last; i++) { + val0 = word[i]; + val1 = word[i + last]; + val2 = word[i + last2]; + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc) : "r"(val0)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc1) : "r"(val1)); + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc2) : "r"(val2)); + } + word += 3 * last; + num -= 3 * last; + val = x2nmodp(last, 6); + crc = multmodp(val, crc) ^ crc1; + crc = multmodp(val, crc) ^ crc2; + } + + /* Compute the CRC on any remaining words. */ + for (i = 0; i < num; i++) { + val0 = word[i]; + __asm__ volatile("crc32x %w0, %w0, %x1" : "+r"(crc) : "r"(val0)); + } + word += num; + + /* Complete the CRC on any remaining bytes. */ + buf = (const unsigned char FAR *)word; + while (len) { + len--; + val = *buf++; + __asm__ volatile("crc32b %w0, %w0, %w1" : "+r"(crc) : "r"(val)); + } + + /* Return the CRC, post-conditioned. */ + return crc ^ 0xffffffff; } -#ifdef BYFOUR +#else + +#ifdef W /* - This BYFOUR code accesses the passed unsigned char * buffer with a 32-bit - integer pointer type. This violates the strict aliasing rule, where a - compiler can assume, for optimization purposes, that two pointers to - fundamentally different types won't ever point to the same memory. This can - manifest as a problem only if one of the pointers is written to. This code - only reads from those pointers. So long as this code remains isolated in - this compilation unit, there won't be a problem. For this reason, this code - should not be copied and pasted into a compilation unit in which other code - writes to the buffer that is passed to these routines. + Return the CRC of the W bytes in the word_t data, taking the + least-significant byte of the word as the first byte of data, without any pre + or post conditioning. This is used to combine the CRCs of each braid. */ +local z_crc_t crc_word(data) + z_word_t data; +{ + int k; + for (k = 0; k < W; k++) + data = (data >> 8) ^ crc_table[data & 0xff]; + return (z_crc_t)data; +} -/* ========================================================================= */ -#define DOLIT4 c ^= *buf4++; \ - c = crc_table[3][c & 0xff] ^ crc_table[2][(c >> 8) & 0xff] ^ \ - crc_table[1][(c >> 16) & 0xff] ^ crc_table[0][c >> 24] -#define DOLIT32 DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4; DOLIT4 +local z_word_t crc_word_big(data) + z_word_t data; +{ + int k; + for (k = 0; k < W; k++) + data = (data << 8) ^ + crc_big_table[(data >> ((W - 1) << 3)) & 0xff]; + return data; +} + +#endif /* ========================================================================= */ -local unsigned long crc32_little(crc, buf, len) +unsigned long ZEXPORT crc32_z(crc, buf, len) unsigned long crc; const unsigned char FAR *buf; z_size_t len; { - register z_crc_t c; - register const z_crc_t FAR *buf4; + /* Return initial CRC, if requested. */ + if (buf == Z_NULL) return 0; - c = (z_crc_t)crc; - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - len--; - } +#ifdef DYNAMIC_CRC_TABLE + once(&made, make_crc_table); +#endif /* DYNAMIC_CRC_TABLE */ - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOLIT32; - len -= 32; - } - while (len >= 4) { - DOLIT4; - len -= 4; - } - buf = (const unsigned char FAR *)buf4; + /* Pre-condition the CRC */ + crc ^= 0xffffffff; - if (len) do { - c = crc_table[0][(c ^ *buf++) & 0xff] ^ (c >> 8); - } while (--len); - c = ~c; - return (unsigned long)c; -} +#ifdef W -/* ========================================================================= */ -#define DOBIG4 c ^= *buf4++; \ - c = crc_table[4][c & 0xff] ^ crc_table[5][(c >> 8) & 0xff] ^ \ - crc_table[6][(c >> 16) & 0xff] ^ crc_table[7][c >> 24] -#define DOBIG32 DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4; DOBIG4 + /* If provided enough bytes, do a braided CRC calculation. */ + if (len >= N * W + W - 1) { + z_size_t blks; + z_word_t const *words; + unsigned endian; + int k; -/* ========================================================================= */ -local unsigned long crc32_big(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ - register z_crc_t c; - register const z_crc_t FAR *buf4; + /* Compute the CRC up to a z_word_t boundary. */ + while (len && ((z_size_t)buf & (W - 1)) != 0) { + len--; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + } - c = ZSWAP32((z_crc_t)crc); - c = ~c; - while (len && ((ptrdiff_t)buf & 3)) { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - len--; + /* Compute the CRC on as many N z_word_t blocks as are available. */ + blks = len / (N * W); + len -= blks * N * W; + words = (z_word_t const *)buf; + + /* Do endian check at execution time instead of compile time, since ARM + processors can change the endianess at execution time. If the + compiler knows what the endianess will be, it can optimize out the + check and the unused branch. */ + endian = 1; + if (*(unsigned char *)&endian) { + /* Little endian. */ + + z_crc_t crc0; + z_word_t word0; +#if N > 1 + z_crc_t crc1; + z_word_t word1; +#if N > 2 + z_crc_t crc2; + z_word_t word2; +#if N > 3 + z_crc_t crc3; + z_word_t word3; +#if N > 4 + z_crc_t crc4; + z_word_t word4; +#if N > 5 + z_crc_t crc5; + z_word_t word5; +#endif +#endif +#endif +#endif +#endif + + /* Initialize the CRC for each braid. */ + crc0 = crc; +#if N > 1 + crc1 = 0; +#if N > 2 + crc2 = 0; +#if N > 3 + crc3 = 0; +#if N > 4 + crc4 = 0; +#if N > 5 + crc5 = 0; +#endif +#endif +#endif +#endif +#endif + + /* + Process the first blks-1 blocks, computing the CRCs on each braid + independently. + */ + while (--blks) { + /* Load the word for each braid into registers. */ + word0 = crc0 ^ words[0]; +#if N > 1 + word1 = crc1 ^ words[1]; +#if N > 2 + word2 = crc2 ^ words[2]; +#if N > 3 + word3 = crc3 ^ words[3]; +#if N > 4 + word4 = crc4 ^ words[4]; +#if N > 5 + word5 = crc5 ^ words[5]; +#endif +#endif +#endif +#endif +#endif + words += N; + + /* Compute and update the CRC for each word. The loop should + get unrolled. */ + crc0 = crc_braid_table[0][word0 & 0xff]; +#if N > 1 + crc1 = crc_braid_table[0][word1 & 0xff]; +#if N > 2 + crc2 = crc_braid_table[0][word2 & 0xff]; +#if N > 3 + crc3 = crc_braid_table[0][word3 & 0xff]; +#if N > 4 + crc4 = crc_braid_table[0][word4 & 0xff]; +#if N > 5 + crc5 = crc_braid_table[0][word5 & 0xff]; +#endif +#endif +#endif +#endif +#endif + for (k = 1; k < W; k++) { + crc0 ^= crc_braid_table[k][(word0 >> (k << 3)) & 0xff]; +#if N > 1 + crc1 ^= crc_braid_table[k][(word1 >> (k << 3)) & 0xff]; +#if N > 2 + crc2 ^= crc_braid_table[k][(word2 >> (k << 3)) & 0xff]; +#if N > 3 + crc3 ^= crc_braid_table[k][(word3 >> (k << 3)) & 0xff]; +#if N > 4 + crc4 ^= crc_braid_table[k][(word4 >> (k << 3)) & 0xff]; +#if N > 5 + crc5 ^= crc_braid_table[k][(word5 >> (k << 3)) & 0xff]; +#endif +#endif +#endif +#endif +#endif + } + } + + /* + Process the last block, combining the CRCs of the N braids at the + same time. + */ + crc = crc_word(crc0 ^ words[0]); +#if N > 1 + crc = crc_word(crc1 ^ words[1] ^ crc); +#if N > 2 + crc = crc_word(crc2 ^ words[2] ^ crc); +#if N > 3 + crc = crc_word(crc3 ^ words[3] ^ crc); +#if N > 4 + crc = crc_word(crc4 ^ words[4] ^ crc); +#if N > 5 + crc = crc_word(crc5 ^ words[5] ^ crc); +#endif +#endif +#endif +#endif +#endif + words += N; + } + else { + /* Big endian. */ + + z_word_t crc0, word0, comb; +#if N > 1 + z_word_t crc1, word1; +#if N > 2 + z_word_t crc2, word2; +#if N > 3 + z_word_t crc3, word3; +#if N > 4 + z_word_t crc4, word4; +#if N > 5 + z_word_t crc5, word5; +#endif +#endif +#endif +#endif +#endif + + /* Initialize the CRC for each braid. */ + crc0 = byte_swap(crc); +#if N > 1 + crc1 = 0; +#if N > 2 + crc2 = 0; +#if N > 3 + crc3 = 0; +#if N > 4 + crc4 = 0; +#if N > 5 + crc5 = 0; +#endif +#endif +#endif +#endif +#endif + + /* + Process the first blks-1 blocks, computing the CRCs on each braid + independently. + */ + while (--blks) { + /* Load the word for each braid into registers. */ + word0 = crc0 ^ words[0]; +#if N > 1 + word1 = crc1 ^ words[1]; +#if N > 2 + word2 = crc2 ^ words[2]; +#if N > 3 + word3 = crc3 ^ words[3]; +#if N > 4 + word4 = crc4 ^ words[4]; +#if N > 5 + word5 = crc5 ^ words[5]; +#endif +#endif +#endif +#endif +#endif + words += N; + + /* Compute and update the CRC for each word. The loop should + get unrolled. */ + crc0 = crc_braid_big_table[0][word0 & 0xff]; +#if N > 1 + crc1 = crc_braid_big_table[0][word1 & 0xff]; +#if N > 2 + crc2 = crc_braid_big_table[0][word2 & 0xff]; +#if N > 3 + crc3 = crc_braid_big_table[0][word3 & 0xff]; +#if N > 4 + crc4 = crc_braid_big_table[0][word4 & 0xff]; +#if N > 5 + crc5 = crc_braid_big_table[0][word5 & 0xff]; +#endif +#endif +#endif +#endif +#endif + for (k = 1; k < W; k++) { + crc0 ^= crc_braid_big_table[k][(word0 >> (k << 3)) & 0xff]; +#if N > 1 + crc1 ^= crc_braid_big_table[k][(word1 >> (k << 3)) & 0xff]; +#if N > 2 + crc2 ^= crc_braid_big_table[k][(word2 >> (k << 3)) & 0xff]; +#if N > 3 + crc3 ^= crc_braid_big_table[k][(word3 >> (k << 3)) & 0xff]; +#if N > 4 + crc4 ^= crc_braid_big_table[k][(word4 >> (k << 3)) & 0xff]; +#if N > 5 + crc5 ^= crc_braid_big_table[k][(word5 >> (k << 3)) & 0xff]; +#endif +#endif +#endif +#endif +#endif + } + } + + /* + Process the last block, combining the CRCs of the N braids at the + same time. + */ + comb = crc_word_big(crc0 ^ words[0]); +#if N > 1 + comb = crc_word_big(crc1 ^ words[1] ^ comb); +#if N > 2 + comb = crc_word_big(crc2 ^ words[2] ^ comb); +#if N > 3 + comb = crc_word_big(crc3 ^ words[3] ^ comb); +#if N > 4 + comb = crc_word_big(crc4 ^ words[4] ^ comb); +#if N > 5 + comb = crc_word_big(crc5 ^ words[5] ^ comb); +#endif +#endif +#endif +#endif +#endif + words += N; + crc = byte_swap(comb); + } + + /* + Update the pointer to the remaining bytes to process. + */ + buf = (unsigned char const *)words; } - buf4 = (const z_crc_t FAR *)(const void FAR *)buf; - while (len >= 32) { - DOBIG32; - len -= 32; +#endif /* W */ + + /* Complete the computation of the CRC on any remaining bytes. */ + while (len >= 8) { + len -= 8; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; } - while (len >= 4) { - DOBIG4; - len -= 4; + while (len) { + len--; + crc = (crc >> 8) ^ crc_table[(crc ^ *buf++) & 0xff]; } - buf = (const unsigned char FAR *)buf4; - if (len) do { - c = crc_table[4][(c >> 24) ^ *buf++] ^ (c << 8); - } while (--len); - c = ~c; - return (unsigned long)(ZSWAP32(c)); + /* Return the CRC, post-conditioned. */ + return crc ^ 0xffffffff; } -#endif /* BYFOUR */ - -#define GF2_DIM 32 /* dimension of GF(2) vectors (length of CRC) */ +#endif /* ========================================================================= */ -local unsigned long gf2_matrix_times(mat, vec) - unsigned long *mat; - unsigned long vec; +unsigned long ZEXPORT crc32(crc, buf, len) + unsigned long crc; + const unsigned char FAR *buf; + uInt len; { - unsigned long sum; - - sum = 0; - while (vec) { - if (vec & 1) - sum ^= *mat; - vec >>= 1; - mat++; - } - return sum; + return crc32_z(crc, buf, len); } /* ========================================================================= */ -local void gf2_matrix_square(square, mat) - unsigned long *square; - unsigned long *mat; +uLong ZEXPORT crc32_combine64(crc1, crc2, len2) + uLong crc1; + uLong crc2; + z_off64_t len2; { - int n; - - for (n = 0; n < GF2_DIM; n++) - square[n] = gf2_matrix_times(mat, mat[n]); +#ifdef DYNAMIC_CRC_TABLE + once(&made, make_crc_table); +#endif /* DYNAMIC_CRC_TABLE */ + return multmodp(x2nmodp(len2, 3), crc1) ^ crc2; } /* ========================================================================= */ -local uLong crc32_combine_(crc1, crc2, len2) +uLong ZEXPORT crc32_combine(crc1, crc2, len2) uLong crc1; uLong crc2; - z_off64_t len2; + z_off_t len2; { - int n; - unsigned long row; - unsigned long even[GF2_DIM]; /* even-power-of-two zeros operator */ - unsigned long odd[GF2_DIM]; /* odd-power-of-two zeros operator */ - - /* degenerate case (also disallow negative lengths) */ - if (len2 <= 0) - return crc1; - - /* put operator for one zero bit in odd */ - odd[0] = 0xedb88320UL; /* CRC-32 polynomial */ - row = 1; - for (n = 1; n < GF2_DIM; n++) { - odd[n] = row; - row <<= 1; - } + return crc32_combine64(crc1, crc2, len2); +} - /* put operator for two zero bits in even */ - gf2_matrix_square(even, odd); - - /* put operator for four zero bits in odd */ - gf2_matrix_square(odd, even); - - /* apply len2 zeros to crc1 (first square will put the operator for one - zero byte, eight zero bits, in even) */ - do { - /* apply zeros operator for this bit of len2 */ - gf2_matrix_square(even, odd); - if (len2 & 1) - crc1 = gf2_matrix_times(even, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - if (len2 == 0) - break; - - /* another iteration of the loop with odd and even swapped */ - gf2_matrix_square(odd, even); - if (len2 & 1) - crc1 = gf2_matrix_times(odd, crc1); - len2 >>= 1; - - /* if no more bits set, then done */ - } while (len2 != 0); - - /* return combined crc */ - crc1 ^= crc2; - return crc1; +/* ========================================================================= */ +uLong ZEXPORT crc32_combine_gen64(len2) + z_off64_t len2; +{ +#ifdef DYNAMIC_CRC_TABLE + once(&made, make_crc_table); +#endif /* DYNAMIC_CRC_TABLE */ + return x2nmodp(len2, 3); } /* ========================================================================= */ -uLong ZEXPORT crc32_combine(crc1, crc2, len2) - uLong crc1; - uLong crc2; +uLong ZEXPORT crc32_combine_gen(len2) z_off_t len2; { - return crc32_combine_(crc1, crc2, len2); + return crc32_combine_gen64(len2); } -uLong ZEXPORT crc32_combine64(crc1, crc2, len2) +/* ========================================================================= */ +uLong crc32_combine_op(crc1, crc2, op) uLong crc1; uLong crc2; - z_off64_t len2; + uLong op; { - return crc32_combine_(crc1, crc2, len2); + return multmodp(op, crc1) ^ crc2; } diff --git a/qtbase/src/3rdparty/zlib/src/crc32.h b/qtbase/src/3rdparty/zlib/src/crc32.h index 9e0c778102..137df68d61 100644 --- a/qtbase/src/3rdparty/zlib/src/crc32.h +++ b/qtbase/src/3rdparty/zlib/src/crc32.h @@ -2,440 +2,9445 @@ * Generated automatically by crc32.c */ -local const z_crc_t FAR crc_table[TBLS][256] = -{ - { - 0x00000000UL, 0x77073096UL, 0xee0e612cUL, 0x990951baUL, 0x076dc419UL, - 0x706af48fUL, 0xe963a535UL, 0x9e6495a3UL, 0x0edb8832UL, 0x79dcb8a4UL, - 0xe0d5e91eUL, 0x97d2d988UL, 0x09b64c2bUL, 0x7eb17cbdUL, 0xe7b82d07UL, - 0x90bf1d91UL, 0x1db71064UL, 0x6ab020f2UL, 0xf3b97148UL, 0x84be41deUL, - 0x1adad47dUL, 0x6ddde4ebUL, 0xf4d4b551UL, 0x83d385c7UL, 0x136c9856UL, - 0x646ba8c0UL, 0xfd62f97aUL, 0x8a65c9ecUL, 0x14015c4fUL, 0x63066cd9UL, - 0xfa0f3d63UL, 0x8d080df5UL, 0x3b6e20c8UL, 0x4c69105eUL, 0xd56041e4UL, - 0xa2677172UL, 0x3c03e4d1UL, 0x4b04d447UL, 0xd20d85fdUL, 0xa50ab56bUL, - 0x35b5a8faUL, 0x42b2986cUL, 0xdbbbc9d6UL, 0xacbcf940UL, 0x32d86ce3UL, - 0x45df5c75UL, 0xdcd60dcfUL, 0xabd13d59UL, 0x26d930acUL, 0x51de003aUL, - 0xc8d75180UL, 0xbfd06116UL, 0x21b4f4b5UL, 0x56b3c423UL, 0xcfba9599UL, - 0xb8bda50fUL, 0x2802b89eUL, 0x5f058808UL, 0xc60cd9b2UL, 0xb10be924UL, - 0x2f6f7c87UL, 0x58684c11UL, 0xc1611dabUL, 0xb6662d3dUL, 0x76dc4190UL, - 0x01db7106UL, 0x98d220bcUL, 0xefd5102aUL, 0x71b18589UL, 0x06b6b51fUL, - 0x9fbfe4a5UL, 0xe8b8d433UL, 0x7807c9a2UL, 0x0f00f934UL, 0x9609a88eUL, - 0xe10e9818UL, 0x7f6a0dbbUL, 0x086d3d2dUL, 0x91646c97UL, 0xe6635c01UL, - 0x6b6b51f4UL, 0x1c6c6162UL, 0x856530d8UL, 0xf262004eUL, 0x6c0695edUL, - 0x1b01a57bUL, 0x8208f4c1UL, 0xf50fc457UL, 0x65b0d9c6UL, 0x12b7e950UL, - 0x8bbeb8eaUL, 0xfcb9887cUL, 0x62dd1ddfUL, 0x15da2d49UL, 0x8cd37cf3UL, - 0xfbd44c65UL, 0x4db26158UL, 0x3ab551ceUL, 0xa3bc0074UL, 0xd4bb30e2UL, - 0x4adfa541UL, 0x3dd895d7UL, 0xa4d1c46dUL, 0xd3d6f4fbUL, 0x4369e96aUL, - 0x346ed9fcUL, 0xad678846UL, 0xda60b8d0UL, 0x44042d73UL, 0x33031de5UL, - 0xaa0a4c5fUL, 0xdd0d7cc9UL, 0x5005713cUL, 0x270241aaUL, 0xbe0b1010UL, - 0xc90c2086UL, 0x5768b525UL, 0x206f85b3UL, 0xb966d409UL, 0xce61e49fUL, - 0x5edef90eUL, 0x29d9c998UL, 0xb0d09822UL, 0xc7d7a8b4UL, 0x59b33d17UL, - 0x2eb40d81UL, 0xb7bd5c3bUL, 0xc0ba6cadUL, 0xedb88320UL, 0x9abfb3b6UL, - 0x03b6e20cUL, 0x74b1d29aUL, 0xead54739UL, 0x9dd277afUL, 0x04db2615UL, - 0x73dc1683UL, 0xe3630b12UL, 0x94643b84UL, 0x0d6d6a3eUL, 0x7a6a5aa8UL, - 0xe40ecf0bUL, 0x9309ff9dUL, 0x0a00ae27UL, 0x7d079eb1UL, 0xf00f9344UL, - 0x8708a3d2UL, 0x1e01f268UL, 0x6906c2feUL, 0xf762575dUL, 0x806567cbUL, - 0x196c3671UL, 0x6e6b06e7UL, 0xfed41b76UL, 0x89d32be0UL, 0x10da7a5aUL, - 0x67dd4accUL, 0xf9b9df6fUL, 0x8ebeeff9UL, 0x17b7be43UL, 0x60b08ed5UL, - 0xd6d6a3e8UL, 0xa1d1937eUL, 0x38d8c2c4UL, 0x4fdff252UL, 0xd1bb67f1UL, - 0xa6bc5767UL, 0x3fb506ddUL, 0x48b2364bUL, 0xd80d2bdaUL, 0xaf0a1b4cUL, - 0x36034af6UL, 0x41047a60UL, 0xdf60efc3UL, 0xa867df55UL, 0x316e8eefUL, - 0x4669be79UL, 0xcb61b38cUL, 0xbc66831aUL, 0x256fd2a0UL, 0x5268e236UL, - 0xcc0c7795UL, 0xbb0b4703UL, 0x220216b9UL, 0x5505262fUL, 0xc5ba3bbeUL, - 0xb2bd0b28UL, 0x2bb45a92UL, 0x5cb36a04UL, 0xc2d7ffa7UL, 0xb5d0cf31UL, - 0x2cd99e8bUL, 0x5bdeae1dUL, 0x9b64c2b0UL, 0xec63f226UL, 0x756aa39cUL, - 0x026d930aUL, 0x9c0906a9UL, 0xeb0e363fUL, 0x72076785UL, 0x05005713UL, - 0x95bf4a82UL, 0xe2b87a14UL, 0x7bb12baeUL, 0x0cb61b38UL, 0x92d28e9bUL, - 0xe5d5be0dUL, 0x7cdcefb7UL, 0x0bdbdf21UL, 0x86d3d2d4UL, 0xf1d4e242UL, - 0x68ddb3f8UL, 0x1fda836eUL, 0x81be16cdUL, 0xf6b9265bUL, 0x6fb077e1UL, - 0x18b74777UL, 0x88085ae6UL, 0xff0f6a70UL, 0x66063bcaUL, 0x11010b5cUL, - 0x8f659effUL, 0xf862ae69UL, 0x616bffd3UL, 0x166ccf45UL, 0xa00ae278UL, - 0xd70dd2eeUL, 0x4e048354UL, 0x3903b3c2UL, 0xa7672661UL, 0xd06016f7UL, - 0x4969474dUL, 0x3e6e77dbUL, 0xaed16a4aUL, 0xd9d65adcUL, 0x40df0b66UL, - 0x37d83bf0UL, 0xa9bcae53UL, 0xdebb9ec5UL, 0x47b2cf7fUL, 0x30b5ffe9UL, - 0xbdbdf21cUL, 0xcabac28aUL, 0x53b39330UL, 0x24b4a3a6UL, 0xbad03605UL, - 0xcdd70693UL, 0x54de5729UL, 0x23d967bfUL, 0xb3667a2eUL, 0xc4614ab8UL, - 0x5d681b02UL, 0x2a6f2b94UL, 0xb40bbe37UL, 0xc30c8ea1UL, 0x5a05df1bUL, - 0x2d02ef8dUL -#ifdef BYFOUR - }, - { - 0x00000000UL, 0x191b3141UL, 0x32366282UL, 0x2b2d53c3UL, 0x646cc504UL, - 0x7d77f445UL, 0x565aa786UL, 0x4f4196c7UL, 0xc8d98a08UL, 0xd1c2bb49UL, - 0xfaefe88aUL, 0xe3f4d9cbUL, 0xacb54f0cUL, 0xb5ae7e4dUL, 0x9e832d8eUL, - 0x87981ccfUL, 0x4ac21251UL, 0x53d92310UL, 0x78f470d3UL, 0x61ef4192UL, - 0x2eaed755UL, 0x37b5e614UL, 0x1c98b5d7UL, 0x05838496UL, 0x821b9859UL, - 0x9b00a918UL, 0xb02dfadbUL, 0xa936cb9aUL, 0xe6775d5dUL, 0xff6c6c1cUL, - 0xd4413fdfUL, 0xcd5a0e9eUL, 0x958424a2UL, 0x8c9f15e3UL, 0xa7b24620UL, - 0xbea97761UL, 0xf1e8e1a6UL, 0xe8f3d0e7UL, 0xc3de8324UL, 0xdac5b265UL, - 0x5d5daeaaUL, 0x44469febUL, 0x6f6bcc28UL, 0x7670fd69UL, 0x39316baeUL, - 0x202a5aefUL, 0x0b07092cUL, 0x121c386dUL, 0xdf4636f3UL, 0xc65d07b2UL, - 0xed705471UL, 0xf46b6530UL, 0xbb2af3f7UL, 0xa231c2b6UL, 0x891c9175UL, - 0x9007a034UL, 0x179fbcfbUL, 0x0e848dbaUL, 0x25a9de79UL, 0x3cb2ef38UL, - 0x73f379ffUL, 0x6ae848beUL, 0x41c51b7dUL, 0x58de2a3cUL, 0xf0794f05UL, - 0xe9627e44UL, 0xc24f2d87UL, 0xdb541cc6UL, 0x94158a01UL, 0x8d0ebb40UL, - 0xa623e883UL, 0xbf38d9c2UL, 0x38a0c50dUL, 0x21bbf44cUL, 0x0a96a78fUL, - 0x138d96ceUL, 0x5ccc0009UL, 0x45d73148UL, 0x6efa628bUL, 0x77e153caUL, - 0xbabb5d54UL, 0xa3a06c15UL, 0x888d3fd6UL, 0x91960e97UL, 0xded79850UL, - 0xc7cca911UL, 0xece1fad2UL, 0xf5facb93UL, 0x7262d75cUL, 0x6b79e61dUL, - 0x4054b5deUL, 0x594f849fUL, 0x160e1258UL, 0x0f152319UL, 0x243870daUL, - 0x3d23419bUL, 0x65fd6ba7UL, 0x7ce65ae6UL, 0x57cb0925UL, 0x4ed03864UL, - 0x0191aea3UL, 0x188a9fe2UL, 0x33a7cc21UL, 0x2abcfd60UL, 0xad24e1afUL, - 0xb43fd0eeUL, 0x9f12832dUL, 0x8609b26cUL, 0xc94824abUL, 0xd05315eaUL, - 0xfb7e4629UL, 0xe2657768UL, 0x2f3f79f6UL, 0x362448b7UL, 0x1d091b74UL, - 0x04122a35UL, 0x4b53bcf2UL, 0x52488db3UL, 0x7965de70UL, 0x607eef31UL, - 0xe7e6f3feUL, 0xfefdc2bfUL, 0xd5d0917cUL, 0xcccba03dUL, 0x838a36faUL, - 0x9a9107bbUL, 0xb1bc5478UL, 0xa8a76539UL, 0x3b83984bUL, 0x2298a90aUL, - 0x09b5fac9UL, 0x10aecb88UL, 0x5fef5d4fUL, 0x46f46c0eUL, 0x6dd93fcdUL, - 0x74c20e8cUL, 0xf35a1243UL, 0xea412302UL, 0xc16c70c1UL, 0xd8774180UL, - 0x9736d747UL, 0x8e2de606UL, 0xa500b5c5UL, 0xbc1b8484UL, 0x71418a1aUL, - 0x685abb5bUL, 0x4377e898UL, 0x5a6cd9d9UL, 0x152d4f1eUL, 0x0c367e5fUL, - 0x271b2d9cUL, 0x3e001cddUL, 0xb9980012UL, 0xa0833153UL, 0x8bae6290UL, - 0x92b553d1UL, 0xddf4c516UL, 0xc4eff457UL, 0xefc2a794UL, 0xf6d996d5UL, - 0xae07bce9UL, 0xb71c8da8UL, 0x9c31de6bUL, 0x852aef2aUL, 0xca6b79edUL, - 0xd37048acUL, 0xf85d1b6fUL, 0xe1462a2eUL, 0x66de36e1UL, 0x7fc507a0UL, - 0x54e85463UL, 0x4df36522UL, 0x02b2f3e5UL, 0x1ba9c2a4UL, 0x30849167UL, - 0x299fa026UL, 0xe4c5aeb8UL, 0xfdde9ff9UL, 0xd6f3cc3aUL, 0xcfe8fd7bUL, - 0x80a96bbcUL, 0x99b25afdUL, 0xb29f093eUL, 0xab84387fUL, 0x2c1c24b0UL, - 0x350715f1UL, 0x1e2a4632UL, 0x07317773UL, 0x4870e1b4UL, 0x516bd0f5UL, - 0x7a468336UL, 0x635db277UL, 0xcbfad74eUL, 0xd2e1e60fUL, 0xf9ccb5ccUL, - 0xe0d7848dUL, 0xaf96124aUL, 0xb68d230bUL, 0x9da070c8UL, 0x84bb4189UL, - 0x03235d46UL, 0x1a386c07UL, 0x31153fc4UL, 0x280e0e85UL, 0x674f9842UL, - 0x7e54a903UL, 0x5579fac0UL, 0x4c62cb81UL, 0x8138c51fUL, 0x9823f45eUL, - 0xb30ea79dUL, 0xaa1596dcUL, 0xe554001bUL, 0xfc4f315aUL, 0xd7626299UL, - 0xce7953d8UL, 0x49e14f17UL, 0x50fa7e56UL, 0x7bd72d95UL, 0x62cc1cd4UL, - 0x2d8d8a13UL, 0x3496bb52UL, 0x1fbbe891UL, 0x06a0d9d0UL, 0x5e7ef3ecUL, - 0x4765c2adUL, 0x6c48916eUL, 0x7553a02fUL, 0x3a1236e8UL, 0x230907a9UL, - 0x0824546aUL, 0x113f652bUL, 0x96a779e4UL, 0x8fbc48a5UL, 0xa4911b66UL, - 0xbd8a2a27UL, 0xf2cbbce0UL, 0xebd08da1UL, 0xc0fdde62UL, 0xd9e6ef23UL, - 0x14bce1bdUL, 0x0da7d0fcUL, 0x268a833fUL, 0x3f91b27eUL, 0x70d024b9UL, - 0x69cb15f8UL, 0x42e6463bUL, 0x5bfd777aUL, 0xdc656bb5UL, 0xc57e5af4UL, - 0xee530937UL, 0xf7483876UL, 0xb809aeb1UL, 0xa1129ff0UL, 0x8a3fcc33UL, - 0x9324fd72UL - }, - { - 0x00000000UL, 0x01c26a37UL, 0x0384d46eUL, 0x0246be59UL, 0x0709a8dcUL, - 0x06cbc2ebUL, 0x048d7cb2UL, 0x054f1685UL, 0x0e1351b8UL, 0x0fd13b8fUL, - 0x0d9785d6UL, 0x0c55efe1UL, 0x091af964UL, 0x08d89353UL, 0x0a9e2d0aUL, - 0x0b5c473dUL, 0x1c26a370UL, 0x1de4c947UL, 0x1fa2771eUL, 0x1e601d29UL, - 0x1b2f0bacUL, 0x1aed619bUL, 0x18abdfc2UL, 0x1969b5f5UL, 0x1235f2c8UL, - 0x13f798ffUL, 0x11b126a6UL, 0x10734c91UL, 0x153c5a14UL, 0x14fe3023UL, - 0x16b88e7aUL, 0x177ae44dUL, 0x384d46e0UL, 0x398f2cd7UL, 0x3bc9928eUL, - 0x3a0bf8b9UL, 0x3f44ee3cUL, 0x3e86840bUL, 0x3cc03a52UL, 0x3d025065UL, - 0x365e1758UL, 0x379c7d6fUL, 0x35dac336UL, 0x3418a901UL, 0x3157bf84UL, - 0x3095d5b3UL, 0x32d36beaUL, 0x331101ddUL, 0x246be590UL, 0x25a98fa7UL, - 0x27ef31feUL, 0x262d5bc9UL, 0x23624d4cUL, 0x22a0277bUL, 0x20e69922UL, - 0x2124f315UL, 0x2a78b428UL, 0x2bbade1fUL, 0x29fc6046UL, 0x283e0a71UL, - 0x2d711cf4UL, 0x2cb376c3UL, 0x2ef5c89aUL, 0x2f37a2adUL, 0x709a8dc0UL, - 0x7158e7f7UL, 0x731e59aeUL, 0x72dc3399UL, 0x7793251cUL, 0x76514f2bUL, - 0x7417f172UL, 0x75d59b45UL, 0x7e89dc78UL, 0x7f4bb64fUL, 0x7d0d0816UL, - 0x7ccf6221UL, 0x798074a4UL, 0x78421e93UL, 0x7a04a0caUL, 0x7bc6cafdUL, - 0x6cbc2eb0UL, 0x6d7e4487UL, 0x6f38fadeUL, 0x6efa90e9UL, 0x6bb5866cUL, - 0x6a77ec5bUL, 0x68315202UL, 0x69f33835UL, 0x62af7f08UL, 0x636d153fUL, - 0x612bab66UL, 0x60e9c151UL, 0x65a6d7d4UL, 0x6464bde3UL, 0x662203baUL, - 0x67e0698dUL, 0x48d7cb20UL, 0x4915a117UL, 0x4b531f4eUL, 0x4a917579UL, - 0x4fde63fcUL, 0x4e1c09cbUL, 0x4c5ab792UL, 0x4d98dda5UL, 0x46c49a98UL, - 0x4706f0afUL, 0x45404ef6UL, 0x448224c1UL, 0x41cd3244UL, 0x400f5873UL, - 0x4249e62aUL, 0x438b8c1dUL, 0x54f16850UL, 0x55330267UL, 0x5775bc3eUL, - 0x56b7d609UL, 0x53f8c08cUL, 0x523aaabbUL, 0x507c14e2UL, 0x51be7ed5UL, - 0x5ae239e8UL, 0x5b2053dfUL, 0x5966ed86UL, 0x58a487b1UL, 0x5deb9134UL, - 0x5c29fb03UL, 0x5e6f455aUL, 0x5fad2f6dUL, 0xe1351b80UL, 0xe0f771b7UL, - 0xe2b1cfeeUL, 0xe373a5d9UL, 0xe63cb35cUL, 0xe7fed96bUL, 0xe5b86732UL, - 0xe47a0d05UL, 0xef264a38UL, 0xeee4200fUL, 0xeca29e56UL, 0xed60f461UL, - 0xe82fe2e4UL, 0xe9ed88d3UL, 0xebab368aUL, 0xea695cbdUL, 0xfd13b8f0UL, - 0xfcd1d2c7UL, 0xfe976c9eUL, 0xff5506a9UL, 0xfa1a102cUL, 0xfbd87a1bUL, - 0xf99ec442UL, 0xf85cae75UL, 0xf300e948UL, 0xf2c2837fUL, 0xf0843d26UL, - 0xf1465711UL, 0xf4094194UL, 0xf5cb2ba3UL, 0xf78d95faUL, 0xf64fffcdUL, - 0xd9785d60UL, 0xd8ba3757UL, 0xdafc890eUL, 0xdb3ee339UL, 0xde71f5bcUL, - 0xdfb39f8bUL, 0xddf521d2UL, 0xdc374be5UL, 0xd76b0cd8UL, 0xd6a966efUL, - 0xd4efd8b6UL, 0xd52db281UL, 0xd062a404UL, 0xd1a0ce33UL, 0xd3e6706aUL, - 0xd2241a5dUL, 0xc55efe10UL, 0xc49c9427UL, 0xc6da2a7eUL, 0xc7184049UL, - 0xc25756ccUL, 0xc3953cfbUL, 0xc1d382a2UL, 0xc011e895UL, 0xcb4dafa8UL, - 0xca8fc59fUL, 0xc8c97bc6UL, 0xc90b11f1UL, 0xcc440774UL, 0xcd866d43UL, - 0xcfc0d31aUL, 0xce02b92dUL, 0x91af9640UL, 0x906dfc77UL, 0x922b422eUL, - 0x93e92819UL, 0x96a63e9cUL, 0x976454abUL, 0x9522eaf2UL, 0x94e080c5UL, - 0x9fbcc7f8UL, 0x9e7eadcfUL, 0x9c381396UL, 0x9dfa79a1UL, 0x98b56f24UL, - 0x99770513UL, 0x9b31bb4aUL, 0x9af3d17dUL, 0x8d893530UL, 0x8c4b5f07UL, - 0x8e0de15eUL, 0x8fcf8b69UL, 0x8a809decUL, 0x8b42f7dbUL, 0x89044982UL, - 0x88c623b5UL, 0x839a6488UL, 0x82580ebfUL, 0x801eb0e6UL, 0x81dcdad1UL, - 0x8493cc54UL, 0x8551a663UL, 0x8717183aUL, 0x86d5720dUL, 0xa9e2d0a0UL, - 0xa820ba97UL, 0xaa6604ceUL, 0xaba46ef9UL, 0xaeeb787cUL, 0xaf29124bUL, - 0xad6fac12UL, 0xacadc625UL, 0xa7f18118UL, 0xa633eb2fUL, 0xa4755576UL, - 0xa5b73f41UL, 0xa0f829c4UL, 0xa13a43f3UL, 0xa37cfdaaUL, 0xa2be979dUL, - 0xb5c473d0UL, 0xb40619e7UL, 0xb640a7beUL, 0xb782cd89UL, 0xb2cddb0cUL, - 0xb30fb13bUL, 0xb1490f62UL, 0xb08b6555UL, 0xbbd72268UL, 0xba15485fUL, - 0xb853f606UL, 0xb9919c31UL, 0xbcde8ab4UL, 0xbd1ce083UL, 0xbf5a5edaUL, - 0xbe9834edUL - }, - { - 0x00000000UL, 0xb8bc6765UL, 0xaa09c88bUL, 0x12b5afeeUL, 0x8f629757UL, - 0x37def032UL, 0x256b5fdcUL, 0x9dd738b9UL, 0xc5b428efUL, 0x7d084f8aUL, - 0x6fbde064UL, 0xd7018701UL, 0x4ad6bfb8UL, 0xf26ad8ddUL, 0xe0df7733UL, - 0x58631056UL, 0x5019579fUL, 0xe8a530faUL, 0xfa109f14UL, 0x42acf871UL, - 0xdf7bc0c8UL, 0x67c7a7adUL, 0x75720843UL, 0xcdce6f26UL, 0x95ad7f70UL, - 0x2d111815UL, 0x3fa4b7fbUL, 0x8718d09eUL, 0x1acfe827UL, 0xa2738f42UL, - 0xb0c620acUL, 0x087a47c9UL, 0xa032af3eUL, 0x188ec85bUL, 0x0a3b67b5UL, - 0xb28700d0UL, 0x2f503869UL, 0x97ec5f0cUL, 0x8559f0e2UL, 0x3de59787UL, - 0x658687d1UL, 0xdd3ae0b4UL, 0xcf8f4f5aUL, 0x7733283fUL, 0xeae41086UL, - 0x525877e3UL, 0x40edd80dUL, 0xf851bf68UL, 0xf02bf8a1UL, 0x48979fc4UL, - 0x5a22302aUL, 0xe29e574fUL, 0x7f496ff6UL, 0xc7f50893UL, 0xd540a77dUL, - 0x6dfcc018UL, 0x359fd04eUL, 0x8d23b72bUL, 0x9f9618c5UL, 0x272a7fa0UL, - 0xbafd4719UL, 0x0241207cUL, 0x10f48f92UL, 0xa848e8f7UL, 0x9b14583dUL, - 0x23a83f58UL, 0x311d90b6UL, 0x89a1f7d3UL, 0x1476cf6aUL, 0xaccaa80fUL, - 0xbe7f07e1UL, 0x06c36084UL, 0x5ea070d2UL, 0xe61c17b7UL, 0xf4a9b859UL, - 0x4c15df3cUL, 0xd1c2e785UL, 0x697e80e0UL, 0x7bcb2f0eUL, 0xc377486bUL, - 0xcb0d0fa2UL, 0x73b168c7UL, 0x6104c729UL, 0xd9b8a04cUL, 0x446f98f5UL, - 0xfcd3ff90UL, 0xee66507eUL, 0x56da371bUL, 0x0eb9274dUL, 0xb6054028UL, - 0xa4b0efc6UL, 0x1c0c88a3UL, 0x81dbb01aUL, 0x3967d77fUL, 0x2bd27891UL, - 0x936e1ff4UL, 0x3b26f703UL, 0x839a9066UL, 0x912f3f88UL, 0x299358edUL, - 0xb4446054UL, 0x0cf80731UL, 0x1e4da8dfUL, 0xa6f1cfbaUL, 0xfe92dfecUL, - 0x462eb889UL, 0x549b1767UL, 0xec277002UL, 0x71f048bbUL, 0xc94c2fdeUL, - 0xdbf98030UL, 0x6345e755UL, 0x6b3fa09cUL, 0xd383c7f9UL, 0xc1366817UL, - 0x798a0f72UL, 0xe45d37cbUL, 0x5ce150aeUL, 0x4e54ff40UL, 0xf6e89825UL, - 0xae8b8873UL, 0x1637ef16UL, 0x048240f8UL, 0xbc3e279dUL, 0x21e91f24UL, - 0x99557841UL, 0x8be0d7afUL, 0x335cb0caUL, 0xed59b63bUL, 0x55e5d15eUL, - 0x47507eb0UL, 0xffec19d5UL, 0x623b216cUL, 0xda874609UL, 0xc832e9e7UL, - 0x708e8e82UL, 0x28ed9ed4UL, 0x9051f9b1UL, 0x82e4565fUL, 0x3a58313aUL, - 0xa78f0983UL, 0x1f336ee6UL, 0x0d86c108UL, 0xb53aa66dUL, 0xbd40e1a4UL, - 0x05fc86c1UL, 0x1749292fUL, 0xaff54e4aUL, 0x322276f3UL, 0x8a9e1196UL, - 0x982bbe78UL, 0x2097d91dUL, 0x78f4c94bUL, 0xc048ae2eUL, 0xd2fd01c0UL, - 0x6a4166a5UL, 0xf7965e1cUL, 0x4f2a3979UL, 0x5d9f9697UL, 0xe523f1f2UL, - 0x4d6b1905UL, 0xf5d77e60UL, 0xe762d18eUL, 0x5fdeb6ebUL, 0xc2098e52UL, - 0x7ab5e937UL, 0x680046d9UL, 0xd0bc21bcUL, 0x88df31eaUL, 0x3063568fUL, - 0x22d6f961UL, 0x9a6a9e04UL, 0x07bda6bdUL, 0xbf01c1d8UL, 0xadb46e36UL, - 0x15080953UL, 0x1d724e9aUL, 0xa5ce29ffUL, 0xb77b8611UL, 0x0fc7e174UL, - 0x9210d9cdUL, 0x2aacbea8UL, 0x38191146UL, 0x80a57623UL, 0xd8c66675UL, - 0x607a0110UL, 0x72cfaefeUL, 0xca73c99bUL, 0x57a4f122UL, 0xef189647UL, - 0xfdad39a9UL, 0x45115eccUL, 0x764dee06UL, 0xcef18963UL, 0xdc44268dUL, - 0x64f841e8UL, 0xf92f7951UL, 0x41931e34UL, 0x5326b1daUL, 0xeb9ad6bfUL, - 0xb3f9c6e9UL, 0x0b45a18cUL, 0x19f00e62UL, 0xa14c6907UL, 0x3c9b51beUL, - 0x842736dbUL, 0x96929935UL, 0x2e2efe50UL, 0x2654b999UL, 0x9ee8defcUL, - 0x8c5d7112UL, 0x34e11677UL, 0xa9362eceUL, 0x118a49abUL, 0x033fe645UL, - 0xbb838120UL, 0xe3e09176UL, 0x5b5cf613UL, 0x49e959fdUL, 0xf1553e98UL, - 0x6c820621UL, 0xd43e6144UL, 0xc68bceaaUL, 0x7e37a9cfUL, 0xd67f4138UL, - 0x6ec3265dUL, 0x7c7689b3UL, 0xc4caeed6UL, 0x591dd66fUL, 0xe1a1b10aUL, - 0xf3141ee4UL, 0x4ba87981UL, 0x13cb69d7UL, 0xab770eb2UL, 0xb9c2a15cUL, - 0x017ec639UL, 0x9ca9fe80UL, 0x241599e5UL, 0x36a0360bUL, 0x8e1c516eUL, - 0x866616a7UL, 0x3eda71c2UL, 0x2c6fde2cUL, 0x94d3b949UL, 0x090481f0UL, - 0xb1b8e695UL, 0xa30d497bUL, 0x1bb12e1eUL, 0x43d23e48UL, 0xfb6e592dUL, - 0xe9dbf6c3UL, 0x516791a6UL, 0xccb0a91fUL, 0x740cce7aUL, 0x66b96194UL, - 0xde0506f1UL - }, - { - 0x00000000UL, 0x96300777UL, 0x2c610eeeUL, 0xba510999UL, 0x19c46d07UL, - 0x8ff46a70UL, 0x35a563e9UL, 0xa395649eUL, 0x3288db0eUL, 0xa4b8dc79UL, - 0x1ee9d5e0UL, 0x88d9d297UL, 0x2b4cb609UL, 0xbd7cb17eUL, 0x072db8e7UL, - 0x911dbf90UL, 0x6410b71dUL, 0xf220b06aUL, 0x4871b9f3UL, 0xde41be84UL, - 0x7dd4da1aUL, 0xebe4dd6dUL, 0x51b5d4f4UL, 0xc785d383UL, 0x56986c13UL, - 0xc0a86b64UL, 0x7af962fdUL, 0xecc9658aUL, 0x4f5c0114UL, 0xd96c0663UL, - 0x633d0ffaUL, 0xf50d088dUL, 0xc8206e3bUL, 0x5e10694cUL, 0xe44160d5UL, - 0x727167a2UL, 0xd1e4033cUL, 0x47d4044bUL, 0xfd850dd2UL, 0x6bb50aa5UL, - 0xfaa8b535UL, 0x6c98b242UL, 0xd6c9bbdbUL, 0x40f9bcacUL, 0xe36cd832UL, - 0x755cdf45UL, 0xcf0dd6dcUL, 0x593dd1abUL, 0xac30d926UL, 0x3a00de51UL, - 0x8051d7c8UL, 0x1661d0bfUL, 0xb5f4b421UL, 0x23c4b356UL, 0x9995bacfUL, - 0x0fa5bdb8UL, 0x9eb80228UL, 0x0888055fUL, 0xb2d90cc6UL, 0x24e90bb1UL, - 0x877c6f2fUL, 0x114c6858UL, 0xab1d61c1UL, 0x3d2d66b6UL, 0x9041dc76UL, - 0x0671db01UL, 0xbc20d298UL, 0x2a10d5efUL, 0x8985b171UL, 0x1fb5b606UL, - 0xa5e4bf9fUL, 0x33d4b8e8UL, 0xa2c90778UL, 0x34f9000fUL, 0x8ea80996UL, - 0x18980ee1UL, 0xbb0d6a7fUL, 0x2d3d6d08UL, 0x976c6491UL, 0x015c63e6UL, - 0xf4516b6bUL, 0x62616c1cUL, 0xd8306585UL, 0x4e0062f2UL, 0xed95066cUL, - 0x7ba5011bUL, 0xc1f40882UL, 0x57c40ff5UL, 0xc6d9b065UL, 0x50e9b712UL, - 0xeab8be8bUL, 0x7c88b9fcUL, 0xdf1ddd62UL, 0x492dda15UL, 0xf37cd38cUL, - 0x654cd4fbUL, 0x5861b24dUL, 0xce51b53aUL, 0x7400bca3UL, 0xe230bbd4UL, - 0x41a5df4aUL, 0xd795d83dUL, 0x6dc4d1a4UL, 0xfbf4d6d3UL, 0x6ae96943UL, - 0xfcd96e34UL, 0x468867adUL, 0xd0b860daUL, 0x732d0444UL, 0xe51d0333UL, - 0x5f4c0aaaUL, 0xc97c0dddUL, 0x3c710550UL, 0xaa410227UL, 0x10100bbeUL, - 0x86200cc9UL, 0x25b56857UL, 0xb3856f20UL, 0x09d466b9UL, 0x9fe461ceUL, - 0x0ef9de5eUL, 0x98c9d929UL, 0x2298d0b0UL, 0xb4a8d7c7UL, 0x173db359UL, - 0x810db42eUL, 0x3b5cbdb7UL, 0xad6cbac0UL, 0x2083b8edUL, 0xb6b3bf9aUL, - 0x0ce2b603UL, 0x9ad2b174UL, 0x3947d5eaUL, 0xaf77d29dUL, 0x1526db04UL, - 0x8316dc73UL, 0x120b63e3UL, 0x843b6494UL, 0x3e6a6d0dUL, 0xa85a6a7aUL, - 0x0bcf0ee4UL, 0x9dff0993UL, 0x27ae000aUL, 0xb19e077dUL, 0x44930ff0UL, - 0xd2a30887UL, 0x68f2011eUL, 0xfec20669UL, 0x5d5762f7UL, 0xcb676580UL, - 0x71366c19UL, 0xe7066b6eUL, 0x761bd4feUL, 0xe02bd389UL, 0x5a7ada10UL, - 0xcc4add67UL, 0x6fdfb9f9UL, 0xf9efbe8eUL, 0x43beb717UL, 0xd58eb060UL, - 0xe8a3d6d6UL, 0x7e93d1a1UL, 0xc4c2d838UL, 0x52f2df4fUL, 0xf167bbd1UL, - 0x6757bca6UL, 0xdd06b53fUL, 0x4b36b248UL, 0xda2b0dd8UL, 0x4c1b0aafUL, - 0xf64a0336UL, 0x607a0441UL, 0xc3ef60dfUL, 0x55df67a8UL, 0xef8e6e31UL, - 0x79be6946UL, 0x8cb361cbUL, 0x1a8366bcUL, 0xa0d26f25UL, 0x36e26852UL, - 0x95770cccUL, 0x03470bbbUL, 0xb9160222UL, 0x2f260555UL, 0xbe3bbac5UL, - 0x280bbdb2UL, 0x925ab42bUL, 0x046ab35cUL, 0xa7ffd7c2UL, 0x31cfd0b5UL, - 0x8b9ed92cUL, 0x1daede5bUL, 0xb0c2649bUL, 0x26f263ecUL, 0x9ca36a75UL, - 0x0a936d02UL, 0xa906099cUL, 0x3f360eebUL, 0x85670772UL, 0x13570005UL, - 0x824abf95UL, 0x147ab8e2UL, 0xae2bb17bUL, 0x381bb60cUL, 0x9b8ed292UL, - 0x0dbed5e5UL, 0xb7efdc7cUL, 0x21dfdb0bUL, 0xd4d2d386UL, 0x42e2d4f1UL, - 0xf8b3dd68UL, 0x6e83da1fUL, 0xcd16be81UL, 0x5b26b9f6UL, 0xe177b06fUL, - 0x7747b718UL, 0xe65a0888UL, 0x706a0fffUL, 0xca3b0666UL, 0x5c0b0111UL, - 0xff9e658fUL, 0x69ae62f8UL, 0xd3ff6b61UL, 0x45cf6c16UL, 0x78e20aa0UL, - 0xeed20dd7UL, 0x5483044eUL, 0xc2b30339UL, 0x612667a7UL, 0xf71660d0UL, - 0x4d476949UL, 0xdb776e3eUL, 0x4a6ad1aeUL, 0xdc5ad6d9UL, 0x660bdf40UL, - 0xf03bd837UL, 0x53aebca9UL, 0xc59ebbdeUL, 0x7fcfb247UL, 0xe9ffb530UL, - 0x1cf2bdbdUL, 0x8ac2bacaUL, 0x3093b353UL, 0xa6a3b424UL, 0x0536d0baUL, - 0x9306d7cdUL, 0x2957de54UL, 0xbf67d923UL, 0x2e7a66b3UL, 0xb84a61c4UL, - 0x021b685dUL, 0x942b6f2aUL, 0x37be0bb4UL, 0xa18e0cc3UL, 0x1bdf055aUL, - 0x8def022dUL - }, - { - 0x00000000UL, 0x41311b19UL, 0x82623632UL, 0xc3532d2bUL, 0x04c56c64UL, - 0x45f4777dUL, 0x86a75a56UL, 0xc796414fUL, 0x088ad9c8UL, 0x49bbc2d1UL, - 0x8ae8effaUL, 0xcbd9f4e3UL, 0x0c4fb5acUL, 0x4d7eaeb5UL, 0x8e2d839eUL, - 0xcf1c9887UL, 0x5112c24aUL, 0x1023d953UL, 0xd370f478UL, 0x9241ef61UL, - 0x55d7ae2eUL, 0x14e6b537UL, 0xd7b5981cUL, 0x96848305UL, 0x59981b82UL, - 0x18a9009bUL, 0xdbfa2db0UL, 0x9acb36a9UL, 0x5d5d77e6UL, 0x1c6c6cffUL, - 0xdf3f41d4UL, 0x9e0e5acdUL, 0xa2248495UL, 0xe3159f8cUL, 0x2046b2a7UL, - 0x6177a9beUL, 0xa6e1e8f1UL, 0xe7d0f3e8UL, 0x2483dec3UL, 0x65b2c5daUL, - 0xaaae5d5dUL, 0xeb9f4644UL, 0x28cc6b6fUL, 0x69fd7076UL, 0xae6b3139UL, - 0xef5a2a20UL, 0x2c09070bUL, 0x6d381c12UL, 0xf33646dfUL, 0xb2075dc6UL, - 0x715470edUL, 0x30656bf4UL, 0xf7f32abbUL, 0xb6c231a2UL, 0x75911c89UL, - 0x34a00790UL, 0xfbbc9f17UL, 0xba8d840eUL, 0x79dea925UL, 0x38efb23cUL, - 0xff79f373UL, 0xbe48e86aUL, 0x7d1bc541UL, 0x3c2ade58UL, 0x054f79f0UL, - 0x447e62e9UL, 0x872d4fc2UL, 0xc61c54dbUL, 0x018a1594UL, 0x40bb0e8dUL, - 0x83e823a6UL, 0xc2d938bfUL, 0x0dc5a038UL, 0x4cf4bb21UL, 0x8fa7960aUL, - 0xce968d13UL, 0x0900cc5cUL, 0x4831d745UL, 0x8b62fa6eUL, 0xca53e177UL, - 0x545dbbbaUL, 0x156ca0a3UL, 0xd63f8d88UL, 0x970e9691UL, 0x5098d7deUL, - 0x11a9ccc7UL, 0xd2fae1ecUL, 0x93cbfaf5UL, 0x5cd76272UL, 0x1de6796bUL, - 0xdeb55440UL, 0x9f844f59UL, 0x58120e16UL, 0x1923150fUL, 0xda703824UL, - 0x9b41233dUL, 0xa76bfd65UL, 0xe65ae67cUL, 0x2509cb57UL, 0x6438d04eUL, - 0xa3ae9101UL, 0xe29f8a18UL, 0x21cca733UL, 0x60fdbc2aUL, 0xafe124adUL, - 0xeed03fb4UL, 0x2d83129fUL, 0x6cb20986UL, 0xab2448c9UL, 0xea1553d0UL, - 0x29467efbUL, 0x687765e2UL, 0xf6793f2fUL, 0xb7482436UL, 0x741b091dUL, - 0x352a1204UL, 0xf2bc534bUL, 0xb38d4852UL, 0x70de6579UL, 0x31ef7e60UL, - 0xfef3e6e7UL, 0xbfc2fdfeUL, 0x7c91d0d5UL, 0x3da0cbccUL, 0xfa368a83UL, - 0xbb07919aUL, 0x7854bcb1UL, 0x3965a7a8UL, 0x4b98833bUL, 0x0aa99822UL, - 0xc9fab509UL, 0x88cbae10UL, 0x4f5def5fUL, 0x0e6cf446UL, 0xcd3fd96dUL, - 0x8c0ec274UL, 0x43125af3UL, 0x022341eaUL, 0xc1706cc1UL, 0x804177d8UL, - 0x47d73697UL, 0x06e62d8eUL, 0xc5b500a5UL, 0x84841bbcUL, 0x1a8a4171UL, - 0x5bbb5a68UL, 0x98e87743UL, 0xd9d96c5aUL, 0x1e4f2d15UL, 0x5f7e360cUL, - 0x9c2d1b27UL, 0xdd1c003eUL, 0x120098b9UL, 0x533183a0UL, 0x9062ae8bUL, - 0xd153b592UL, 0x16c5f4ddUL, 0x57f4efc4UL, 0x94a7c2efUL, 0xd596d9f6UL, - 0xe9bc07aeUL, 0xa88d1cb7UL, 0x6bde319cUL, 0x2aef2a85UL, 0xed796bcaUL, - 0xac4870d3UL, 0x6f1b5df8UL, 0x2e2a46e1UL, 0xe136de66UL, 0xa007c57fUL, - 0x6354e854UL, 0x2265f34dUL, 0xe5f3b202UL, 0xa4c2a91bUL, 0x67918430UL, - 0x26a09f29UL, 0xb8aec5e4UL, 0xf99fdefdUL, 0x3accf3d6UL, 0x7bfde8cfUL, - 0xbc6ba980UL, 0xfd5ab299UL, 0x3e099fb2UL, 0x7f3884abUL, 0xb0241c2cUL, - 0xf1150735UL, 0x32462a1eUL, 0x73773107UL, 0xb4e17048UL, 0xf5d06b51UL, - 0x3683467aUL, 0x77b25d63UL, 0x4ed7facbUL, 0x0fe6e1d2UL, 0xccb5ccf9UL, - 0x8d84d7e0UL, 0x4a1296afUL, 0x0b238db6UL, 0xc870a09dUL, 0x8941bb84UL, - 0x465d2303UL, 0x076c381aUL, 0xc43f1531UL, 0x850e0e28UL, 0x42984f67UL, - 0x03a9547eUL, 0xc0fa7955UL, 0x81cb624cUL, 0x1fc53881UL, 0x5ef42398UL, - 0x9da70eb3UL, 0xdc9615aaUL, 0x1b0054e5UL, 0x5a314ffcUL, 0x996262d7UL, - 0xd85379ceUL, 0x174fe149UL, 0x567efa50UL, 0x952dd77bUL, 0xd41ccc62UL, - 0x138a8d2dUL, 0x52bb9634UL, 0x91e8bb1fUL, 0xd0d9a006UL, 0xecf37e5eUL, - 0xadc26547UL, 0x6e91486cUL, 0x2fa05375UL, 0xe836123aUL, 0xa9070923UL, - 0x6a542408UL, 0x2b653f11UL, 0xe479a796UL, 0xa548bc8fUL, 0x661b91a4UL, - 0x272a8abdUL, 0xe0bccbf2UL, 0xa18dd0ebUL, 0x62defdc0UL, 0x23efe6d9UL, - 0xbde1bc14UL, 0xfcd0a70dUL, 0x3f838a26UL, 0x7eb2913fUL, 0xb924d070UL, - 0xf815cb69UL, 0x3b46e642UL, 0x7a77fd5bUL, 0xb56b65dcUL, 0xf45a7ec5UL, - 0x370953eeUL, 0x763848f7UL, 0xb1ae09b8UL, 0xf09f12a1UL, 0x33cc3f8aUL, - 0x72fd2493UL - }, - { - 0x00000000UL, 0x376ac201UL, 0x6ed48403UL, 0x59be4602UL, 0xdca80907UL, - 0xebc2cb06UL, 0xb27c8d04UL, 0x85164f05UL, 0xb851130eUL, 0x8f3bd10fUL, - 0xd685970dUL, 0xe1ef550cUL, 0x64f91a09UL, 0x5393d808UL, 0x0a2d9e0aUL, - 0x3d475c0bUL, 0x70a3261cUL, 0x47c9e41dUL, 0x1e77a21fUL, 0x291d601eUL, - 0xac0b2f1bUL, 0x9b61ed1aUL, 0xc2dfab18UL, 0xf5b56919UL, 0xc8f23512UL, - 0xff98f713UL, 0xa626b111UL, 0x914c7310UL, 0x145a3c15UL, 0x2330fe14UL, - 0x7a8eb816UL, 0x4de47a17UL, 0xe0464d38UL, 0xd72c8f39UL, 0x8e92c93bUL, - 0xb9f80b3aUL, 0x3cee443fUL, 0x0b84863eUL, 0x523ac03cUL, 0x6550023dUL, - 0x58175e36UL, 0x6f7d9c37UL, 0x36c3da35UL, 0x01a91834UL, 0x84bf5731UL, - 0xb3d59530UL, 0xea6bd332UL, 0xdd011133UL, 0x90e56b24UL, 0xa78fa925UL, - 0xfe31ef27UL, 0xc95b2d26UL, 0x4c4d6223UL, 0x7b27a022UL, 0x2299e620UL, - 0x15f32421UL, 0x28b4782aUL, 0x1fdeba2bUL, 0x4660fc29UL, 0x710a3e28UL, - 0xf41c712dUL, 0xc376b32cUL, 0x9ac8f52eUL, 0xada2372fUL, 0xc08d9a70UL, - 0xf7e75871UL, 0xae591e73UL, 0x9933dc72UL, 0x1c259377UL, 0x2b4f5176UL, - 0x72f11774UL, 0x459bd575UL, 0x78dc897eUL, 0x4fb64b7fUL, 0x16080d7dUL, - 0x2162cf7cUL, 0xa4748079UL, 0x931e4278UL, 0xcaa0047aUL, 0xfdcac67bUL, - 0xb02ebc6cUL, 0x87447e6dUL, 0xdefa386fUL, 0xe990fa6eUL, 0x6c86b56bUL, - 0x5bec776aUL, 0x02523168UL, 0x3538f369UL, 0x087faf62UL, 0x3f156d63UL, - 0x66ab2b61UL, 0x51c1e960UL, 0xd4d7a665UL, 0xe3bd6464UL, 0xba032266UL, - 0x8d69e067UL, 0x20cbd748UL, 0x17a11549UL, 0x4e1f534bUL, 0x7975914aUL, - 0xfc63de4fUL, 0xcb091c4eUL, 0x92b75a4cUL, 0xa5dd984dUL, 0x989ac446UL, - 0xaff00647UL, 0xf64e4045UL, 0xc1248244UL, 0x4432cd41UL, 0x73580f40UL, - 0x2ae64942UL, 0x1d8c8b43UL, 0x5068f154UL, 0x67023355UL, 0x3ebc7557UL, - 0x09d6b756UL, 0x8cc0f853UL, 0xbbaa3a52UL, 0xe2147c50UL, 0xd57ebe51UL, - 0xe839e25aUL, 0xdf53205bUL, 0x86ed6659UL, 0xb187a458UL, 0x3491eb5dUL, - 0x03fb295cUL, 0x5a456f5eUL, 0x6d2fad5fUL, 0x801b35e1UL, 0xb771f7e0UL, - 0xeecfb1e2UL, 0xd9a573e3UL, 0x5cb33ce6UL, 0x6bd9fee7UL, 0x3267b8e5UL, - 0x050d7ae4UL, 0x384a26efUL, 0x0f20e4eeUL, 0x569ea2ecUL, 0x61f460edUL, - 0xe4e22fe8UL, 0xd388ede9UL, 0x8a36abebUL, 0xbd5c69eaUL, 0xf0b813fdUL, - 0xc7d2d1fcUL, 0x9e6c97feUL, 0xa90655ffUL, 0x2c101afaUL, 0x1b7ad8fbUL, - 0x42c49ef9UL, 0x75ae5cf8UL, 0x48e900f3UL, 0x7f83c2f2UL, 0x263d84f0UL, - 0x115746f1UL, 0x944109f4UL, 0xa32bcbf5UL, 0xfa958df7UL, 0xcdff4ff6UL, - 0x605d78d9UL, 0x5737bad8UL, 0x0e89fcdaUL, 0x39e33edbUL, 0xbcf571deUL, - 0x8b9fb3dfUL, 0xd221f5ddUL, 0xe54b37dcUL, 0xd80c6bd7UL, 0xef66a9d6UL, - 0xb6d8efd4UL, 0x81b22dd5UL, 0x04a462d0UL, 0x33cea0d1UL, 0x6a70e6d3UL, - 0x5d1a24d2UL, 0x10fe5ec5UL, 0x27949cc4UL, 0x7e2adac6UL, 0x494018c7UL, - 0xcc5657c2UL, 0xfb3c95c3UL, 0xa282d3c1UL, 0x95e811c0UL, 0xa8af4dcbUL, - 0x9fc58fcaUL, 0xc67bc9c8UL, 0xf1110bc9UL, 0x740744ccUL, 0x436d86cdUL, - 0x1ad3c0cfUL, 0x2db902ceUL, 0x4096af91UL, 0x77fc6d90UL, 0x2e422b92UL, - 0x1928e993UL, 0x9c3ea696UL, 0xab546497UL, 0xf2ea2295UL, 0xc580e094UL, - 0xf8c7bc9fUL, 0xcfad7e9eUL, 0x9613389cUL, 0xa179fa9dUL, 0x246fb598UL, - 0x13057799UL, 0x4abb319bUL, 0x7dd1f39aUL, 0x3035898dUL, 0x075f4b8cUL, - 0x5ee10d8eUL, 0x698bcf8fUL, 0xec9d808aUL, 0xdbf7428bUL, 0x82490489UL, - 0xb523c688UL, 0x88649a83UL, 0xbf0e5882UL, 0xe6b01e80UL, 0xd1dadc81UL, - 0x54cc9384UL, 0x63a65185UL, 0x3a181787UL, 0x0d72d586UL, 0xa0d0e2a9UL, - 0x97ba20a8UL, 0xce0466aaUL, 0xf96ea4abUL, 0x7c78ebaeUL, 0x4b1229afUL, - 0x12ac6fadUL, 0x25c6adacUL, 0x1881f1a7UL, 0x2feb33a6UL, 0x765575a4UL, - 0x413fb7a5UL, 0xc429f8a0UL, 0xf3433aa1UL, 0xaafd7ca3UL, 0x9d97bea2UL, - 0xd073c4b5UL, 0xe71906b4UL, 0xbea740b6UL, 0x89cd82b7UL, 0x0cdbcdb2UL, - 0x3bb10fb3UL, 0x620f49b1UL, 0x55658bb0UL, 0x6822d7bbUL, 0x5f4815baUL, - 0x06f653b8UL, 0x319c91b9UL, 0xb48adebcUL, 0x83e01cbdUL, 0xda5e5abfUL, - 0xed3498beUL - }, - { - 0x00000000UL, 0x6567bcb8UL, 0x8bc809aaUL, 0xeeafb512UL, 0x5797628fUL, - 0x32f0de37UL, 0xdc5f6b25UL, 0xb938d79dUL, 0xef28b4c5UL, 0x8a4f087dUL, - 0x64e0bd6fUL, 0x018701d7UL, 0xb8bfd64aUL, 0xddd86af2UL, 0x3377dfe0UL, - 0x56106358UL, 0x9f571950UL, 0xfa30a5e8UL, 0x149f10faUL, 0x71f8ac42UL, - 0xc8c07bdfUL, 0xada7c767UL, 0x43087275UL, 0x266fcecdUL, 0x707fad95UL, - 0x1518112dUL, 0xfbb7a43fUL, 0x9ed01887UL, 0x27e8cf1aUL, 0x428f73a2UL, - 0xac20c6b0UL, 0xc9477a08UL, 0x3eaf32a0UL, 0x5bc88e18UL, 0xb5673b0aUL, - 0xd00087b2UL, 0x6938502fUL, 0x0c5fec97UL, 0xe2f05985UL, 0x8797e53dUL, - 0xd1878665UL, 0xb4e03addUL, 0x5a4f8fcfUL, 0x3f283377UL, 0x8610e4eaUL, - 0xe3775852UL, 0x0dd8ed40UL, 0x68bf51f8UL, 0xa1f82bf0UL, 0xc49f9748UL, - 0x2a30225aUL, 0x4f579ee2UL, 0xf66f497fUL, 0x9308f5c7UL, 0x7da740d5UL, - 0x18c0fc6dUL, 0x4ed09f35UL, 0x2bb7238dUL, 0xc518969fUL, 0xa07f2a27UL, - 0x1947fdbaUL, 0x7c204102UL, 0x928ff410UL, 0xf7e848a8UL, 0x3d58149bUL, - 0x583fa823UL, 0xb6901d31UL, 0xd3f7a189UL, 0x6acf7614UL, 0x0fa8caacUL, - 0xe1077fbeUL, 0x8460c306UL, 0xd270a05eUL, 0xb7171ce6UL, 0x59b8a9f4UL, - 0x3cdf154cUL, 0x85e7c2d1UL, 0xe0807e69UL, 0x0e2fcb7bUL, 0x6b4877c3UL, - 0xa20f0dcbUL, 0xc768b173UL, 0x29c70461UL, 0x4ca0b8d9UL, 0xf5986f44UL, - 0x90ffd3fcUL, 0x7e5066eeUL, 0x1b37da56UL, 0x4d27b90eUL, 0x284005b6UL, - 0xc6efb0a4UL, 0xa3880c1cUL, 0x1ab0db81UL, 0x7fd76739UL, 0x9178d22bUL, - 0xf41f6e93UL, 0x03f7263bUL, 0x66909a83UL, 0x883f2f91UL, 0xed589329UL, - 0x546044b4UL, 0x3107f80cUL, 0xdfa84d1eUL, 0xbacff1a6UL, 0xecdf92feUL, - 0x89b82e46UL, 0x67179b54UL, 0x027027ecUL, 0xbb48f071UL, 0xde2f4cc9UL, - 0x3080f9dbUL, 0x55e74563UL, 0x9ca03f6bUL, 0xf9c783d3UL, 0x176836c1UL, - 0x720f8a79UL, 0xcb375de4UL, 0xae50e15cUL, 0x40ff544eUL, 0x2598e8f6UL, - 0x73888baeUL, 0x16ef3716UL, 0xf8408204UL, 0x9d273ebcUL, 0x241fe921UL, - 0x41785599UL, 0xafd7e08bUL, 0xcab05c33UL, 0x3bb659edUL, 0x5ed1e555UL, - 0xb07e5047UL, 0xd519ecffUL, 0x6c213b62UL, 0x094687daUL, 0xe7e932c8UL, - 0x828e8e70UL, 0xd49eed28UL, 0xb1f95190UL, 0x5f56e482UL, 0x3a31583aUL, - 0x83098fa7UL, 0xe66e331fUL, 0x08c1860dUL, 0x6da63ab5UL, 0xa4e140bdUL, - 0xc186fc05UL, 0x2f294917UL, 0x4a4ef5afUL, 0xf3762232UL, 0x96119e8aUL, - 0x78be2b98UL, 0x1dd99720UL, 0x4bc9f478UL, 0x2eae48c0UL, 0xc001fdd2UL, - 0xa566416aUL, 0x1c5e96f7UL, 0x79392a4fUL, 0x97969f5dUL, 0xf2f123e5UL, - 0x05196b4dUL, 0x607ed7f5UL, 0x8ed162e7UL, 0xebb6de5fUL, 0x528e09c2UL, - 0x37e9b57aUL, 0xd9460068UL, 0xbc21bcd0UL, 0xea31df88UL, 0x8f566330UL, - 0x61f9d622UL, 0x049e6a9aUL, 0xbda6bd07UL, 0xd8c101bfUL, 0x366eb4adUL, - 0x53090815UL, 0x9a4e721dUL, 0xff29cea5UL, 0x11867bb7UL, 0x74e1c70fUL, - 0xcdd91092UL, 0xa8beac2aUL, 0x46111938UL, 0x2376a580UL, 0x7566c6d8UL, - 0x10017a60UL, 0xfeaecf72UL, 0x9bc973caUL, 0x22f1a457UL, 0x479618efUL, - 0xa939adfdUL, 0xcc5e1145UL, 0x06ee4d76UL, 0x6389f1ceUL, 0x8d2644dcUL, - 0xe841f864UL, 0x51792ff9UL, 0x341e9341UL, 0xdab12653UL, 0xbfd69aebUL, - 0xe9c6f9b3UL, 0x8ca1450bUL, 0x620ef019UL, 0x07694ca1UL, 0xbe519b3cUL, - 0xdb362784UL, 0x35999296UL, 0x50fe2e2eUL, 0x99b95426UL, 0xfcdee89eUL, - 0x12715d8cUL, 0x7716e134UL, 0xce2e36a9UL, 0xab498a11UL, 0x45e63f03UL, - 0x208183bbUL, 0x7691e0e3UL, 0x13f65c5bUL, 0xfd59e949UL, 0x983e55f1UL, - 0x2106826cUL, 0x44613ed4UL, 0xaace8bc6UL, 0xcfa9377eUL, 0x38417fd6UL, - 0x5d26c36eUL, 0xb389767cUL, 0xd6eecac4UL, 0x6fd61d59UL, 0x0ab1a1e1UL, - 0xe41e14f3UL, 0x8179a84bUL, 0xd769cb13UL, 0xb20e77abUL, 0x5ca1c2b9UL, - 0x39c67e01UL, 0x80fea99cUL, 0xe5991524UL, 0x0b36a036UL, 0x6e511c8eUL, - 0xa7166686UL, 0xc271da3eUL, 0x2cde6f2cUL, 0x49b9d394UL, 0xf0810409UL, - 0x95e6b8b1UL, 0x7b490da3UL, 0x1e2eb11bUL, 0x483ed243UL, 0x2d596efbUL, - 0xc3f6dbe9UL, 0xa6916751UL, 0x1fa9b0ccUL, 0x7ace0c74UL, 0x9461b966UL, - 0xf10605deUL +local const z_crc_t FAR crc_table[] = { + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d}; + +#ifdef W + +#if W == 8 + +local const z_word_t FAR crc_big_table[] = { + 0x0000000000000000, 0x9630077700000000, 0x2c610eee00000000, + 0xba51099900000000, 0x19c46d0700000000, 0x8ff46a7000000000, + 0x35a563e900000000, 0xa395649e00000000, 0x3288db0e00000000, + 0xa4b8dc7900000000, 0x1ee9d5e000000000, 0x88d9d29700000000, + 0x2b4cb60900000000, 0xbd7cb17e00000000, 0x072db8e700000000, + 0x911dbf9000000000, 0x6410b71d00000000, 0xf220b06a00000000, + 0x4871b9f300000000, 0xde41be8400000000, 0x7dd4da1a00000000, + 0xebe4dd6d00000000, 0x51b5d4f400000000, 0xc785d38300000000, + 0x56986c1300000000, 0xc0a86b6400000000, 0x7af962fd00000000, + 0xecc9658a00000000, 0x4f5c011400000000, 0xd96c066300000000, + 0x633d0ffa00000000, 0xf50d088d00000000, 0xc8206e3b00000000, + 0x5e10694c00000000, 0xe44160d500000000, 0x727167a200000000, + 0xd1e4033c00000000, 0x47d4044b00000000, 0xfd850dd200000000, + 0x6bb50aa500000000, 0xfaa8b53500000000, 0x6c98b24200000000, + 0xd6c9bbdb00000000, 0x40f9bcac00000000, 0xe36cd83200000000, + 0x755cdf4500000000, 0xcf0dd6dc00000000, 0x593dd1ab00000000, + 0xac30d92600000000, 0x3a00de5100000000, 0x8051d7c800000000, + 0x1661d0bf00000000, 0xb5f4b42100000000, 0x23c4b35600000000, + 0x9995bacf00000000, 0x0fa5bdb800000000, 0x9eb8022800000000, + 0x0888055f00000000, 0xb2d90cc600000000, 0x24e90bb100000000, + 0x877c6f2f00000000, 0x114c685800000000, 0xab1d61c100000000, + 0x3d2d66b600000000, 0x9041dc7600000000, 0x0671db0100000000, + 0xbc20d29800000000, 0x2a10d5ef00000000, 0x8985b17100000000, + 0x1fb5b60600000000, 0xa5e4bf9f00000000, 0x33d4b8e800000000, + 0xa2c9077800000000, 0x34f9000f00000000, 0x8ea8099600000000, + 0x18980ee100000000, 0xbb0d6a7f00000000, 0x2d3d6d0800000000, + 0x976c649100000000, 0x015c63e600000000, 0xf4516b6b00000000, + 0x62616c1c00000000, 0xd830658500000000, 0x4e0062f200000000, + 0xed95066c00000000, 0x7ba5011b00000000, 0xc1f4088200000000, + 0x57c40ff500000000, 0xc6d9b06500000000, 0x50e9b71200000000, + 0xeab8be8b00000000, 0x7c88b9fc00000000, 0xdf1ddd6200000000, + 0x492dda1500000000, 0xf37cd38c00000000, 0x654cd4fb00000000, + 0x5861b24d00000000, 0xce51b53a00000000, 0x7400bca300000000, + 0xe230bbd400000000, 0x41a5df4a00000000, 0xd795d83d00000000, + 0x6dc4d1a400000000, 0xfbf4d6d300000000, 0x6ae9694300000000, + 0xfcd96e3400000000, 0x468867ad00000000, 0xd0b860da00000000, + 0x732d044400000000, 0xe51d033300000000, 0x5f4c0aaa00000000, + 0xc97c0ddd00000000, 0x3c71055000000000, 0xaa41022700000000, + 0x10100bbe00000000, 0x86200cc900000000, 0x25b5685700000000, + 0xb3856f2000000000, 0x09d466b900000000, 0x9fe461ce00000000, + 0x0ef9de5e00000000, 0x98c9d92900000000, 0x2298d0b000000000, + 0xb4a8d7c700000000, 0x173db35900000000, 0x810db42e00000000, + 0x3b5cbdb700000000, 0xad6cbac000000000, 0x2083b8ed00000000, + 0xb6b3bf9a00000000, 0x0ce2b60300000000, 0x9ad2b17400000000, + 0x3947d5ea00000000, 0xaf77d29d00000000, 0x1526db0400000000, + 0x8316dc7300000000, 0x120b63e300000000, 0x843b649400000000, + 0x3e6a6d0d00000000, 0xa85a6a7a00000000, 0x0bcf0ee400000000, + 0x9dff099300000000, 0x27ae000a00000000, 0xb19e077d00000000, + 0x44930ff000000000, 0xd2a3088700000000, 0x68f2011e00000000, + 0xfec2066900000000, 0x5d5762f700000000, 0xcb67658000000000, + 0x71366c1900000000, 0xe7066b6e00000000, 0x761bd4fe00000000, + 0xe02bd38900000000, 0x5a7ada1000000000, 0xcc4add6700000000, + 0x6fdfb9f900000000, 0xf9efbe8e00000000, 0x43beb71700000000, + 0xd58eb06000000000, 0xe8a3d6d600000000, 0x7e93d1a100000000, + 0xc4c2d83800000000, 0x52f2df4f00000000, 0xf167bbd100000000, + 0x6757bca600000000, 0xdd06b53f00000000, 0x4b36b24800000000, + 0xda2b0dd800000000, 0x4c1b0aaf00000000, 0xf64a033600000000, + 0x607a044100000000, 0xc3ef60df00000000, 0x55df67a800000000, + 0xef8e6e3100000000, 0x79be694600000000, 0x8cb361cb00000000, + 0x1a8366bc00000000, 0xa0d26f2500000000, 0x36e2685200000000, + 0x95770ccc00000000, 0x03470bbb00000000, 0xb916022200000000, + 0x2f26055500000000, 0xbe3bbac500000000, 0x280bbdb200000000, + 0x925ab42b00000000, 0x046ab35c00000000, 0xa7ffd7c200000000, + 0x31cfd0b500000000, 0x8b9ed92c00000000, 0x1daede5b00000000, + 0xb0c2649b00000000, 0x26f263ec00000000, 0x9ca36a7500000000, + 0x0a936d0200000000, 0xa906099c00000000, 0x3f360eeb00000000, + 0x8567077200000000, 0x1357000500000000, 0x824abf9500000000, + 0x147ab8e200000000, 0xae2bb17b00000000, 0x381bb60c00000000, + 0x9b8ed29200000000, 0x0dbed5e500000000, 0xb7efdc7c00000000, + 0x21dfdb0b00000000, 0xd4d2d38600000000, 0x42e2d4f100000000, + 0xf8b3dd6800000000, 0x6e83da1f00000000, 0xcd16be8100000000, + 0x5b26b9f600000000, 0xe177b06f00000000, 0x7747b71800000000, + 0xe65a088800000000, 0x706a0fff00000000, 0xca3b066600000000, + 0x5c0b011100000000, 0xff9e658f00000000, 0x69ae62f800000000, + 0xd3ff6b6100000000, 0x45cf6c1600000000, 0x78e20aa000000000, + 0xeed20dd700000000, 0x5483044e00000000, 0xc2b3033900000000, + 0x612667a700000000, 0xf71660d000000000, 0x4d47694900000000, + 0xdb776e3e00000000, 0x4a6ad1ae00000000, 0xdc5ad6d900000000, + 0x660bdf4000000000, 0xf03bd83700000000, 0x53aebca900000000, + 0xc59ebbde00000000, 0x7fcfb24700000000, 0xe9ffb53000000000, + 0x1cf2bdbd00000000, 0x8ac2baca00000000, 0x3093b35300000000, + 0xa6a3b42400000000, 0x0536d0ba00000000, 0x9306d7cd00000000, + 0x2957de5400000000, 0xbf67d92300000000, 0x2e7a66b300000000, + 0xb84a61c400000000, 0x021b685d00000000, 0x942b6f2a00000000, + 0x37be0bb400000000, 0xa18e0cc300000000, 0x1bdf055a00000000, + 0x8def022d00000000}; + +#else /* W == 4 */ + +local const z_word_t FAR crc_big_table[] = { + 0x00000000, 0x96300777, 0x2c610eee, 0xba510999, 0x19c46d07, + 0x8ff46a70, 0x35a563e9, 0xa395649e, 0x3288db0e, 0xa4b8dc79, + 0x1ee9d5e0, 0x88d9d297, 0x2b4cb609, 0xbd7cb17e, 0x072db8e7, + 0x911dbf90, 0x6410b71d, 0xf220b06a, 0x4871b9f3, 0xde41be84, + 0x7dd4da1a, 0xebe4dd6d, 0x51b5d4f4, 0xc785d383, 0x56986c13, + 0xc0a86b64, 0x7af962fd, 0xecc9658a, 0x4f5c0114, 0xd96c0663, + 0x633d0ffa, 0xf50d088d, 0xc8206e3b, 0x5e10694c, 0xe44160d5, + 0x727167a2, 0xd1e4033c, 0x47d4044b, 0xfd850dd2, 0x6bb50aa5, + 0xfaa8b535, 0x6c98b242, 0xd6c9bbdb, 0x40f9bcac, 0xe36cd832, + 0x755cdf45, 0xcf0dd6dc, 0x593dd1ab, 0xac30d926, 0x3a00de51, + 0x8051d7c8, 0x1661d0bf, 0xb5f4b421, 0x23c4b356, 0x9995bacf, + 0x0fa5bdb8, 0x9eb80228, 0x0888055f, 0xb2d90cc6, 0x24e90bb1, + 0x877c6f2f, 0x114c6858, 0xab1d61c1, 0x3d2d66b6, 0x9041dc76, + 0x0671db01, 0xbc20d298, 0x2a10d5ef, 0x8985b171, 0x1fb5b606, + 0xa5e4bf9f, 0x33d4b8e8, 0xa2c90778, 0x34f9000f, 0x8ea80996, + 0x18980ee1, 0xbb0d6a7f, 0x2d3d6d08, 0x976c6491, 0x015c63e6, + 0xf4516b6b, 0x62616c1c, 0xd8306585, 0x4e0062f2, 0xed95066c, + 0x7ba5011b, 0xc1f40882, 0x57c40ff5, 0xc6d9b065, 0x50e9b712, + 0xeab8be8b, 0x7c88b9fc, 0xdf1ddd62, 0x492dda15, 0xf37cd38c, + 0x654cd4fb, 0x5861b24d, 0xce51b53a, 0x7400bca3, 0xe230bbd4, + 0x41a5df4a, 0xd795d83d, 0x6dc4d1a4, 0xfbf4d6d3, 0x6ae96943, + 0xfcd96e34, 0x468867ad, 0xd0b860da, 0x732d0444, 0xe51d0333, + 0x5f4c0aaa, 0xc97c0ddd, 0x3c710550, 0xaa410227, 0x10100bbe, + 0x86200cc9, 0x25b56857, 0xb3856f20, 0x09d466b9, 0x9fe461ce, + 0x0ef9de5e, 0x98c9d929, 0x2298d0b0, 0xb4a8d7c7, 0x173db359, + 0x810db42e, 0x3b5cbdb7, 0xad6cbac0, 0x2083b8ed, 0xb6b3bf9a, + 0x0ce2b603, 0x9ad2b174, 0x3947d5ea, 0xaf77d29d, 0x1526db04, + 0x8316dc73, 0x120b63e3, 0x843b6494, 0x3e6a6d0d, 0xa85a6a7a, + 0x0bcf0ee4, 0x9dff0993, 0x27ae000a, 0xb19e077d, 0x44930ff0, + 0xd2a30887, 0x68f2011e, 0xfec20669, 0x5d5762f7, 0xcb676580, + 0x71366c19, 0xe7066b6e, 0x761bd4fe, 0xe02bd389, 0x5a7ada10, + 0xcc4add67, 0x6fdfb9f9, 0xf9efbe8e, 0x43beb717, 0xd58eb060, + 0xe8a3d6d6, 0x7e93d1a1, 0xc4c2d838, 0x52f2df4f, 0xf167bbd1, + 0x6757bca6, 0xdd06b53f, 0x4b36b248, 0xda2b0dd8, 0x4c1b0aaf, + 0xf64a0336, 0x607a0441, 0xc3ef60df, 0x55df67a8, 0xef8e6e31, + 0x79be6946, 0x8cb361cb, 0x1a8366bc, 0xa0d26f25, 0x36e26852, + 0x95770ccc, 0x03470bbb, 0xb9160222, 0x2f260555, 0xbe3bbac5, + 0x280bbdb2, 0x925ab42b, 0x046ab35c, 0xa7ffd7c2, 0x31cfd0b5, + 0x8b9ed92c, 0x1daede5b, 0xb0c2649b, 0x26f263ec, 0x9ca36a75, + 0x0a936d02, 0xa906099c, 0x3f360eeb, 0x85670772, 0x13570005, + 0x824abf95, 0x147ab8e2, 0xae2bb17b, 0x381bb60c, 0x9b8ed292, + 0x0dbed5e5, 0xb7efdc7c, 0x21dfdb0b, 0xd4d2d386, 0x42e2d4f1, + 0xf8b3dd68, 0x6e83da1f, 0xcd16be81, 0x5b26b9f6, 0xe177b06f, + 0x7747b718, 0xe65a0888, 0x706a0fff, 0xca3b0666, 0x5c0b0111, + 0xff9e658f, 0x69ae62f8, 0xd3ff6b61, 0x45cf6c16, 0x78e20aa0, + 0xeed20dd7, 0x5483044e, 0xc2b30339, 0x612667a7, 0xf71660d0, + 0x4d476949, 0xdb776e3e, 0x4a6ad1ae, 0xdc5ad6d9, 0x660bdf40, + 0xf03bd837, 0x53aebca9, 0xc59ebbde, 0x7fcfb247, 0xe9ffb530, + 0x1cf2bdbd, 0x8ac2baca, 0x3093b353, 0xa6a3b424, 0x0536d0ba, + 0x9306d7cd, 0x2957de54, 0xbf67d923, 0x2e7a66b3, 0xb84a61c4, + 0x021b685d, 0x942b6f2a, 0x37be0bb4, 0xa18e0cc3, 0x1bdf055a, + 0x8def022d}; + +#endif + +#if N == 1 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xccaa009e, 0x4225077d, 0x8e8f07e3, 0x844a0efa, + 0x48e00e64, 0xc66f0987, 0x0ac50919, 0xd3e51bb5, 0x1f4f1b2b, + 0x91c01cc8, 0x5d6a1c56, 0x57af154f, 0x9b0515d1, 0x158a1232, + 0xd92012ac, 0x7cbb312b, 0xb01131b5, 0x3e9e3656, 0xf23436c8, + 0xf8f13fd1, 0x345b3f4f, 0xbad438ac, 0x767e3832, 0xaf5e2a9e, + 0x63f42a00, 0xed7b2de3, 0x21d12d7d, 0x2b142464, 0xe7be24fa, + 0x69312319, 0xa59b2387, 0xf9766256, 0x35dc62c8, 0xbb53652b, + 0x77f965b5, 0x7d3c6cac, 0xb1966c32, 0x3f196bd1, 0xf3b36b4f, + 0x2a9379e3, 0xe639797d, 0x68b67e9e, 0xa41c7e00, 0xaed97719, + 0x62737787, 0xecfc7064, 0x205670fa, 0x85cd537d, 0x496753e3, + 0xc7e85400, 0x0b42549e, 0x01875d87, 0xcd2d5d19, 0x43a25afa, + 0x8f085a64, 0x562848c8, 0x9a824856, 0x140d4fb5, 0xd8a74f2b, + 0xd2624632, 0x1ec846ac, 0x9047414f, 0x5ced41d1, 0x299dc2ed, + 0xe537c273, 0x6bb8c590, 0xa712c50e, 0xadd7cc17, 0x617dcc89, + 0xeff2cb6a, 0x2358cbf4, 0xfa78d958, 0x36d2d9c6, 0xb85dde25, + 0x74f7debb, 0x7e32d7a2, 0xb298d73c, 0x3c17d0df, 0xf0bdd041, + 0x5526f3c6, 0x998cf358, 0x1703f4bb, 0xdba9f425, 0xd16cfd3c, + 0x1dc6fda2, 0x9349fa41, 0x5fe3fadf, 0x86c3e873, 0x4a69e8ed, + 0xc4e6ef0e, 0x084cef90, 0x0289e689, 0xce23e617, 0x40ace1f4, + 0x8c06e16a, 0xd0eba0bb, 0x1c41a025, 0x92cea7c6, 0x5e64a758, + 0x54a1ae41, 0x980baedf, 0x1684a93c, 0xda2ea9a2, 0x030ebb0e, + 0xcfa4bb90, 0x412bbc73, 0x8d81bced, 0x8744b5f4, 0x4beeb56a, + 0xc561b289, 0x09cbb217, 0xac509190, 0x60fa910e, 0xee7596ed, + 0x22df9673, 0x281a9f6a, 0xe4b09ff4, 0x6a3f9817, 0xa6959889, + 0x7fb58a25, 0xb31f8abb, 0x3d908d58, 0xf13a8dc6, 0xfbff84df, + 0x37558441, 0xb9da83a2, 0x7570833c, 0x533b85da, 0x9f918544, + 0x111e82a7, 0xddb48239, 0xd7718b20, 0x1bdb8bbe, 0x95548c5d, + 0x59fe8cc3, 0x80de9e6f, 0x4c749ef1, 0xc2fb9912, 0x0e51998c, + 0x04949095, 0xc83e900b, 0x46b197e8, 0x8a1b9776, 0x2f80b4f1, + 0xe32ab46f, 0x6da5b38c, 0xa10fb312, 0xabcaba0b, 0x6760ba95, + 0xe9efbd76, 0x2545bde8, 0xfc65af44, 0x30cfafda, 0xbe40a839, + 0x72eaa8a7, 0x782fa1be, 0xb485a120, 0x3a0aa6c3, 0xf6a0a65d, + 0xaa4de78c, 0x66e7e712, 0xe868e0f1, 0x24c2e06f, 0x2e07e976, + 0xe2ade9e8, 0x6c22ee0b, 0xa088ee95, 0x79a8fc39, 0xb502fca7, + 0x3b8dfb44, 0xf727fbda, 0xfde2f2c3, 0x3148f25d, 0xbfc7f5be, + 0x736df520, 0xd6f6d6a7, 0x1a5cd639, 0x94d3d1da, 0x5879d144, + 0x52bcd85d, 0x9e16d8c3, 0x1099df20, 0xdc33dfbe, 0x0513cd12, + 0xc9b9cd8c, 0x4736ca6f, 0x8b9ccaf1, 0x8159c3e8, 0x4df3c376, + 0xc37cc495, 0x0fd6c40b, 0x7aa64737, 0xb60c47a9, 0x3883404a, + 0xf42940d4, 0xfeec49cd, 0x32464953, 0xbcc94eb0, 0x70634e2e, + 0xa9435c82, 0x65e95c1c, 0xeb665bff, 0x27cc5b61, 0x2d095278, + 0xe1a352e6, 0x6f2c5505, 0xa386559b, 0x061d761c, 0xcab77682, + 0x44387161, 0x889271ff, 0x825778e6, 0x4efd7878, 0xc0727f9b, + 0x0cd87f05, 0xd5f86da9, 0x19526d37, 0x97dd6ad4, 0x5b776a4a, + 0x51b26353, 0x9d1863cd, 0x1397642e, 0xdf3d64b0, 0x83d02561, + 0x4f7a25ff, 0xc1f5221c, 0x0d5f2282, 0x079a2b9b, 0xcb302b05, + 0x45bf2ce6, 0x89152c78, 0x50353ed4, 0x9c9f3e4a, 0x121039a9, + 0xdeba3937, 0xd47f302e, 0x18d530b0, 0x965a3753, 0x5af037cd, + 0xff6b144a, 0x33c114d4, 0xbd4e1337, 0x71e413a9, 0x7b211ab0, + 0xb78b1a2e, 0x39041dcd, 0xf5ae1d53, 0x2c8e0fff, 0xe0240f61, + 0x6eab0882, 0xa201081c, 0xa8c40105, 0x646e019b, 0xeae10678, + 0x264b06e6}, + {0x00000000, 0xa6770bb4, 0x979f1129, 0x31e81a9d, 0xf44f2413, + 0x52382fa7, 0x63d0353a, 0xc5a73e8e, 0x33ef4e67, 0x959845d3, + 0xa4705f4e, 0x020754fa, 0xc7a06a74, 0x61d761c0, 0x503f7b5d, + 0xf64870e9, 0x67de9cce, 0xc1a9977a, 0xf0418de7, 0x56368653, + 0x9391b8dd, 0x35e6b369, 0x040ea9f4, 0xa279a240, 0x5431d2a9, + 0xf246d91d, 0xc3aec380, 0x65d9c834, 0xa07ef6ba, 0x0609fd0e, + 0x37e1e793, 0x9196ec27, 0xcfbd399c, 0x69ca3228, 0x582228b5, + 0xfe552301, 0x3bf21d8f, 0x9d85163b, 0xac6d0ca6, 0x0a1a0712, + 0xfc5277fb, 0x5a257c4f, 0x6bcd66d2, 0xcdba6d66, 0x081d53e8, + 0xae6a585c, 0x9f8242c1, 0x39f54975, 0xa863a552, 0x0e14aee6, + 0x3ffcb47b, 0x998bbfcf, 0x5c2c8141, 0xfa5b8af5, 0xcbb39068, + 0x6dc49bdc, 0x9b8ceb35, 0x3dfbe081, 0x0c13fa1c, 0xaa64f1a8, + 0x6fc3cf26, 0xc9b4c492, 0xf85cde0f, 0x5e2bd5bb, 0x440b7579, + 0xe27c7ecd, 0xd3946450, 0x75e36fe4, 0xb044516a, 0x16335ade, + 0x27db4043, 0x81ac4bf7, 0x77e43b1e, 0xd19330aa, 0xe07b2a37, + 0x460c2183, 0x83ab1f0d, 0x25dc14b9, 0x14340e24, 0xb2430590, + 0x23d5e9b7, 0x85a2e203, 0xb44af89e, 0x123df32a, 0xd79acda4, + 0x71edc610, 0x4005dc8d, 0xe672d739, 0x103aa7d0, 0xb64dac64, + 0x87a5b6f9, 0x21d2bd4d, 0xe47583c3, 0x42028877, 0x73ea92ea, + 0xd59d995e, 0x8bb64ce5, 0x2dc14751, 0x1c295dcc, 0xba5e5678, + 0x7ff968f6, 0xd98e6342, 0xe86679df, 0x4e11726b, 0xb8590282, + 0x1e2e0936, 0x2fc613ab, 0x89b1181f, 0x4c162691, 0xea612d25, + 0xdb8937b8, 0x7dfe3c0c, 0xec68d02b, 0x4a1fdb9f, 0x7bf7c102, + 0xdd80cab6, 0x1827f438, 0xbe50ff8c, 0x8fb8e511, 0x29cfeea5, + 0xdf879e4c, 0x79f095f8, 0x48188f65, 0xee6f84d1, 0x2bc8ba5f, + 0x8dbfb1eb, 0xbc57ab76, 0x1a20a0c2, 0x8816eaf2, 0x2e61e146, + 0x1f89fbdb, 0xb9fef06f, 0x7c59cee1, 0xda2ec555, 0xebc6dfc8, + 0x4db1d47c, 0xbbf9a495, 0x1d8eaf21, 0x2c66b5bc, 0x8a11be08, + 0x4fb68086, 0xe9c18b32, 0xd82991af, 0x7e5e9a1b, 0xefc8763c, + 0x49bf7d88, 0x78576715, 0xde206ca1, 0x1b87522f, 0xbdf0599b, + 0x8c184306, 0x2a6f48b2, 0xdc27385b, 0x7a5033ef, 0x4bb82972, + 0xedcf22c6, 0x28681c48, 0x8e1f17fc, 0xbff70d61, 0x198006d5, + 0x47abd36e, 0xe1dcd8da, 0xd034c247, 0x7643c9f3, 0xb3e4f77d, + 0x1593fcc9, 0x247be654, 0x820cede0, 0x74449d09, 0xd23396bd, + 0xe3db8c20, 0x45ac8794, 0x800bb91a, 0x267cb2ae, 0x1794a833, + 0xb1e3a387, 0x20754fa0, 0x86024414, 0xb7ea5e89, 0x119d553d, + 0xd43a6bb3, 0x724d6007, 0x43a57a9a, 0xe5d2712e, 0x139a01c7, + 0xb5ed0a73, 0x840510ee, 0x22721b5a, 0xe7d525d4, 0x41a22e60, + 0x704a34fd, 0xd63d3f49, 0xcc1d9f8b, 0x6a6a943f, 0x5b828ea2, + 0xfdf58516, 0x3852bb98, 0x9e25b02c, 0xafcdaab1, 0x09baa105, + 0xfff2d1ec, 0x5985da58, 0x686dc0c5, 0xce1acb71, 0x0bbdf5ff, + 0xadcafe4b, 0x9c22e4d6, 0x3a55ef62, 0xabc30345, 0x0db408f1, + 0x3c5c126c, 0x9a2b19d8, 0x5f8c2756, 0xf9fb2ce2, 0xc813367f, + 0x6e643dcb, 0x982c4d22, 0x3e5b4696, 0x0fb35c0b, 0xa9c457bf, + 0x6c636931, 0xca146285, 0xfbfc7818, 0x5d8b73ac, 0x03a0a617, + 0xa5d7ada3, 0x943fb73e, 0x3248bc8a, 0xf7ef8204, 0x519889b0, + 0x6070932d, 0xc6079899, 0x304fe870, 0x9638e3c4, 0xa7d0f959, + 0x01a7f2ed, 0xc400cc63, 0x6277c7d7, 0x539fdd4a, 0xf5e8d6fe, + 0x647e3ad9, 0xc209316d, 0xf3e12bf0, 0x55962044, 0x90311eca, + 0x3646157e, 0x07ae0fe3, 0xa1d90457, 0x579174be, 0xf1e67f0a, + 0xc00e6597, 0x66796e23, 0xa3de50ad, 0x05a95b19, 0x34414184, + 0x92364a30}, + {0x00000000, 0xcb5cd3a5, 0x4dc8a10b, 0x869472ae, 0x9b914216, + 0x50cd91b3, 0xd659e31d, 0x1d0530b8, 0xec53826d, 0x270f51c8, + 0xa19b2366, 0x6ac7f0c3, 0x77c2c07b, 0xbc9e13de, 0x3a0a6170, + 0xf156b2d5, 0x03d6029b, 0xc88ad13e, 0x4e1ea390, 0x85427035, + 0x9847408d, 0x531b9328, 0xd58fe186, 0x1ed33223, 0xef8580f6, + 0x24d95353, 0xa24d21fd, 0x6911f258, 0x7414c2e0, 0xbf481145, + 0x39dc63eb, 0xf280b04e, 0x07ac0536, 0xccf0d693, 0x4a64a43d, + 0x81387798, 0x9c3d4720, 0x57619485, 0xd1f5e62b, 0x1aa9358e, + 0xebff875b, 0x20a354fe, 0xa6372650, 0x6d6bf5f5, 0x706ec54d, + 0xbb3216e8, 0x3da66446, 0xf6fab7e3, 0x047a07ad, 0xcf26d408, + 0x49b2a6a6, 0x82ee7503, 0x9feb45bb, 0x54b7961e, 0xd223e4b0, + 0x197f3715, 0xe82985c0, 0x23755665, 0xa5e124cb, 0x6ebdf76e, + 0x73b8c7d6, 0xb8e41473, 0x3e7066dd, 0xf52cb578, 0x0f580a6c, + 0xc404d9c9, 0x4290ab67, 0x89cc78c2, 0x94c9487a, 0x5f959bdf, + 0xd901e971, 0x125d3ad4, 0xe30b8801, 0x28575ba4, 0xaec3290a, + 0x659ffaaf, 0x789aca17, 0xb3c619b2, 0x35526b1c, 0xfe0eb8b9, + 0x0c8e08f7, 0xc7d2db52, 0x4146a9fc, 0x8a1a7a59, 0x971f4ae1, + 0x5c439944, 0xdad7ebea, 0x118b384f, 0xe0dd8a9a, 0x2b81593f, + 0xad152b91, 0x6649f834, 0x7b4cc88c, 0xb0101b29, 0x36846987, + 0xfdd8ba22, 0x08f40f5a, 0xc3a8dcff, 0x453cae51, 0x8e607df4, + 0x93654d4c, 0x58399ee9, 0xdeadec47, 0x15f13fe2, 0xe4a78d37, + 0x2ffb5e92, 0xa96f2c3c, 0x6233ff99, 0x7f36cf21, 0xb46a1c84, + 0x32fe6e2a, 0xf9a2bd8f, 0x0b220dc1, 0xc07ede64, 0x46eaacca, + 0x8db67f6f, 0x90b34fd7, 0x5bef9c72, 0xdd7beedc, 0x16273d79, + 0xe7718fac, 0x2c2d5c09, 0xaab92ea7, 0x61e5fd02, 0x7ce0cdba, + 0xb7bc1e1f, 0x31286cb1, 0xfa74bf14, 0x1eb014d8, 0xd5ecc77d, + 0x5378b5d3, 0x98246676, 0x852156ce, 0x4e7d856b, 0xc8e9f7c5, + 0x03b52460, 0xf2e396b5, 0x39bf4510, 0xbf2b37be, 0x7477e41b, + 0x6972d4a3, 0xa22e0706, 0x24ba75a8, 0xefe6a60d, 0x1d661643, + 0xd63ac5e6, 0x50aeb748, 0x9bf264ed, 0x86f75455, 0x4dab87f0, + 0xcb3ff55e, 0x006326fb, 0xf135942e, 0x3a69478b, 0xbcfd3525, + 0x77a1e680, 0x6aa4d638, 0xa1f8059d, 0x276c7733, 0xec30a496, + 0x191c11ee, 0xd240c24b, 0x54d4b0e5, 0x9f886340, 0x828d53f8, + 0x49d1805d, 0xcf45f2f3, 0x04192156, 0xf54f9383, 0x3e134026, + 0xb8873288, 0x73dbe12d, 0x6eded195, 0xa5820230, 0x2316709e, + 0xe84aa33b, 0x1aca1375, 0xd196c0d0, 0x5702b27e, 0x9c5e61db, + 0x815b5163, 0x4a0782c6, 0xcc93f068, 0x07cf23cd, 0xf6999118, + 0x3dc542bd, 0xbb513013, 0x700de3b6, 0x6d08d30e, 0xa65400ab, + 0x20c07205, 0xeb9ca1a0, 0x11e81eb4, 0xdab4cd11, 0x5c20bfbf, + 0x977c6c1a, 0x8a795ca2, 0x41258f07, 0xc7b1fda9, 0x0ced2e0c, + 0xfdbb9cd9, 0x36e74f7c, 0xb0733dd2, 0x7b2fee77, 0x662adecf, + 0xad760d6a, 0x2be27fc4, 0xe0beac61, 0x123e1c2f, 0xd962cf8a, + 0x5ff6bd24, 0x94aa6e81, 0x89af5e39, 0x42f38d9c, 0xc467ff32, + 0x0f3b2c97, 0xfe6d9e42, 0x35314de7, 0xb3a53f49, 0x78f9ecec, + 0x65fcdc54, 0xaea00ff1, 0x28347d5f, 0xe368aefa, 0x16441b82, + 0xdd18c827, 0x5b8cba89, 0x90d0692c, 0x8dd55994, 0x46898a31, + 0xc01df89f, 0x0b412b3a, 0xfa1799ef, 0x314b4a4a, 0xb7df38e4, + 0x7c83eb41, 0x6186dbf9, 0xaada085c, 0x2c4e7af2, 0xe712a957, + 0x15921919, 0xdececabc, 0x585ab812, 0x93066bb7, 0x8e035b0f, + 0x455f88aa, 0xc3cbfa04, 0x089729a1, 0xf9c19b74, 0x329d48d1, + 0xb4093a7f, 0x7f55e9da, 0x6250d962, 0xa90c0ac7, 0x2f987869, + 0xe4c4abcc}, + {0x00000000, 0x3d6029b0, 0x7ac05360, 0x47a07ad0, 0xf580a6c0, + 0xc8e08f70, 0x8f40f5a0, 0xb220dc10, 0x30704bc1, 0x0d106271, + 0x4ab018a1, 0x77d03111, 0xc5f0ed01, 0xf890c4b1, 0xbf30be61, + 0x825097d1, 0x60e09782, 0x5d80be32, 0x1a20c4e2, 0x2740ed52, + 0x95603142, 0xa80018f2, 0xefa06222, 0xd2c04b92, 0x5090dc43, + 0x6df0f5f3, 0x2a508f23, 0x1730a693, 0xa5107a83, 0x98705333, + 0xdfd029e3, 0xe2b00053, 0xc1c12f04, 0xfca106b4, 0xbb017c64, + 0x866155d4, 0x344189c4, 0x0921a074, 0x4e81daa4, 0x73e1f314, + 0xf1b164c5, 0xccd14d75, 0x8b7137a5, 0xb6111e15, 0x0431c205, + 0x3951ebb5, 0x7ef19165, 0x4391b8d5, 0xa121b886, 0x9c419136, + 0xdbe1ebe6, 0xe681c256, 0x54a11e46, 0x69c137f6, 0x2e614d26, + 0x13016496, 0x9151f347, 0xac31daf7, 0xeb91a027, 0xd6f18997, + 0x64d15587, 0x59b17c37, 0x1e1106e7, 0x23712f57, 0x58f35849, + 0x659371f9, 0x22330b29, 0x1f532299, 0xad73fe89, 0x9013d739, + 0xd7b3ade9, 0xead38459, 0x68831388, 0x55e33a38, 0x124340e8, + 0x2f236958, 0x9d03b548, 0xa0639cf8, 0xe7c3e628, 0xdaa3cf98, + 0x3813cfcb, 0x0573e67b, 0x42d39cab, 0x7fb3b51b, 0xcd93690b, + 0xf0f340bb, 0xb7533a6b, 0x8a3313db, 0x0863840a, 0x3503adba, + 0x72a3d76a, 0x4fc3feda, 0xfde322ca, 0xc0830b7a, 0x872371aa, + 0xba43581a, 0x9932774d, 0xa4525efd, 0xe3f2242d, 0xde920d9d, + 0x6cb2d18d, 0x51d2f83d, 0x167282ed, 0x2b12ab5d, 0xa9423c8c, + 0x9422153c, 0xd3826fec, 0xeee2465c, 0x5cc29a4c, 0x61a2b3fc, + 0x2602c92c, 0x1b62e09c, 0xf9d2e0cf, 0xc4b2c97f, 0x8312b3af, + 0xbe729a1f, 0x0c52460f, 0x31326fbf, 0x7692156f, 0x4bf23cdf, + 0xc9a2ab0e, 0xf4c282be, 0xb362f86e, 0x8e02d1de, 0x3c220dce, + 0x0142247e, 0x46e25eae, 0x7b82771e, 0xb1e6b092, 0x8c869922, + 0xcb26e3f2, 0xf646ca42, 0x44661652, 0x79063fe2, 0x3ea64532, + 0x03c66c82, 0x8196fb53, 0xbcf6d2e3, 0xfb56a833, 0xc6368183, + 0x74165d93, 0x49767423, 0x0ed60ef3, 0x33b62743, 0xd1062710, + 0xec660ea0, 0xabc67470, 0x96a65dc0, 0x248681d0, 0x19e6a860, + 0x5e46d2b0, 0x6326fb00, 0xe1766cd1, 0xdc164561, 0x9bb63fb1, + 0xa6d61601, 0x14f6ca11, 0x2996e3a1, 0x6e369971, 0x5356b0c1, + 0x70279f96, 0x4d47b626, 0x0ae7ccf6, 0x3787e546, 0x85a73956, + 0xb8c710e6, 0xff676a36, 0xc2074386, 0x4057d457, 0x7d37fde7, + 0x3a978737, 0x07f7ae87, 0xb5d77297, 0x88b75b27, 0xcf1721f7, + 0xf2770847, 0x10c70814, 0x2da721a4, 0x6a075b74, 0x576772c4, + 0xe547aed4, 0xd8278764, 0x9f87fdb4, 0xa2e7d404, 0x20b743d5, + 0x1dd76a65, 0x5a7710b5, 0x67173905, 0xd537e515, 0xe857cca5, + 0xaff7b675, 0x92979fc5, 0xe915e8db, 0xd475c16b, 0x93d5bbbb, + 0xaeb5920b, 0x1c954e1b, 0x21f567ab, 0x66551d7b, 0x5b3534cb, + 0xd965a31a, 0xe4058aaa, 0xa3a5f07a, 0x9ec5d9ca, 0x2ce505da, + 0x11852c6a, 0x562556ba, 0x6b457f0a, 0x89f57f59, 0xb49556e9, + 0xf3352c39, 0xce550589, 0x7c75d999, 0x4115f029, 0x06b58af9, + 0x3bd5a349, 0xb9853498, 0x84e51d28, 0xc34567f8, 0xfe254e48, + 0x4c059258, 0x7165bbe8, 0x36c5c138, 0x0ba5e888, 0x28d4c7df, + 0x15b4ee6f, 0x521494bf, 0x6f74bd0f, 0xdd54611f, 0xe03448af, + 0xa794327f, 0x9af41bcf, 0x18a48c1e, 0x25c4a5ae, 0x6264df7e, + 0x5f04f6ce, 0xed242ade, 0xd044036e, 0x97e479be, 0xaa84500e, + 0x4834505d, 0x755479ed, 0x32f4033d, 0x0f942a8d, 0xbdb4f69d, + 0x80d4df2d, 0xc774a5fd, 0xfa148c4d, 0x78441b9c, 0x4524322c, + 0x028448fc, 0x3fe4614c, 0x8dc4bd5c, 0xb0a494ec, 0xf704ee3c, + 0xca64c78c}, + {0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, 0x8f629757, + 0x37def032, 0x256b5fdc, 0x9dd738b9, 0xc5b428ef, 0x7d084f8a, + 0x6fbde064, 0xd7018701, 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, + 0x58631056, 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, + 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, 0x95ad7f70, + 0x2d111815, 0x3fa4b7fb, 0x8718d09e, 0x1acfe827, 0xa2738f42, + 0xb0c620ac, 0x087a47c9, 0xa032af3e, 0x188ec85b, 0x0a3b67b5, + 0xb28700d0, 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, + 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, 0xeae41086, + 0x525877e3, 0x40edd80d, 0xf851bf68, 0xf02bf8a1, 0x48979fc4, + 0x5a22302a, 0xe29e574f, 0x7f496ff6, 0xc7f50893, 0xd540a77d, + 0x6dfcc018, 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, + 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, 0x9b14583d, + 0x23a83f58, 0x311d90b6, 0x89a1f7d3, 0x1476cf6a, 0xaccaa80f, + 0xbe7f07e1, 0x06c36084, 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, + 0x4c15df3c, 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, + 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, 0x446f98f5, + 0xfcd3ff90, 0xee66507e, 0x56da371b, 0x0eb9274d, 0xb6054028, + 0xa4b0efc6, 0x1c0c88a3, 0x81dbb01a, 0x3967d77f, 0x2bd27891, + 0x936e1ff4, 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, + 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, 0xfe92dfec, + 0x462eb889, 0x549b1767, 0xec277002, 0x71f048bb, 0xc94c2fde, + 0xdbf98030, 0x6345e755, 0x6b3fa09c, 0xd383c7f9, 0xc1366817, + 0x798a0f72, 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, + 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, 0x21e91f24, + 0x99557841, 0x8be0d7af, 0x335cb0ca, 0xed59b63b, 0x55e5d15e, + 0x47507eb0, 0xffec19d5, 0x623b216c, 0xda874609, 0xc832e9e7, + 0x708e8e82, 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, + 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, 0xbd40e1a4, + 0x05fc86c1, 0x1749292f, 0xaff54e4a, 0x322276f3, 0x8a9e1196, + 0x982bbe78, 0x2097d91d, 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, + 0x6a4166a5, 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, + 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, 0xc2098e52, + 0x7ab5e937, 0x680046d9, 0xd0bc21bc, 0x88df31ea, 0x3063568f, + 0x22d6f961, 0x9a6a9e04, 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, + 0x15080953, 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, + 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, 0xd8c66675, + 0x607a0110, 0x72cfaefe, 0xca73c99b, 0x57a4f122, 0xef189647, + 0xfdad39a9, 0x45115ecc, 0x764dee06, 0xcef18963, 0xdc44268d, + 0x64f841e8, 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, + 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, 0x3c9b51be, + 0x842736db, 0x96929935, 0x2e2efe50, 0x2654b999, 0x9ee8defc, + 0x8c5d7112, 0x34e11677, 0xa9362ece, 0x118a49ab, 0x033fe645, + 0xbb838120, 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, + 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, 0xd67f4138, + 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, 0x591dd66f, 0xe1a1b10a, + 0xf3141ee4, 0x4ba87981, 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, + 0x017ec639, 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, + 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, 0x090481f0, + 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, 0x43d23e48, 0xfb6e592d, + 0xe9dbf6c3, 0x516791a6, 0xccb0a91f, 0x740cce7a, 0x66b96194, + 0xde0506f1}, + {0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, 0x0709a8dc, + 0x06cbc2eb, 0x048d7cb2, 0x054f1685, 0x0e1351b8, 0x0fd13b8f, + 0x0d9785d6, 0x0c55efe1, 0x091af964, 0x08d89353, 0x0a9e2d0a, + 0x0b5c473d, 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, + 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, 0x1235f2c8, + 0x13f798ff, 0x11b126a6, 0x10734c91, 0x153c5a14, 0x14fe3023, + 0x16b88e7a, 0x177ae44d, 0x384d46e0, 0x398f2cd7, 0x3bc9928e, + 0x3a0bf8b9, 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, + 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, 0x3157bf84, + 0x3095d5b3, 0x32d36bea, 0x331101dd, 0x246be590, 0x25a98fa7, + 0x27ef31fe, 0x262d5bc9, 0x23624d4c, 0x22a0277b, 0x20e69922, + 0x2124f315, 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, + 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, 0x709a8dc0, + 0x7158e7f7, 0x731e59ae, 0x72dc3399, 0x7793251c, 0x76514f2b, + 0x7417f172, 0x75d59b45, 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, + 0x7ccf6221, 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, + 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, 0x6bb5866c, + 0x6a77ec5b, 0x68315202, 0x69f33835, 0x62af7f08, 0x636d153f, + 0x612bab66, 0x60e9c151, 0x65a6d7d4, 0x6464bde3, 0x662203ba, + 0x67e0698d, 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, + 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, 0x46c49a98, + 0x4706f0af, 0x45404ef6, 0x448224c1, 0x41cd3244, 0x400f5873, + 0x4249e62a, 0x438b8c1d, 0x54f16850, 0x55330267, 0x5775bc3e, + 0x56b7d609, 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, + 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, 0x5deb9134, + 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, 0xe1351b80, 0xe0f771b7, + 0xe2b1cfee, 0xe373a5d9, 0xe63cb35c, 0xe7fed96b, 0xe5b86732, + 0xe47a0d05, 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, + 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, 0xfd13b8f0, + 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, 0xfa1a102c, 0xfbd87a1b, + 0xf99ec442, 0xf85cae75, 0xf300e948, 0xf2c2837f, 0xf0843d26, + 0xf1465711, 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, + 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, 0xde71f5bc, + 0xdfb39f8b, 0xddf521d2, 0xdc374be5, 0xd76b0cd8, 0xd6a966ef, + 0xd4efd8b6, 0xd52db281, 0xd062a404, 0xd1a0ce33, 0xd3e6706a, + 0xd2241a5d, 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, + 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, 0xcb4dafa8, + 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, 0xcc440774, 0xcd866d43, + 0xcfc0d31a, 0xce02b92d, 0x91af9640, 0x906dfc77, 0x922b422e, + 0x93e92819, 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, + 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, 0x98b56f24, + 0x99770513, 0x9b31bb4a, 0x9af3d17d, 0x8d893530, 0x8c4b5f07, + 0x8e0de15e, 0x8fcf8b69, 0x8a809dec, 0x8b42f7db, 0x89044982, + 0x88c623b5, 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, + 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, 0xa9e2d0a0, + 0xa820ba97, 0xaa6604ce, 0xaba46ef9, 0xaeeb787c, 0xaf29124b, + 0xad6fac12, 0xacadc625, 0xa7f18118, 0xa633eb2f, 0xa4755576, + 0xa5b73f41, 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, + 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, 0xb2cddb0c, + 0xb30fb13b, 0xb1490f62, 0xb08b6555, 0xbbd72268, 0xba15485f, + 0xb853f606, 0xb9919c31, 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, + 0xbe9834ed}, + {0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, 0x646cc504, + 0x7d77f445, 0x565aa786, 0x4f4196c7, 0xc8d98a08, 0xd1c2bb49, + 0xfaefe88a, 0xe3f4d9cb, 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, + 0x87981ccf, 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, + 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, 0x821b9859, + 0x9b00a918, 0xb02dfadb, 0xa936cb9a, 0xe6775d5d, 0xff6c6c1c, + 0xd4413fdf, 0xcd5a0e9e, 0x958424a2, 0x8c9f15e3, 0xa7b24620, + 0xbea97761, 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, + 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, 0x39316bae, + 0x202a5aef, 0x0b07092c, 0x121c386d, 0xdf4636f3, 0xc65d07b2, + 0xed705471, 0xf46b6530, 0xbb2af3f7, 0xa231c2b6, 0x891c9175, + 0x9007a034, 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, + 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, 0xf0794f05, + 0xe9627e44, 0xc24f2d87, 0xdb541cc6, 0x94158a01, 0x8d0ebb40, + 0xa623e883, 0xbf38d9c2, 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, + 0x138d96ce, 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, + 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, 0xded79850, + 0xc7cca911, 0xece1fad2, 0xf5facb93, 0x7262d75c, 0x6b79e61d, + 0x4054b5de, 0x594f849f, 0x160e1258, 0x0f152319, 0x243870da, + 0x3d23419b, 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, + 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, 0xad24e1af, + 0xb43fd0ee, 0x9f12832d, 0x8609b26c, 0xc94824ab, 0xd05315ea, + 0xfb7e4629, 0xe2657768, 0x2f3f79f6, 0x362448b7, 0x1d091b74, + 0x04122a35, 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, + 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, 0x838a36fa, + 0x9a9107bb, 0xb1bc5478, 0xa8a76539, 0x3b83984b, 0x2298a90a, + 0x09b5fac9, 0x10aecb88, 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, + 0x74c20e8c, 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, + 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, 0x71418a1a, + 0x685abb5b, 0x4377e898, 0x5a6cd9d9, 0x152d4f1e, 0x0c367e5f, + 0x271b2d9c, 0x3e001cdd, 0xb9980012, 0xa0833153, 0x8bae6290, + 0x92b553d1, 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, + 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, 0xca6b79ed, + 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, 0x66de36e1, 0x7fc507a0, + 0x54e85463, 0x4df36522, 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, + 0x299fa026, 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, + 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, 0x2c1c24b0, + 0x350715f1, 0x1e2a4632, 0x07317773, 0x4870e1b4, 0x516bd0f5, + 0x7a468336, 0x635db277, 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, + 0xe0d7848d, 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, + 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, 0x674f9842, + 0x7e54a903, 0x5579fac0, 0x4c62cb81, 0x8138c51f, 0x9823f45e, + 0xb30ea79d, 0xaa1596dc, 0xe554001b, 0xfc4f315a, 0xd7626299, + 0xce7953d8, 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, + 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, 0x5e7ef3ec, + 0x4765c2ad, 0x6c48916e, 0x7553a02f, 0x3a1236e8, 0x230907a9, + 0x0824546a, 0x113f652b, 0x96a779e4, 0x8fbc48a5, 0xa4911b66, + 0xbd8a2a27, 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, + 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, 0x70d024b9, + 0x69cb15f8, 0x42e6463b, 0x5bfd777a, 0xdc656bb5, 0xc57e5af4, + 0xee530937, 0xf7483876, 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, + 0x9324fd72}, + {0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x9630077700000000, 0x2c610eee00000000, + 0xba51099900000000, 0x19c46d0700000000, 0x8ff46a7000000000, + 0x35a563e900000000, 0xa395649e00000000, 0x3288db0e00000000, + 0xa4b8dc7900000000, 0x1ee9d5e000000000, 0x88d9d29700000000, + 0x2b4cb60900000000, 0xbd7cb17e00000000, 0x072db8e700000000, + 0x911dbf9000000000, 0x6410b71d00000000, 0xf220b06a00000000, + 0x4871b9f300000000, 0xde41be8400000000, 0x7dd4da1a00000000, + 0xebe4dd6d00000000, 0x51b5d4f400000000, 0xc785d38300000000, + 0x56986c1300000000, 0xc0a86b6400000000, 0x7af962fd00000000, + 0xecc9658a00000000, 0x4f5c011400000000, 0xd96c066300000000, + 0x633d0ffa00000000, 0xf50d088d00000000, 0xc8206e3b00000000, + 0x5e10694c00000000, 0xe44160d500000000, 0x727167a200000000, + 0xd1e4033c00000000, 0x47d4044b00000000, 0xfd850dd200000000, + 0x6bb50aa500000000, 0xfaa8b53500000000, 0x6c98b24200000000, + 0xd6c9bbdb00000000, 0x40f9bcac00000000, 0xe36cd83200000000, + 0x755cdf4500000000, 0xcf0dd6dc00000000, 0x593dd1ab00000000, + 0xac30d92600000000, 0x3a00de5100000000, 0x8051d7c800000000, + 0x1661d0bf00000000, 0xb5f4b42100000000, 0x23c4b35600000000, + 0x9995bacf00000000, 0x0fa5bdb800000000, 0x9eb8022800000000, + 0x0888055f00000000, 0xb2d90cc600000000, 0x24e90bb100000000, + 0x877c6f2f00000000, 0x114c685800000000, 0xab1d61c100000000, + 0x3d2d66b600000000, 0x9041dc7600000000, 0x0671db0100000000, + 0xbc20d29800000000, 0x2a10d5ef00000000, 0x8985b17100000000, + 0x1fb5b60600000000, 0xa5e4bf9f00000000, 0x33d4b8e800000000, + 0xa2c9077800000000, 0x34f9000f00000000, 0x8ea8099600000000, + 0x18980ee100000000, 0xbb0d6a7f00000000, 0x2d3d6d0800000000, + 0x976c649100000000, 0x015c63e600000000, 0xf4516b6b00000000, + 0x62616c1c00000000, 0xd830658500000000, 0x4e0062f200000000, + 0xed95066c00000000, 0x7ba5011b00000000, 0xc1f4088200000000, + 0x57c40ff500000000, 0xc6d9b06500000000, 0x50e9b71200000000, + 0xeab8be8b00000000, 0x7c88b9fc00000000, 0xdf1ddd6200000000, + 0x492dda1500000000, 0xf37cd38c00000000, 0x654cd4fb00000000, + 0x5861b24d00000000, 0xce51b53a00000000, 0x7400bca300000000, + 0xe230bbd400000000, 0x41a5df4a00000000, 0xd795d83d00000000, + 0x6dc4d1a400000000, 0xfbf4d6d300000000, 0x6ae9694300000000, + 0xfcd96e3400000000, 0x468867ad00000000, 0xd0b860da00000000, + 0x732d044400000000, 0xe51d033300000000, 0x5f4c0aaa00000000, + 0xc97c0ddd00000000, 0x3c71055000000000, 0xaa41022700000000, + 0x10100bbe00000000, 0x86200cc900000000, 0x25b5685700000000, + 0xb3856f2000000000, 0x09d466b900000000, 0x9fe461ce00000000, + 0x0ef9de5e00000000, 0x98c9d92900000000, 0x2298d0b000000000, + 0xb4a8d7c700000000, 0x173db35900000000, 0x810db42e00000000, + 0x3b5cbdb700000000, 0xad6cbac000000000, 0x2083b8ed00000000, + 0xb6b3bf9a00000000, 0x0ce2b60300000000, 0x9ad2b17400000000, + 0x3947d5ea00000000, 0xaf77d29d00000000, 0x1526db0400000000, + 0x8316dc7300000000, 0x120b63e300000000, 0x843b649400000000, + 0x3e6a6d0d00000000, 0xa85a6a7a00000000, 0x0bcf0ee400000000, + 0x9dff099300000000, 0x27ae000a00000000, 0xb19e077d00000000, + 0x44930ff000000000, 0xd2a3088700000000, 0x68f2011e00000000, + 0xfec2066900000000, 0x5d5762f700000000, 0xcb67658000000000, + 0x71366c1900000000, 0xe7066b6e00000000, 0x761bd4fe00000000, + 0xe02bd38900000000, 0x5a7ada1000000000, 0xcc4add6700000000, + 0x6fdfb9f900000000, 0xf9efbe8e00000000, 0x43beb71700000000, + 0xd58eb06000000000, 0xe8a3d6d600000000, 0x7e93d1a100000000, + 0xc4c2d83800000000, 0x52f2df4f00000000, 0xf167bbd100000000, + 0x6757bca600000000, 0xdd06b53f00000000, 0x4b36b24800000000, + 0xda2b0dd800000000, 0x4c1b0aaf00000000, 0xf64a033600000000, + 0x607a044100000000, 0xc3ef60df00000000, 0x55df67a800000000, + 0xef8e6e3100000000, 0x79be694600000000, 0x8cb361cb00000000, + 0x1a8366bc00000000, 0xa0d26f2500000000, 0x36e2685200000000, + 0x95770ccc00000000, 0x03470bbb00000000, 0xb916022200000000, + 0x2f26055500000000, 0xbe3bbac500000000, 0x280bbdb200000000, + 0x925ab42b00000000, 0x046ab35c00000000, 0xa7ffd7c200000000, + 0x31cfd0b500000000, 0x8b9ed92c00000000, 0x1daede5b00000000, + 0xb0c2649b00000000, 0x26f263ec00000000, 0x9ca36a7500000000, + 0x0a936d0200000000, 0xa906099c00000000, 0x3f360eeb00000000, + 0x8567077200000000, 0x1357000500000000, 0x824abf9500000000, + 0x147ab8e200000000, 0xae2bb17b00000000, 0x381bb60c00000000, + 0x9b8ed29200000000, 0x0dbed5e500000000, 0xb7efdc7c00000000, + 0x21dfdb0b00000000, 0xd4d2d38600000000, 0x42e2d4f100000000, + 0xf8b3dd6800000000, 0x6e83da1f00000000, 0xcd16be8100000000, + 0x5b26b9f600000000, 0xe177b06f00000000, 0x7747b71800000000, + 0xe65a088800000000, 0x706a0fff00000000, 0xca3b066600000000, + 0x5c0b011100000000, 0xff9e658f00000000, 0x69ae62f800000000, + 0xd3ff6b6100000000, 0x45cf6c1600000000, 0x78e20aa000000000, + 0xeed20dd700000000, 0x5483044e00000000, 0xc2b3033900000000, + 0x612667a700000000, 0xf71660d000000000, 0x4d47694900000000, + 0xdb776e3e00000000, 0x4a6ad1ae00000000, 0xdc5ad6d900000000, + 0x660bdf4000000000, 0xf03bd83700000000, 0x53aebca900000000, + 0xc59ebbde00000000, 0x7fcfb24700000000, 0xe9ffb53000000000, + 0x1cf2bdbd00000000, 0x8ac2baca00000000, 0x3093b35300000000, + 0xa6a3b42400000000, 0x0536d0ba00000000, 0x9306d7cd00000000, + 0x2957de5400000000, 0xbf67d92300000000, 0x2e7a66b300000000, + 0xb84a61c400000000, 0x021b685d00000000, 0x942b6f2a00000000, + 0x37be0bb400000000, 0xa18e0cc300000000, 0x1bdf055a00000000, + 0x8def022d00000000}, + {0x0000000000000000, 0x41311b1900000000, 0x8262363200000000, + 0xc3532d2b00000000, 0x04c56c6400000000, 0x45f4777d00000000, + 0x86a75a5600000000, 0xc796414f00000000, 0x088ad9c800000000, + 0x49bbc2d100000000, 0x8ae8effa00000000, 0xcbd9f4e300000000, + 0x0c4fb5ac00000000, 0x4d7eaeb500000000, 0x8e2d839e00000000, + 0xcf1c988700000000, 0x5112c24a00000000, 0x1023d95300000000, + 0xd370f47800000000, 0x9241ef6100000000, 0x55d7ae2e00000000, + 0x14e6b53700000000, 0xd7b5981c00000000, 0x9684830500000000, + 0x59981b8200000000, 0x18a9009b00000000, 0xdbfa2db000000000, + 0x9acb36a900000000, 0x5d5d77e600000000, 0x1c6c6cff00000000, + 0xdf3f41d400000000, 0x9e0e5acd00000000, 0xa224849500000000, + 0xe3159f8c00000000, 0x2046b2a700000000, 0x6177a9be00000000, + 0xa6e1e8f100000000, 0xe7d0f3e800000000, 0x2483dec300000000, + 0x65b2c5da00000000, 0xaaae5d5d00000000, 0xeb9f464400000000, + 0x28cc6b6f00000000, 0x69fd707600000000, 0xae6b313900000000, + 0xef5a2a2000000000, 0x2c09070b00000000, 0x6d381c1200000000, + 0xf33646df00000000, 0xb2075dc600000000, 0x715470ed00000000, + 0x30656bf400000000, 0xf7f32abb00000000, 0xb6c231a200000000, + 0x75911c8900000000, 0x34a0079000000000, 0xfbbc9f1700000000, + 0xba8d840e00000000, 0x79dea92500000000, 0x38efb23c00000000, + 0xff79f37300000000, 0xbe48e86a00000000, 0x7d1bc54100000000, + 0x3c2ade5800000000, 0x054f79f000000000, 0x447e62e900000000, + 0x872d4fc200000000, 0xc61c54db00000000, 0x018a159400000000, + 0x40bb0e8d00000000, 0x83e823a600000000, 0xc2d938bf00000000, + 0x0dc5a03800000000, 0x4cf4bb2100000000, 0x8fa7960a00000000, + 0xce968d1300000000, 0x0900cc5c00000000, 0x4831d74500000000, + 0x8b62fa6e00000000, 0xca53e17700000000, 0x545dbbba00000000, + 0x156ca0a300000000, 0xd63f8d8800000000, 0x970e969100000000, + 0x5098d7de00000000, 0x11a9ccc700000000, 0xd2fae1ec00000000, + 0x93cbfaf500000000, 0x5cd7627200000000, 0x1de6796b00000000, + 0xdeb5544000000000, 0x9f844f5900000000, 0x58120e1600000000, + 0x1923150f00000000, 0xda70382400000000, 0x9b41233d00000000, + 0xa76bfd6500000000, 0xe65ae67c00000000, 0x2509cb5700000000, + 0x6438d04e00000000, 0xa3ae910100000000, 0xe29f8a1800000000, + 0x21cca73300000000, 0x60fdbc2a00000000, 0xafe124ad00000000, + 0xeed03fb400000000, 0x2d83129f00000000, 0x6cb2098600000000, + 0xab2448c900000000, 0xea1553d000000000, 0x29467efb00000000, + 0x687765e200000000, 0xf6793f2f00000000, 0xb748243600000000, + 0x741b091d00000000, 0x352a120400000000, 0xf2bc534b00000000, + 0xb38d485200000000, 0x70de657900000000, 0x31ef7e6000000000, + 0xfef3e6e700000000, 0xbfc2fdfe00000000, 0x7c91d0d500000000, + 0x3da0cbcc00000000, 0xfa368a8300000000, 0xbb07919a00000000, + 0x7854bcb100000000, 0x3965a7a800000000, 0x4b98833b00000000, + 0x0aa9982200000000, 0xc9fab50900000000, 0x88cbae1000000000, + 0x4f5def5f00000000, 0x0e6cf44600000000, 0xcd3fd96d00000000, + 0x8c0ec27400000000, 0x43125af300000000, 0x022341ea00000000, + 0xc1706cc100000000, 0x804177d800000000, 0x47d7369700000000, + 0x06e62d8e00000000, 0xc5b500a500000000, 0x84841bbc00000000, + 0x1a8a417100000000, 0x5bbb5a6800000000, 0x98e8774300000000, + 0xd9d96c5a00000000, 0x1e4f2d1500000000, 0x5f7e360c00000000, + 0x9c2d1b2700000000, 0xdd1c003e00000000, 0x120098b900000000, + 0x533183a000000000, 0x9062ae8b00000000, 0xd153b59200000000, + 0x16c5f4dd00000000, 0x57f4efc400000000, 0x94a7c2ef00000000, + 0xd596d9f600000000, 0xe9bc07ae00000000, 0xa88d1cb700000000, + 0x6bde319c00000000, 0x2aef2a8500000000, 0xed796bca00000000, + 0xac4870d300000000, 0x6f1b5df800000000, 0x2e2a46e100000000, + 0xe136de6600000000, 0xa007c57f00000000, 0x6354e85400000000, + 0x2265f34d00000000, 0xe5f3b20200000000, 0xa4c2a91b00000000, + 0x6791843000000000, 0x26a09f2900000000, 0xb8aec5e400000000, + 0xf99fdefd00000000, 0x3accf3d600000000, 0x7bfde8cf00000000, + 0xbc6ba98000000000, 0xfd5ab29900000000, 0x3e099fb200000000, + 0x7f3884ab00000000, 0xb0241c2c00000000, 0xf115073500000000, + 0x32462a1e00000000, 0x7377310700000000, 0xb4e1704800000000, + 0xf5d06b5100000000, 0x3683467a00000000, 0x77b25d6300000000, + 0x4ed7facb00000000, 0x0fe6e1d200000000, 0xccb5ccf900000000, + 0x8d84d7e000000000, 0x4a1296af00000000, 0x0b238db600000000, + 0xc870a09d00000000, 0x8941bb8400000000, 0x465d230300000000, + 0x076c381a00000000, 0xc43f153100000000, 0x850e0e2800000000, + 0x42984f6700000000, 0x03a9547e00000000, 0xc0fa795500000000, + 0x81cb624c00000000, 0x1fc5388100000000, 0x5ef4239800000000, + 0x9da70eb300000000, 0xdc9615aa00000000, 0x1b0054e500000000, + 0x5a314ffc00000000, 0x996262d700000000, 0xd85379ce00000000, + 0x174fe14900000000, 0x567efa5000000000, 0x952dd77b00000000, + 0xd41ccc6200000000, 0x138a8d2d00000000, 0x52bb963400000000, + 0x91e8bb1f00000000, 0xd0d9a00600000000, 0xecf37e5e00000000, + 0xadc2654700000000, 0x6e91486c00000000, 0x2fa0537500000000, + 0xe836123a00000000, 0xa907092300000000, 0x6a54240800000000, + 0x2b653f1100000000, 0xe479a79600000000, 0xa548bc8f00000000, + 0x661b91a400000000, 0x272a8abd00000000, 0xe0bccbf200000000, + 0xa18dd0eb00000000, 0x62defdc000000000, 0x23efe6d900000000, + 0xbde1bc1400000000, 0xfcd0a70d00000000, 0x3f838a2600000000, + 0x7eb2913f00000000, 0xb924d07000000000, 0xf815cb6900000000, + 0x3b46e64200000000, 0x7a77fd5b00000000, 0xb56b65dc00000000, + 0xf45a7ec500000000, 0x370953ee00000000, 0x763848f700000000, + 0xb1ae09b800000000, 0xf09f12a100000000, 0x33cc3f8a00000000, + 0x72fd249300000000}, + {0x0000000000000000, 0x376ac20100000000, 0x6ed4840300000000, + 0x59be460200000000, 0xdca8090700000000, 0xebc2cb0600000000, + 0xb27c8d0400000000, 0x85164f0500000000, 0xb851130e00000000, + 0x8f3bd10f00000000, 0xd685970d00000000, 0xe1ef550c00000000, + 0x64f91a0900000000, 0x5393d80800000000, 0x0a2d9e0a00000000, + 0x3d475c0b00000000, 0x70a3261c00000000, 0x47c9e41d00000000, + 0x1e77a21f00000000, 0x291d601e00000000, 0xac0b2f1b00000000, + 0x9b61ed1a00000000, 0xc2dfab1800000000, 0xf5b5691900000000, + 0xc8f2351200000000, 0xff98f71300000000, 0xa626b11100000000, + 0x914c731000000000, 0x145a3c1500000000, 0x2330fe1400000000, + 0x7a8eb81600000000, 0x4de47a1700000000, 0xe0464d3800000000, + 0xd72c8f3900000000, 0x8e92c93b00000000, 0xb9f80b3a00000000, + 0x3cee443f00000000, 0x0b84863e00000000, 0x523ac03c00000000, + 0x6550023d00000000, 0x58175e3600000000, 0x6f7d9c3700000000, + 0x36c3da3500000000, 0x01a9183400000000, 0x84bf573100000000, + 0xb3d5953000000000, 0xea6bd33200000000, 0xdd01113300000000, + 0x90e56b2400000000, 0xa78fa92500000000, 0xfe31ef2700000000, + 0xc95b2d2600000000, 0x4c4d622300000000, 0x7b27a02200000000, + 0x2299e62000000000, 0x15f3242100000000, 0x28b4782a00000000, + 0x1fdeba2b00000000, 0x4660fc2900000000, 0x710a3e2800000000, + 0xf41c712d00000000, 0xc376b32c00000000, 0x9ac8f52e00000000, + 0xada2372f00000000, 0xc08d9a7000000000, 0xf7e7587100000000, + 0xae591e7300000000, 0x9933dc7200000000, 0x1c25937700000000, + 0x2b4f517600000000, 0x72f1177400000000, 0x459bd57500000000, + 0x78dc897e00000000, 0x4fb64b7f00000000, 0x16080d7d00000000, + 0x2162cf7c00000000, 0xa474807900000000, 0x931e427800000000, + 0xcaa0047a00000000, 0xfdcac67b00000000, 0xb02ebc6c00000000, + 0x87447e6d00000000, 0xdefa386f00000000, 0xe990fa6e00000000, + 0x6c86b56b00000000, 0x5bec776a00000000, 0x0252316800000000, + 0x3538f36900000000, 0x087faf6200000000, 0x3f156d6300000000, + 0x66ab2b6100000000, 0x51c1e96000000000, 0xd4d7a66500000000, + 0xe3bd646400000000, 0xba03226600000000, 0x8d69e06700000000, + 0x20cbd74800000000, 0x17a1154900000000, 0x4e1f534b00000000, + 0x7975914a00000000, 0xfc63de4f00000000, 0xcb091c4e00000000, + 0x92b75a4c00000000, 0xa5dd984d00000000, 0x989ac44600000000, + 0xaff0064700000000, 0xf64e404500000000, 0xc124824400000000, + 0x4432cd4100000000, 0x73580f4000000000, 0x2ae6494200000000, + 0x1d8c8b4300000000, 0x5068f15400000000, 0x6702335500000000, + 0x3ebc755700000000, 0x09d6b75600000000, 0x8cc0f85300000000, + 0xbbaa3a5200000000, 0xe2147c5000000000, 0xd57ebe5100000000, + 0xe839e25a00000000, 0xdf53205b00000000, 0x86ed665900000000, + 0xb187a45800000000, 0x3491eb5d00000000, 0x03fb295c00000000, + 0x5a456f5e00000000, 0x6d2fad5f00000000, 0x801b35e100000000, + 0xb771f7e000000000, 0xeecfb1e200000000, 0xd9a573e300000000, + 0x5cb33ce600000000, 0x6bd9fee700000000, 0x3267b8e500000000, + 0x050d7ae400000000, 0x384a26ef00000000, 0x0f20e4ee00000000, + 0x569ea2ec00000000, 0x61f460ed00000000, 0xe4e22fe800000000, + 0xd388ede900000000, 0x8a36abeb00000000, 0xbd5c69ea00000000, + 0xf0b813fd00000000, 0xc7d2d1fc00000000, 0x9e6c97fe00000000, + 0xa90655ff00000000, 0x2c101afa00000000, 0x1b7ad8fb00000000, + 0x42c49ef900000000, 0x75ae5cf800000000, 0x48e900f300000000, + 0x7f83c2f200000000, 0x263d84f000000000, 0x115746f100000000, + 0x944109f400000000, 0xa32bcbf500000000, 0xfa958df700000000, + 0xcdff4ff600000000, 0x605d78d900000000, 0x5737bad800000000, + 0x0e89fcda00000000, 0x39e33edb00000000, 0xbcf571de00000000, + 0x8b9fb3df00000000, 0xd221f5dd00000000, 0xe54b37dc00000000, + 0xd80c6bd700000000, 0xef66a9d600000000, 0xb6d8efd400000000, + 0x81b22dd500000000, 0x04a462d000000000, 0x33cea0d100000000, + 0x6a70e6d300000000, 0x5d1a24d200000000, 0x10fe5ec500000000, + 0x27949cc400000000, 0x7e2adac600000000, 0x494018c700000000, + 0xcc5657c200000000, 0xfb3c95c300000000, 0xa282d3c100000000, + 0x95e811c000000000, 0xa8af4dcb00000000, 0x9fc58fca00000000, + 0xc67bc9c800000000, 0xf1110bc900000000, 0x740744cc00000000, + 0x436d86cd00000000, 0x1ad3c0cf00000000, 0x2db902ce00000000, + 0x4096af9100000000, 0x77fc6d9000000000, 0x2e422b9200000000, + 0x1928e99300000000, 0x9c3ea69600000000, 0xab54649700000000, + 0xf2ea229500000000, 0xc580e09400000000, 0xf8c7bc9f00000000, + 0xcfad7e9e00000000, 0x9613389c00000000, 0xa179fa9d00000000, + 0x246fb59800000000, 0x1305779900000000, 0x4abb319b00000000, + 0x7dd1f39a00000000, 0x3035898d00000000, 0x075f4b8c00000000, + 0x5ee10d8e00000000, 0x698bcf8f00000000, 0xec9d808a00000000, + 0xdbf7428b00000000, 0x8249048900000000, 0xb523c68800000000, + 0x88649a8300000000, 0xbf0e588200000000, 0xe6b01e8000000000, + 0xd1dadc8100000000, 0x54cc938400000000, 0x63a6518500000000, + 0x3a18178700000000, 0x0d72d58600000000, 0xa0d0e2a900000000, + 0x97ba20a800000000, 0xce0466aa00000000, 0xf96ea4ab00000000, + 0x7c78ebae00000000, 0x4b1229af00000000, 0x12ac6fad00000000, + 0x25c6adac00000000, 0x1881f1a700000000, 0x2feb33a600000000, + 0x765575a400000000, 0x413fb7a500000000, 0xc429f8a000000000, + 0xf3433aa100000000, 0xaafd7ca300000000, 0x9d97bea200000000, + 0xd073c4b500000000, 0xe71906b400000000, 0xbea740b600000000, + 0x89cd82b700000000, 0x0cdbcdb200000000, 0x3bb10fb300000000, + 0x620f49b100000000, 0x55658bb000000000, 0x6822d7bb00000000, + 0x5f4815ba00000000, 0x06f653b800000000, 0x319c91b900000000, + 0xb48adebc00000000, 0x83e01cbd00000000, 0xda5e5abf00000000, + 0xed3498be00000000}, + {0x0000000000000000, 0x6567bcb800000000, 0x8bc809aa00000000, + 0xeeafb51200000000, 0x5797628f00000000, 0x32f0de3700000000, + 0xdc5f6b2500000000, 0xb938d79d00000000, 0xef28b4c500000000, + 0x8a4f087d00000000, 0x64e0bd6f00000000, 0x018701d700000000, + 0xb8bfd64a00000000, 0xddd86af200000000, 0x3377dfe000000000, + 0x5610635800000000, 0x9f57195000000000, 0xfa30a5e800000000, + 0x149f10fa00000000, 0x71f8ac4200000000, 0xc8c07bdf00000000, + 0xada7c76700000000, 0x4308727500000000, 0x266fcecd00000000, + 0x707fad9500000000, 0x1518112d00000000, 0xfbb7a43f00000000, + 0x9ed0188700000000, 0x27e8cf1a00000000, 0x428f73a200000000, + 0xac20c6b000000000, 0xc9477a0800000000, 0x3eaf32a000000000, + 0x5bc88e1800000000, 0xb5673b0a00000000, 0xd00087b200000000, + 0x6938502f00000000, 0x0c5fec9700000000, 0xe2f0598500000000, + 0x8797e53d00000000, 0xd187866500000000, 0xb4e03add00000000, + 0x5a4f8fcf00000000, 0x3f28337700000000, 0x8610e4ea00000000, + 0xe377585200000000, 0x0dd8ed4000000000, 0x68bf51f800000000, + 0xa1f82bf000000000, 0xc49f974800000000, 0x2a30225a00000000, + 0x4f579ee200000000, 0xf66f497f00000000, 0x9308f5c700000000, + 0x7da740d500000000, 0x18c0fc6d00000000, 0x4ed09f3500000000, + 0x2bb7238d00000000, 0xc518969f00000000, 0xa07f2a2700000000, + 0x1947fdba00000000, 0x7c20410200000000, 0x928ff41000000000, + 0xf7e848a800000000, 0x3d58149b00000000, 0x583fa82300000000, + 0xb6901d3100000000, 0xd3f7a18900000000, 0x6acf761400000000, + 0x0fa8caac00000000, 0xe1077fbe00000000, 0x8460c30600000000, + 0xd270a05e00000000, 0xb7171ce600000000, 0x59b8a9f400000000, + 0x3cdf154c00000000, 0x85e7c2d100000000, 0xe0807e6900000000, + 0x0e2fcb7b00000000, 0x6b4877c300000000, 0xa20f0dcb00000000, + 0xc768b17300000000, 0x29c7046100000000, 0x4ca0b8d900000000, + 0xf5986f4400000000, 0x90ffd3fc00000000, 0x7e5066ee00000000, + 0x1b37da5600000000, 0x4d27b90e00000000, 0x284005b600000000, + 0xc6efb0a400000000, 0xa3880c1c00000000, 0x1ab0db8100000000, + 0x7fd7673900000000, 0x9178d22b00000000, 0xf41f6e9300000000, + 0x03f7263b00000000, 0x66909a8300000000, 0x883f2f9100000000, + 0xed58932900000000, 0x546044b400000000, 0x3107f80c00000000, + 0xdfa84d1e00000000, 0xbacff1a600000000, 0xecdf92fe00000000, + 0x89b82e4600000000, 0x67179b5400000000, 0x027027ec00000000, + 0xbb48f07100000000, 0xde2f4cc900000000, 0x3080f9db00000000, + 0x55e7456300000000, 0x9ca03f6b00000000, 0xf9c783d300000000, + 0x176836c100000000, 0x720f8a7900000000, 0xcb375de400000000, + 0xae50e15c00000000, 0x40ff544e00000000, 0x2598e8f600000000, + 0x73888bae00000000, 0x16ef371600000000, 0xf840820400000000, + 0x9d273ebc00000000, 0x241fe92100000000, 0x4178559900000000, + 0xafd7e08b00000000, 0xcab05c3300000000, 0x3bb659ed00000000, + 0x5ed1e55500000000, 0xb07e504700000000, 0xd519ecff00000000, + 0x6c213b6200000000, 0x094687da00000000, 0xe7e932c800000000, + 0x828e8e7000000000, 0xd49eed2800000000, 0xb1f9519000000000, + 0x5f56e48200000000, 0x3a31583a00000000, 0x83098fa700000000, + 0xe66e331f00000000, 0x08c1860d00000000, 0x6da63ab500000000, + 0xa4e140bd00000000, 0xc186fc0500000000, 0x2f29491700000000, + 0x4a4ef5af00000000, 0xf376223200000000, 0x96119e8a00000000, + 0x78be2b9800000000, 0x1dd9972000000000, 0x4bc9f47800000000, + 0x2eae48c000000000, 0xc001fdd200000000, 0xa566416a00000000, + 0x1c5e96f700000000, 0x79392a4f00000000, 0x97969f5d00000000, + 0xf2f123e500000000, 0x05196b4d00000000, 0x607ed7f500000000, + 0x8ed162e700000000, 0xebb6de5f00000000, 0x528e09c200000000, + 0x37e9b57a00000000, 0xd946006800000000, 0xbc21bcd000000000, + 0xea31df8800000000, 0x8f56633000000000, 0x61f9d62200000000, + 0x049e6a9a00000000, 0xbda6bd0700000000, 0xd8c101bf00000000, + 0x366eb4ad00000000, 0x5309081500000000, 0x9a4e721d00000000, + 0xff29cea500000000, 0x11867bb700000000, 0x74e1c70f00000000, + 0xcdd9109200000000, 0xa8beac2a00000000, 0x4611193800000000, + 0x2376a58000000000, 0x7566c6d800000000, 0x10017a6000000000, + 0xfeaecf7200000000, 0x9bc973ca00000000, 0x22f1a45700000000, + 0x479618ef00000000, 0xa939adfd00000000, 0xcc5e114500000000, + 0x06ee4d7600000000, 0x6389f1ce00000000, 0x8d2644dc00000000, + 0xe841f86400000000, 0x51792ff900000000, 0x341e934100000000, + 0xdab1265300000000, 0xbfd69aeb00000000, 0xe9c6f9b300000000, + 0x8ca1450b00000000, 0x620ef01900000000, 0x07694ca100000000, + 0xbe519b3c00000000, 0xdb36278400000000, 0x3599929600000000, + 0x50fe2e2e00000000, 0x99b9542600000000, 0xfcdee89e00000000, + 0x12715d8c00000000, 0x7716e13400000000, 0xce2e36a900000000, + 0xab498a1100000000, 0x45e63f0300000000, 0x208183bb00000000, + 0x7691e0e300000000, 0x13f65c5b00000000, 0xfd59e94900000000, + 0x983e55f100000000, 0x2106826c00000000, 0x44613ed400000000, + 0xaace8bc600000000, 0xcfa9377e00000000, 0x38417fd600000000, + 0x5d26c36e00000000, 0xb389767c00000000, 0xd6eecac400000000, + 0x6fd61d5900000000, 0x0ab1a1e100000000, 0xe41e14f300000000, + 0x8179a84b00000000, 0xd769cb1300000000, 0xb20e77ab00000000, + 0x5ca1c2b900000000, 0x39c67e0100000000, 0x80fea99c00000000, + 0xe599152400000000, 0x0b36a03600000000, 0x6e511c8e00000000, + 0xa716668600000000, 0xc271da3e00000000, 0x2cde6f2c00000000, + 0x49b9d39400000000, 0xf081040900000000, 0x95e6b8b100000000, + 0x7b490da300000000, 0x1e2eb11b00000000, 0x483ed24300000000, + 0x2d596efb00000000, 0xc3f6dbe900000000, 0xa691675100000000, + 0x1fa9b0cc00000000, 0x7ace0c7400000000, 0x9461b96600000000, + 0xf10605de00000000}, + {0x0000000000000000, 0xb029603d00000000, 0x6053c07a00000000, + 0xd07aa04700000000, 0xc0a680f500000000, 0x708fe0c800000000, + 0xa0f5408f00000000, 0x10dc20b200000000, 0xc14b703000000000, + 0x7162100d00000000, 0xa118b04a00000000, 0x1131d07700000000, + 0x01edf0c500000000, 0xb1c490f800000000, 0x61be30bf00000000, + 0xd197508200000000, 0x8297e06000000000, 0x32be805d00000000, + 0xe2c4201a00000000, 0x52ed402700000000, 0x4231609500000000, + 0xf21800a800000000, 0x2262a0ef00000000, 0x924bc0d200000000, + 0x43dc905000000000, 0xf3f5f06d00000000, 0x238f502a00000000, + 0x93a6301700000000, 0x837a10a500000000, 0x3353709800000000, + 0xe329d0df00000000, 0x5300b0e200000000, 0x042fc1c100000000, + 0xb406a1fc00000000, 0x647c01bb00000000, 0xd455618600000000, + 0xc489413400000000, 0x74a0210900000000, 0xa4da814e00000000, + 0x14f3e17300000000, 0xc564b1f100000000, 0x754dd1cc00000000, + 0xa537718b00000000, 0x151e11b600000000, 0x05c2310400000000, + 0xb5eb513900000000, 0x6591f17e00000000, 0xd5b8914300000000, + 0x86b821a100000000, 0x3691419c00000000, 0xe6ebe1db00000000, + 0x56c281e600000000, 0x461ea15400000000, 0xf637c16900000000, + 0x264d612e00000000, 0x9664011300000000, 0x47f3519100000000, + 0xf7da31ac00000000, 0x27a091eb00000000, 0x9789f1d600000000, + 0x8755d16400000000, 0x377cb15900000000, 0xe706111e00000000, + 0x572f712300000000, 0x4958f35800000000, 0xf971936500000000, + 0x290b332200000000, 0x9922531f00000000, 0x89fe73ad00000000, + 0x39d7139000000000, 0xe9adb3d700000000, 0x5984d3ea00000000, + 0x8813836800000000, 0x383ae35500000000, 0xe840431200000000, + 0x5869232f00000000, 0x48b5039d00000000, 0xf89c63a000000000, + 0x28e6c3e700000000, 0x98cfa3da00000000, 0xcbcf133800000000, + 0x7be6730500000000, 0xab9cd34200000000, 0x1bb5b37f00000000, + 0x0b6993cd00000000, 0xbb40f3f000000000, 0x6b3a53b700000000, + 0xdb13338a00000000, 0x0a84630800000000, 0xbaad033500000000, + 0x6ad7a37200000000, 0xdafec34f00000000, 0xca22e3fd00000000, + 0x7a0b83c000000000, 0xaa71238700000000, 0x1a5843ba00000000, + 0x4d77329900000000, 0xfd5e52a400000000, 0x2d24f2e300000000, + 0x9d0d92de00000000, 0x8dd1b26c00000000, 0x3df8d25100000000, + 0xed82721600000000, 0x5dab122b00000000, 0x8c3c42a900000000, + 0x3c15229400000000, 0xec6f82d300000000, 0x5c46e2ee00000000, + 0x4c9ac25c00000000, 0xfcb3a26100000000, 0x2cc9022600000000, + 0x9ce0621b00000000, 0xcfe0d2f900000000, 0x7fc9b2c400000000, + 0xafb3128300000000, 0x1f9a72be00000000, 0x0f46520c00000000, + 0xbf6f323100000000, 0x6f15927600000000, 0xdf3cf24b00000000, + 0x0eaba2c900000000, 0xbe82c2f400000000, 0x6ef862b300000000, + 0xded1028e00000000, 0xce0d223c00000000, 0x7e24420100000000, + 0xae5ee24600000000, 0x1e77827b00000000, 0x92b0e6b100000000, + 0x2299868c00000000, 0xf2e326cb00000000, 0x42ca46f600000000, + 0x5216664400000000, 0xe23f067900000000, 0x3245a63e00000000, + 0x826cc60300000000, 0x53fb968100000000, 0xe3d2f6bc00000000, + 0x33a856fb00000000, 0x838136c600000000, 0x935d167400000000, + 0x2374764900000000, 0xf30ed60e00000000, 0x4327b63300000000, + 0x102706d100000000, 0xa00e66ec00000000, 0x7074c6ab00000000, + 0xc05da69600000000, 0xd081862400000000, 0x60a8e61900000000, + 0xb0d2465e00000000, 0x00fb266300000000, 0xd16c76e100000000, + 0x614516dc00000000, 0xb13fb69b00000000, 0x0116d6a600000000, + 0x11caf61400000000, 0xa1e3962900000000, 0x7199366e00000000, + 0xc1b0565300000000, 0x969f277000000000, 0x26b6474d00000000, + 0xf6cce70a00000000, 0x46e5873700000000, 0x5639a78500000000, + 0xe610c7b800000000, 0x366a67ff00000000, 0x864307c200000000, + 0x57d4574000000000, 0xe7fd377d00000000, 0x3787973a00000000, + 0x87aef70700000000, 0x9772d7b500000000, 0x275bb78800000000, + 0xf72117cf00000000, 0x470877f200000000, 0x1408c71000000000, + 0xa421a72d00000000, 0x745b076a00000000, 0xc472675700000000, + 0xd4ae47e500000000, 0x648727d800000000, 0xb4fd879f00000000, + 0x04d4e7a200000000, 0xd543b72000000000, 0x656ad71d00000000, + 0xb510775a00000000, 0x0539176700000000, 0x15e537d500000000, + 0xa5cc57e800000000, 0x75b6f7af00000000, 0xc59f979200000000, + 0xdbe815e900000000, 0x6bc175d400000000, 0xbbbbd59300000000, + 0x0b92b5ae00000000, 0x1b4e951c00000000, 0xab67f52100000000, + 0x7b1d556600000000, 0xcb34355b00000000, 0x1aa365d900000000, + 0xaa8a05e400000000, 0x7af0a5a300000000, 0xcad9c59e00000000, + 0xda05e52c00000000, 0x6a2c851100000000, 0xba56255600000000, + 0x0a7f456b00000000, 0x597ff58900000000, 0xe95695b400000000, + 0x392c35f300000000, 0x890555ce00000000, 0x99d9757c00000000, + 0x29f0154100000000, 0xf98ab50600000000, 0x49a3d53b00000000, + 0x983485b900000000, 0x281de58400000000, 0xf86745c300000000, + 0x484e25fe00000000, 0x5892054c00000000, 0xe8bb657100000000, + 0x38c1c53600000000, 0x88e8a50b00000000, 0xdfc7d42800000000, + 0x6feeb41500000000, 0xbf94145200000000, 0x0fbd746f00000000, + 0x1f6154dd00000000, 0xaf4834e000000000, 0x7f3294a700000000, + 0xcf1bf49a00000000, 0x1e8ca41800000000, 0xaea5c42500000000, + 0x7edf646200000000, 0xcef6045f00000000, 0xde2a24ed00000000, + 0x6e0344d000000000, 0xbe79e49700000000, 0x0e5084aa00000000, + 0x5d50344800000000, 0xed79547500000000, 0x3d03f43200000000, + 0x8d2a940f00000000, 0x9df6b4bd00000000, 0x2ddfd48000000000, + 0xfda574c700000000, 0x4d8c14fa00000000, 0x9c1b447800000000, + 0x2c32244500000000, 0xfc48840200000000, 0x4c61e43f00000000, + 0x5cbdc48d00000000, 0xec94a4b000000000, 0x3cee04f700000000, + 0x8cc764ca00000000}, + {0x0000000000000000, 0xa5d35ccb00000000, 0x0ba1c84d00000000, + 0xae72948600000000, 0x1642919b00000000, 0xb391cd5000000000, + 0x1de359d600000000, 0xb830051d00000000, 0x6d8253ec00000000, + 0xc8510f2700000000, 0x66239ba100000000, 0xc3f0c76a00000000, + 0x7bc0c27700000000, 0xde139ebc00000000, 0x70610a3a00000000, + 0xd5b256f100000000, 0x9b02d60300000000, 0x3ed18ac800000000, + 0x90a31e4e00000000, 0x3570428500000000, 0x8d40479800000000, + 0x28931b5300000000, 0x86e18fd500000000, 0x2332d31e00000000, + 0xf68085ef00000000, 0x5353d92400000000, 0xfd214da200000000, + 0x58f2116900000000, 0xe0c2147400000000, 0x451148bf00000000, + 0xeb63dc3900000000, 0x4eb080f200000000, 0x3605ac0700000000, + 0x93d6f0cc00000000, 0x3da4644a00000000, 0x9877388100000000, + 0x20473d9c00000000, 0x8594615700000000, 0x2be6f5d100000000, + 0x8e35a91a00000000, 0x5b87ffeb00000000, 0xfe54a32000000000, + 0x502637a600000000, 0xf5f56b6d00000000, 0x4dc56e7000000000, + 0xe81632bb00000000, 0x4664a63d00000000, 0xe3b7faf600000000, + 0xad077a0400000000, 0x08d426cf00000000, 0xa6a6b24900000000, + 0x0375ee8200000000, 0xbb45eb9f00000000, 0x1e96b75400000000, + 0xb0e423d200000000, 0x15377f1900000000, 0xc08529e800000000, + 0x6556752300000000, 0xcb24e1a500000000, 0x6ef7bd6e00000000, + 0xd6c7b87300000000, 0x7314e4b800000000, 0xdd66703e00000000, + 0x78b52cf500000000, 0x6c0a580f00000000, 0xc9d904c400000000, + 0x67ab904200000000, 0xc278cc8900000000, 0x7a48c99400000000, + 0xdf9b955f00000000, 0x71e901d900000000, 0xd43a5d1200000000, + 0x01880be300000000, 0xa45b572800000000, 0x0a29c3ae00000000, + 0xaffa9f6500000000, 0x17ca9a7800000000, 0xb219c6b300000000, + 0x1c6b523500000000, 0xb9b80efe00000000, 0xf7088e0c00000000, + 0x52dbd2c700000000, 0xfca9464100000000, 0x597a1a8a00000000, + 0xe14a1f9700000000, 0x4499435c00000000, 0xeaebd7da00000000, + 0x4f388b1100000000, 0x9a8adde000000000, 0x3f59812b00000000, + 0x912b15ad00000000, 0x34f8496600000000, 0x8cc84c7b00000000, + 0x291b10b000000000, 0x8769843600000000, 0x22bad8fd00000000, + 0x5a0ff40800000000, 0xffdca8c300000000, 0x51ae3c4500000000, + 0xf47d608e00000000, 0x4c4d659300000000, 0xe99e395800000000, + 0x47ecadde00000000, 0xe23ff11500000000, 0x378da7e400000000, + 0x925efb2f00000000, 0x3c2c6fa900000000, 0x99ff336200000000, + 0x21cf367f00000000, 0x841c6ab400000000, 0x2a6efe3200000000, + 0x8fbda2f900000000, 0xc10d220b00000000, 0x64de7ec000000000, + 0xcaacea4600000000, 0x6f7fb68d00000000, 0xd74fb39000000000, + 0x729cef5b00000000, 0xdcee7bdd00000000, 0x793d271600000000, + 0xac8f71e700000000, 0x095c2d2c00000000, 0xa72eb9aa00000000, + 0x02fde56100000000, 0xbacde07c00000000, 0x1f1ebcb700000000, + 0xb16c283100000000, 0x14bf74fa00000000, 0xd814b01e00000000, + 0x7dc7ecd500000000, 0xd3b5785300000000, 0x7666249800000000, + 0xce56218500000000, 0x6b857d4e00000000, 0xc5f7e9c800000000, + 0x6024b50300000000, 0xb596e3f200000000, 0x1045bf3900000000, + 0xbe372bbf00000000, 0x1be4777400000000, 0xa3d4726900000000, + 0x06072ea200000000, 0xa875ba2400000000, 0x0da6e6ef00000000, + 0x4316661d00000000, 0xe6c53ad600000000, 0x48b7ae5000000000, + 0xed64f29b00000000, 0x5554f78600000000, 0xf087ab4d00000000, + 0x5ef53fcb00000000, 0xfb26630000000000, 0x2e9435f100000000, + 0x8b47693a00000000, 0x2535fdbc00000000, 0x80e6a17700000000, + 0x38d6a46a00000000, 0x9d05f8a100000000, 0x33776c2700000000, + 0x96a430ec00000000, 0xee111c1900000000, 0x4bc240d200000000, + 0xe5b0d45400000000, 0x4063889f00000000, 0xf8538d8200000000, + 0x5d80d14900000000, 0xf3f245cf00000000, 0x5621190400000000, + 0x83934ff500000000, 0x2640133e00000000, 0x883287b800000000, + 0x2de1db7300000000, 0x95d1de6e00000000, 0x300282a500000000, + 0x9e70162300000000, 0x3ba34ae800000000, 0x7513ca1a00000000, + 0xd0c096d100000000, 0x7eb2025700000000, 0xdb615e9c00000000, + 0x63515b8100000000, 0xc682074a00000000, 0x68f093cc00000000, + 0xcd23cf0700000000, 0x189199f600000000, 0xbd42c53d00000000, + 0x133051bb00000000, 0xb6e30d7000000000, 0x0ed3086d00000000, + 0xab0054a600000000, 0x0572c02000000000, 0xa0a19ceb00000000, + 0xb41ee81100000000, 0x11cdb4da00000000, 0xbfbf205c00000000, + 0x1a6c7c9700000000, 0xa25c798a00000000, 0x078f254100000000, + 0xa9fdb1c700000000, 0x0c2eed0c00000000, 0xd99cbbfd00000000, + 0x7c4fe73600000000, 0xd23d73b000000000, 0x77ee2f7b00000000, + 0xcfde2a6600000000, 0x6a0d76ad00000000, 0xc47fe22b00000000, + 0x61acbee000000000, 0x2f1c3e1200000000, 0x8acf62d900000000, + 0x24bdf65f00000000, 0x816eaa9400000000, 0x395eaf8900000000, + 0x9c8df34200000000, 0x32ff67c400000000, 0x972c3b0f00000000, + 0x429e6dfe00000000, 0xe74d313500000000, 0x493fa5b300000000, + 0xececf97800000000, 0x54dcfc6500000000, 0xf10fa0ae00000000, + 0x5f7d342800000000, 0xfaae68e300000000, 0x821b441600000000, + 0x27c818dd00000000, 0x89ba8c5b00000000, 0x2c69d09000000000, + 0x9459d58d00000000, 0x318a894600000000, 0x9ff81dc000000000, + 0x3a2b410b00000000, 0xef9917fa00000000, 0x4a4a4b3100000000, + 0xe438dfb700000000, 0x41eb837c00000000, 0xf9db866100000000, + 0x5c08daaa00000000, 0xf27a4e2c00000000, 0x57a912e700000000, + 0x1919921500000000, 0xbccacede00000000, 0x12b85a5800000000, + 0xb76b069300000000, 0x0f5b038e00000000, 0xaa885f4500000000, + 0x04facbc300000000, 0xa129970800000000, 0x749bc1f900000000, + 0xd1489d3200000000, 0x7f3a09b400000000, 0xdae9557f00000000, + 0x62d9506200000000, 0xc70a0ca900000000, 0x6978982f00000000, + 0xccabc4e400000000}, + {0x0000000000000000, 0xb40b77a600000000, 0x29119f9700000000, + 0x9d1ae83100000000, 0x13244ff400000000, 0xa72f385200000000, + 0x3a35d06300000000, 0x8e3ea7c500000000, 0x674eef3300000000, + 0xd345989500000000, 0x4e5f70a400000000, 0xfa54070200000000, + 0x746aa0c700000000, 0xc061d76100000000, 0x5d7b3f5000000000, + 0xe97048f600000000, 0xce9cde6700000000, 0x7a97a9c100000000, + 0xe78d41f000000000, 0x5386365600000000, 0xddb8919300000000, + 0x69b3e63500000000, 0xf4a90e0400000000, 0x40a279a200000000, + 0xa9d2315400000000, 0x1dd946f200000000, 0x80c3aec300000000, + 0x34c8d96500000000, 0xbaf67ea000000000, 0x0efd090600000000, + 0x93e7e13700000000, 0x27ec969100000000, 0x9c39bdcf00000000, + 0x2832ca6900000000, 0xb528225800000000, 0x012355fe00000000, + 0x8f1df23b00000000, 0x3b16859d00000000, 0xa60c6dac00000000, + 0x12071a0a00000000, 0xfb7752fc00000000, 0x4f7c255a00000000, + 0xd266cd6b00000000, 0x666dbacd00000000, 0xe8531d0800000000, + 0x5c586aae00000000, 0xc142829f00000000, 0x7549f53900000000, + 0x52a563a800000000, 0xe6ae140e00000000, 0x7bb4fc3f00000000, + 0xcfbf8b9900000000, 0x41812c5c00000000, 0xf58a5bfa00000000, + 0x6890b3cb00000000, 0xdc9bc46d00000000, 0x35eb8c9b00000000, + 0x81e0fb3d00000000, 0x1cfa130c00000000, 0xa8f164aa00000000, + 0x26cfc36f00000000, 0x92c4b4c900000000, 0x0fde5cf800000000, + 0xbbd52b5e00000000, 0x79750b4400000000, 0xcd7e7ce200000000, + 0x506494d300000000, 0xe46fe37500000000, 0x6a5144b000000000, + 0xde5a331600000000, 0x4340db2700000000, 0xf74bac8100000000, + 0x1e3be47700000000, 0xaa3093d100000000, 0x372a7be000000000, + 0x83210c4600000000, 0x0d1fab8300000000, 0xb914dc2500000000, + 0x240e341400000000, 0x900543b200000000, 0xb7e9d52300000000, + 0x03e2a28500000000, 0x9ef84ab400000000, 0x2af33d1200000000, + 0xa4cd9ad700000000, 0x10c6ed7100000000, 0x8ddc054000000000, + 0x39d772e600000000, 0xd0a73a1000000000, 0x64ac4db600000000, + 0xf9b6a58700000000, 0x4dbdd22100000000, 0xc38375e400000000, + 0x7788024200000000, 0xea92ea7300000000, 0x5e999dd500000000, + 0xe54cb68b00000000, 0x5147c12d00000000, 0xcc5d291c00000000, + 0x78565eba00000000, 0xf668f97f00000000, 0x42638ed900000000, + 0xdf7966e800000000, 0x6b72114e00000000, 0x820259b800000000, + 0x36092e1e00000000, 0xab13c62f00000000, 0x1f18b18900000000, + 0x9126164c00000000, 0x252d61ea00000000, 0xb83789db00000000, + 0x0c3cfe7d00000000, 0x2bd068ec00000000, 0x9fdb1f4a00000000, + 0x02c1f77b00000000, 0xb6ca80dd00000000, 0x38f4271800000000, + 0x8cff50be00000000, 0x11e5b88f00000000, 0xa5eecf2900000000, + 0x4c9e87df00000000, 0xf895f07900000000, 0x658f184800000000, + 0xd1846fee00000000, 0x5fbac82b00000000, 0xebb1bf8d00000000, + 0x76ab57bc00000000, 0xc2a0201a00000000, 0xf2ea168800000000, + 0x46e1612e00000000, 0xdbfb891f00000000, 0x6ff0feb900000000, + 0xe1ce597c00000000, 0x55c52eda00000000, 0xc8dfc6eb00000000, + 0x7cd4b14d00000000, 0x95a4f9bb00000000, 0x21af8e1d00000000, + 0xbcb5662c00000000, 0x08be118a00000000, 0x8680b64f00000000, + 0x328bc1e900000000, 0xaf9129d800000000, 0x1b9a5e7e00000000, + 0x3c76c8ef00000000, 0x887dbf4900000000, 0x1567577800000000, + 0xa16c20de00000000, 0x2f52871b00000000, 0x9b59f0bd00000000, + 0x0643188c00000000, 0xb2486f2a00000000, 0x5b3827dc00000000, + 0xef33507a00000000, 0x7229b84b00000000, 0xc622cfed00000000, + 0x481c682800000000, 0xfc171f8e00000000, 0x610df7bf00000000, + 0xd506801900000000, 0x6ed3ab4700000000, 0xdad8dce100000000, + 0x47c234d000000000, 0xf3c9437600000000, 0x7df7e4b300000000, + 0xc9fc931500000000, 0x54e67b2400000000, 0xe0ed0c8200000000, + 0x099d447400000000, 0xbd9633d200000000, 0x208cdbe300000000, + 0x9487ac4500000000, 0x1ab90b8000000000, 0xaeb27c2600000000, + 0x33a8941700000000, 0x87a3e3b100000000, 0xa04f752000000000, + 0x1444028600000000, 0x895eeab700000000, 0x3d559d1100000000, + 0xb36b3ad400000000, 0x07604d7200000000, 0x9a7aa54300000000, + 0x2e71d2e500000000, 0xc7019a1300000000, 0x730aedb500000000, + 0xee10058400000000, 0x5a1b722200000000, 0xd425d5e700000000, + 0x602ea24100000000, 0xfd344a7000000000, 0x493f3dd600000000, + 0x8b9f1dcc00000000, 0x3f946a6a00000000, 0xa28e825b00000000, + 0x1685f5fd00000000, 0x98bb523800000000, 0x2cb0259e00000000, + 0xb1aacdaf00000000, 0x05a1ba0900000000, 0xecd1f2ff00000000, + 0x58da855900000000, 0xc5c06d6800000000, 0x71cb1ace00000000, + 0xfff5bd0b00000000, 0x4bfecaad00000000, 0xd6e4229c00000000, + 0x62ef553a00000000, 0x4503c3ab00000000, 0xf108b40d00000000, + 0x6c125c3c00000000, 0xd8192b9a00000000, 0x56278c5f00000000, + 0xe22cfbf900000000, 0x7f3613c800000000, 0xcb3d646e00000000, + 0x224d2c9800000000, 0x96465b3e00000000, 0x0b5cb30f00000000, + 0xbf57c4a900000000, 0x3169636c00000000, 0x856214ca00000000, + 0x1878fcfb00000000, 0xac738b5d00000000, 0x17a6a00300000000, + 0xa3add7a500000000, 0x3eb73f9400000000, 0x8abc483200000000, + 0x0482eff700000000, 0xb089985100000000, 0x2d93706000000000, + 0x999807c600000000, 0x70e84f3000000000, 0xc4e3389600000000, + 0x59f9d0a700000000, 0xedf2a70100000000, 0x63cc00c400000000, + 0xd7c7776200000000, 0x4add9f5300000000, 0xfed6e8f500000000, + 0xd93a7e6400000000, 0x6d3109c200000000, 0xf02be1f300000000, + 0x4420965500000000, 0xca1e319000000000, 0x7e15463600000000, + 0xe30fae0700000000, 0x5704d9a100000000, 0xbe74915700000000, + 0x0a7fe6f100000000, 0x97650ec000000000, 0x236e796600000000, + 0xad50dea300000000, 0x195ba90500000000, 0x8441413400000000, + 0x304a369200000000}, + {0x0000000000000000, 0x9e00aacc00000000, 0x7d07254200000000, + 0xe3078f8e00000000, 0xfa0e4a8400000000, 0x640ee04800000000, + 0x87096fc600000000, 0x1909c50a00000000, 0xb51be5d300000000, + 0x2b1b4f1f00000000, 0xc81cc09100000000, 0x561c6a5d00000000, + 0x4f15af5700000000, 0xd115059b00000000, 0x32128a1500000000, + 0xac1220d900000000, 0x2b31bb7c00000000, 0xb53111b000000000, + 0x56369e3e00000000, 0xc83634f200000000, 0xd13ff1f800000000, + 0x4f3f5b3400000000, 0xac38d4ba00000000, 0x32387e7600000000, + 0x9e2a5eaf00000000, 0x002af46300000000, 0xe32d7bed00000000, + 0x7d2dd12100000000, 0x6424142b00000000, 0xfa24bee700000000, + 0x1923316900000000, 0x87239ba500000000, 0x566276f900000000, + 0xc862dc3500000000, 0x2b6553bb00000000, 0xb565f97700000000, + 0xac6c3c7d00000000, 0x326c96b100000000, 0xd16b193f00000000, + 0x4f6bb3f300000000, 0xe379932a00000000, 0x7d7939e600000000, + 0x9e7eb66800000000, 0x007e1ca400000000, 0x1977d9ae00000000, + 0x8777736200000000, 0x6470fcec00000000, 0xfa70562000000000, + 0x7d53cd8500000000, 0xe353674900000000, 0x0054e8c700000000, + 0x9e54420b00000000, 0x875d870100000000, 0x195d2dcd00000000, + 0xfa5aa24300000000, 0x645a088f00000000, 0xc848285600000000, + 0x5648829a00000000, 0xb54f0d1400000000, 0x2b4fa7d800000000, + 0x324662d200000000, 0xac46c81e00000000, 0x4f41479000000000, + 0xd141ed5c00000000, 0xedc29d2900000000, 0x73c237e500000000, + 0x90c5b86b00000000, 0x0ec512a700000000, 0x17ccd7ad00000000, + 0x89cc7d6100000000, 0x6acbf2ef00000000, 0xf4cb582300000000, + 0x58d978fa00000000, 0xc6d9d23600000000, 0x25de5db800000000, + 0xbbdef77400000000, 0xa2d7327e00000000, 0x3cd798b200000000, + 0xdfd0173c00000000, 0x41d0bdf000000000, 0xc6f3265500000000, + 0x58f38c9900000000, 0xbbf4031700000000, 0x25f4a9db00000000, + 0x3cfd6cd100000000, 0xa2fdc61d00000000, 0x41fa499300000000, + 0xdffae35f00000000, 0x73e8c38600000000, 0xede8694a00000000, + 0x0eefe6c400000000, 0x90ef4c0800000000, 0x89e6890200000000, + 0x17e623ce00000000, 0xf4e1ac4000000000, 0x6ae1068c00000000, + 0xbba0ebd000000000, 0x25a0411c00000000, 0xc6a7ce9200000000, + 0x58a7645e00000000, 0x41aea15400000000, 0xdfae0b9800000000, + 0x3ca9841600000000, 0xa2a92eda00000000, 0x0ebb0e0300000000, + 0x90bba4cf00000000, 0x73bc2b4100000000, 0xedbc818d00000000, + 0xf4b5448700000000, 0x6ab5ee4b00000000, 0x89b261c500000000, + 0x17b2cb0900000000, 0x909150ac00000000, 0x0e91fa6000000000, + 0xed9675ee00000000, 0x7396df2200000000, 0x6a9f1a2800000000, + 0xf49fb0e400000000, 0x17983f6a00000000, 0x899895a600000000, + 0x258ab57f00000000, 0xbb8a1fb300000000, 0x588d903d00000000, + 0xc68d3af100000000, 0xdf84fffb00000000, 0x4184553700000000, + 0xa283dab900000000, 0x3c83707500000000, 0xda853b5300000000, + 0x4485919f00000000, 0xa7821e1100000000, 0x3982b4dd00000000, + 0x208b71d700000000, 0xbe8bdb1b00000000, 0x5d8c549500000000, + 0xc38cfe5900000000, 0x6f9ede8000000000, 0xf19e744c00000000, + 0x1299fbc200000000, 0x8c99510e00000000, 0x9590940400000000, + 0x0b903ec800000000, 0xe897b14600000000, 0x76971b8a00000000, + 0xf1b4802f00000000, 0x6fb42ae300000000, 0x8cb3a56d00000000, + 0x12b30fa100000000, 0x0bbacaab00000000, 0x95ba606700000000, + 0x76bdefe900000000, 0xe8bd452500000000, 0x44af65fc00000000, + 0xdaafcf3000000000, 0x39a840be00000000, 0xa7a8ea7200000000, + 0xbea12f7800000000, 0x20a185b400000000, 0xc3a60a3a00000000, + 0x5da6a0f600000000, 0x8ce74daa00000000, 0x12e7e76600000000, + 0xf1e068e800000000, 0x6fe0c22400000000, 0x76e9072e00000000, + 0xe8e9ade200000000, 0x0bee226c00000000, 0x95ee88a000000000, + 0x39fca87900000000, 0xa7fc02b500000000, 0x44fb8d3b00000000, + 0xdafb27f700000000, 0xc3f2e2fd00000000, 0x5df2483100000000, + 0xbef5c7bf00000000, 0x20f56d7300000000, 0xa7d6f6d600000000, + 0x39d65c1a00000000, 0xdad1d39400000000, 0x44d1795800000000, + 0x5dd8bc5200000000, 0xc3d8169e00000000, 0x20df991000000000, + 0xbedf33dc00000000, 0x12cd130500000000, 0x8ccdb9c900000000, + 0x6fca364700000000, 0xf1ca9c8b00000000, 0xe8c3598100000000, + 0x76c3f34d00000000, 0x95c47cc300000000, 0x0bc4d60f00000000, + 0x3747a67a00000000, 0xa9470cb600000000, 0x4a40833800000000, + 0xd44029f400000000, 0xcd49ecfe00000000, 0x5349463200000000, + 0xb04ec9bc00000000, 0x2e4e637000000000, 0x825c43a900000000, + 0x1c5ce96500000000, 0xff5b66eb00000000, 0x615bcc2700000000, + 0x7852092d00000000, 0xe652a3e100000000, 0x05552c6f00000000, + 0x9b5586a300000000, 0x1c761d0600000000, 0x8276b7ca00000000, + 0x6171384400000000, 0xff71928800000000, 0xe678578200000000, + 0x7878fd4e00000000, 0x9b7f72c000000000, 0x057fd80c00000000, + 0xa96df8d500000000, 0x376d521900000000, 0xd46add9700000000, + 0x4a6a775b00000000, 0x5363b25100000000, 0xcd63189d00000000, + 0x2e64971300000000, 0xb0643ddf00000000, 0x6125d08300000000, + 0xff257a4f00000000, 0x1c22f5c100000000, 0x82225f0d00000000, + 0x9b2b9a0700000000, 0x052b30cb00000000, 0xe62cbf4500000000, + 0x782c158900000000, 0xd43e355000000000, 0x4a3e9f9c00000000, + 0xa939101200000000, 0x3739bade00000000, 0x2e307fd400000000, + 0xb030d51800000000, 0x53375a9600000000, 0xcd37f05a00000000, + 0x4a146bff00000000, 0xd414c13300000000, 0x37134ebd00000000, + 0xa913e47100000000, 0xb01a217b00000000, 0x2e1a8bb700000000, + 0xcd1d043900000000, 0x531daef500000000, 0xff0f8e2c00000000, + 0x610f24e000000000, 0x8208ab6e00000000, 0x1c0801a200000000, + 0x0501c4a800000000, 0x9b016e6400000000, 0x7806e1ea00000000, + 0xe6064b2600000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, 0x8f629757, + 0x37def032, 0x256b5fdc, 0x9dd738b9, 0xc5b428ef, 0x7d084f8a, + 0x6fbde064, 0xd7018701, 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, + 0x58631056, 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, + 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, 0x95ad7f70, + 0x2d111815, 0x3fa4b7fb, 0x8718d09e, 0x1acfe827, 0xa2738f42, + 0xb0c620ac, 0x087a47c9, 0xa032af3e, 0x188ec85b, 0x0a3b67b5, + 0xb28700d0, 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, + 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, 0xeae41086, + 0x525877e3, 0x40edd80d, 0xf851bf68, 0xf02bf8a1, 0x48979fc4, + 0x5a22302a, 0xe29e574f, 0x7f496ff6, 0xc7f50893, 0xd540a77d, + 0x6dfcc018, 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, + 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, 0x9b14583d, + 0x23a83f58, 0x311d90b6, 0x89a1f7d3, 0x1476cf6a, 0xaccaa80f, + 0xbe7f07e1, 0x06c36084, 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, + 0x4c15df3c, 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, + 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, 0x446f98f5, + 0xfcd3ff90, 0xee66507e, 0x56da371b, 0x0eb9274d, 0xb6054028, + 0xa4b0efc6, 0x1c0c88a3, 0x81dbb01a, 0x3967d77f, 0x2bd27891, + 0x936e1ff4, 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, + 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, 0xfe92dfec, + 0x462eb889, 0x549b1767, 0xec277002, 0x71f048bb, 0xc94c2fde, + 0xdbf98030, 0x6345e755, 0x6b3fa09c, 0xd383c7f9, 0xc1366817, + 0x798a0f72, 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, + 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, 0x21e91f24, + 0x99557841, 0x8be0d7af, 0x335cb0ca, 0xed59b63b, 0x55e5d15e, + 0x47507eb0, 0xffec19d5, 0x623b216c, 0xda874609, 0xc832e9e7, + 0x708e8e82, 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, + 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, 0xbd40e1a4, + 0x05fc86c1, 0x1749292f, 0xaff54e4a, 0x322276f3, 0x8a9e1196, + 0x982bbe78, 0x2097d91d, 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, + 0x6a4166a5, 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, + 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, 0xc2098e52, + 0x7ab5e937, 0x680046d9, 0xd0bc21bc, 0x88df31ea, 0x3063568f, + 0x22d6f961, 0x9a6a9e04, 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, + 0x15080953, 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, + 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, 0xd8c66675, + 0x607a0110, 0x72cfaefe, 0xca73c99b, 0x57a4f122, 0xef189647, + 0xfdad39a9, 0x45115ecc, 0x764dee06, 0xcef18963, 0xdc44268d, + 0x64f841e8, 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, + 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, 0x3c9b51be, + 0x842736db, 0x96929935, 0x2e2efe50, 0x2654b999, 0x9ee8defc, + 0x8c5d7112, 0x34e11677, 0xa9362ece, 0x118a49ab, 0x033fe645, + 0xbb838120, 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, + 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, 0xd67f4138, + 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, 0x591dd66f, 0xe1a1b10a, + 0xf3141ee4, 0x4ba87981, 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, + 0x017ec639, 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, + 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, 0x090481f0, + 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, 0x43d23e48, 0xfb6e592d, + 0xe9dbf6c3, 0x516791a6, 0xccb0a91f, 0x740cce7a, 0x66b96194, + 0xde0506f1}, + {0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, 0x0709a8dc, + 0x06cbc2eb, 0x048d7cb2, 0x054f1685, 0x0e1351b8, 0x0fd13b8f, + 0x0d9785d6, 0x0c55efe1, 0x091af964, 0x08d89353, 0x0a9e2d0a, + 0x0b5c473d, 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, + 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, 0x1235f2c8, + 0x13f798ff, 0x11b126a6, 0x10734c91, 0x153c5a14, 0x14fe3023, + 0x16b88e7a, 0x177ae44d, 0x384d46e0, 0x398f2cd7, 0x3bc9928e, + 0x3a0bf8b9, 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, + 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, 0x3157bf84, + 0x3095d5b3, 0x32d36bea, 0x331101dd, 0x246be590, 0x25a98fa7, + 0x27ef31fe, 0x262d5bc9, 0x23624d4c, 0x22a0277b, 0x20e69922, + 0x2124f315, 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, + 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, 0x709a8dc0, + 0x7158e7f7, 0x731e59ae, 0x72dc3399, 0x7793251c, 0x76514f2b, + 0x7417f172, 0x75d59b45, 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, + 0x7ccf6221, 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, + 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, 0x6bb5866c, + 0x6a77ec5b, 0x68315202, 0x69f33835, 0x62af7f08, 0x636d153f, + 0x612bab66, 0x60e9c151, 0x65a6d7d4, 0x6464bde3, 0x662203ba, + 0x67e0698d, 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, + 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, 0x46c49a98, + 0x4706f0af, 0x45404ef6, 0x448224c1, 0x41cd3244, 0x400f5873, + 0x4249e62a, 0x438b8c1d, 0x54f16850, 0x55330267, 0x5775bc3e, + 0x56b7d609, 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, + 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, 0x5deb9134, + 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, 0xe1351b80, 0xe0f771b7, + 0xe2b1cfee, 0xe373a5d9, 0xe63cb35c, 0xe7fed96b, 0xe5b86732, + 0xe47a0d05, 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, + 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, 0xfd13b8f0, + 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, 0xfa1a102c, 0xfbd87a1b, + 0xf99ec442, 0xf85cae75, 0xf300e948, 0xf2c2837f, 0xf0843d26, + 0xf1465711, 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, + 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, 0xde71f5bc, + 0xdfb39f8b, 0xddf521d2, 0xdc374be5, 0xd76b0cd8, 0xd6a966ef, + 0xd4efd8b6, 0xd52db281, 0xd062a404, 0xd1a0ce33, 0xd3e6706a, + 0xd2241a5d, 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, + 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, 0xcb4dafa8, + 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, 0xcc440774, 0xcd866d43, + 0xcfc0d31a, 0xce02b92d, 0x91af9640, 0x906dfc77, 0x922b422e, + 0x93e92819, 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, + 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, 0x98b56f24, + 0x99770513, 0x9b31bb4a, 0x9af3d17d, 0x8d893530, 0x8c4b5f07, + 0x8e0de15e, 0x8fcf8b69, 0x8a809dec, 0x8b42f7db, 0x89044982, + 0x88c623b5, 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, + 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, 0xa9e2d0a0, + 0xa820ba97, 0xaa6604ce, 0xaba46ef9, 0xaeeb787c, 0xaf29124b, + 0xad6fac12, 0xacadc625, 0xa7f18118, 0xa633eb2f, 0xa4755576, + 0xa5b73f41, 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, + 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, 0xb2cddb0c, + 0xb30fb13b, 0xb1490f62, 0xb08b6555, 0xbbd72268, 0xba15485f, + 0xb853f606, 0xb9919c31, 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, + 0xbe9834ed}, + {0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, 0x646cc504, + 0x7d77f445, 0x565aa786, 0x4f4196c7, 0xc8d98a08, 0xd1c2bb49, + 0xfaefe88a, 0xe3f4d9cb, 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, + 0x87981ccf, 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, + 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, 0x821b9859, + 0x9b00a918, 0xb02dfadb, 0xa936cb9a, 0xe6775d5d, 0xff6c6c1c, + 0xd4413fdf, 0xcd5a0e9e, 0x958424a2, 0x8c9f15e3, 0xa7b24620, + 0xbea97761, 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, + 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, 0x39316bae, + 0x202a5aef, 0x0b07092c, 0x121c386d, 0xdf4636f3, 0xc65d07b2, + 0xed705471, 0xf46b6530, 0xbb2af3f7, 0xa231c2b6, 0x891c9175, + 0x9007a034, 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, + 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, 0xf0794f05, + 0xe9627e44, 0xc24f2d87, 0xdb541cc6, 0x94158a01, 0x8d0ebb40, + 0xa623e883, 0xbf38d9c2, 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, + 0x138d96ce, 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, + 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, 0xded79850, + 0xc7cca911, 0xece1fad2, 0xf5facb93, 0x7262d75c, 0x6b79e61d, + 0x4054b5de, 0x594f849f, 0x160e1258, 0x0f152319, 0x243870da, + 0x3d23419b, 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, + 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, 0xad24e1af, + 0xb43fd0ee, 0x9f12832d, 0x8609b26c, 0xc94824ab, 0xd05315ea, + 0xfb7e4629, 0xe2657768, 0x2f3f79f6, 0x362448b7, 0x1d091b74, + 0x04122a35, 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, + 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, 0x838a36fa, + 0x9a9107bb, 0xb1bc5478, 0xa8a76539, 0x3b83984b, 0x2298a90a, + 0x09b5fac9, 0x10aecb88, 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, + 0x74c20e8c, 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, + 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, 0x71418a1a, + 0x685abb5b, 0x4377e898, 0x5a6cd9d9, 0x152d4f1e, 0x0c367e5f, + 0x271b2d9c, 0x3e001cdd, 0xb9980012, 0xa0833153, 0x8bae6290, + 0x92b553d1, 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, + 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, 0xca6b79ed, + 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, 0x66de36e1, 0x7fc507a0, + 0x54e85463, 0x4df36522, 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, + 0x299fa026, 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, + 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, 0x2c1c24b0, + 0x350715f1, 0x1e2a4632, 0x07317773, 0x4870e1b4, 0x516bd0f5, + 0x7a468336, 0x635db277, 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, + 0xe0d7848d, 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, + 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, 0x674f9842, + 0x7e54a903, 0x5579fac0, 0x4c62cb81, 0x8138c51f, 0x9823f45e, + 0xb30ea79d, 0xaa1596dc, 0xe554001b, 0xfc4f315a, 0xd7626299, + 0xce7953d8, 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, + 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, 0x5e7ef3ec, + 0x4765c2ad, 0x6c48916e, 0x7553a02f, 0x3a1236e8, 0x230907a9, + 0x0824546a, 0x113f652b, 0x96a779e4, 0x8fbc48a5, 0xa4911b66, + 0xbd8a2a27, 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, + 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, 0x70d024b9, + 0x69cb15f8, 0x42e6463b, 0x5bfd777a, 0xdc656bb5, 0xc57e5af4, + 0xee530937, 0xf7483876, 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, + 0x9324fd72}, + {0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x96300777, 0x2c610eee, 0xba510999, 0x19c46d07, + 0x8ff46a70, 0x35a563e9, 0xa395649e, 0x3288db0e, 0xa4b8dc79, + 0x1ee9d5e0, 0x88d9d297, 0x2b4cb609, 0xbd7cb17e, 0x072db8e7, + 0x911dbf90, 0x6410b71d, 0xf220b06a, 0x4871b9f3, 0xde41be84, + 0x7dd4da1a, 0xebe4dd6d, 0x51b5d4f4, 0xc785d383, 0x56986c13, + 0xc0a86b64, 0x7af962fd, 0xecc9658a, 0x4f5c0114, 0xd96c0663, + 0x633d0ffa, 0xf50d088d, 0xc8206e3b, 0x5e10694c, 0xe44160d5, + 0x727167a2, 0xd1e4033c, 0x47d4044b, 0xfd850dd2, 0x6bb50aa5, + 0xfaa8b535, 0x6c98b242, 0xd6c9bbdb, 0x40f9bcac, 0xe36cd832, + 0x755cdf45, 0xcf0dd6dc, 0x593dd1ab, 0xac30d926, 0x3a00de51, + 0x8051d7c8, 0x1661d0bf, 0xb5f4b421, 0x23c4b356, 0x9995bacf, + 0x0fa5bdb8, 0x9eb80228, 0x0888055f, 0xb2d90cc6, 0x24e90bb1, + 0x877c6f2f, 0x114c6858, 0xab1d61c1, 0x3d2d66b6, 0x9041dc76, + 0x0671db01, 0xbc20d298, 0x2a10d5ef, 0x8985b171, 0x1fb5b606, + 0xa5e4bf9f, 0x33d4b8e8, 0xa2c90778, 0x34f9000f, 0x8ea80996, + 0x18980ee1, 0xbb0d6a7f, 0x2d3d6d08, 0x976c6491, 0x015c63e6, + 0xf4516b6b, 0x62616c1c, 0xd8306585, 0x4e0062f2, 0xed95066c, + 0x7ba5011b, 0xc1f40882, 0x57c40ff5, 0xc6d9b065, 0x50e9b712, + 0xeab8be8b, 0x7c88b9fc, 0xdf1ddd62, 0x492dda15, 0xf37cd38c, + 0x654cd4fb, 0x5861b24d, 0xce51b53a, 0x7400bca3, 0xe230bbd4, + 0x41a5df4a, 0xd795d83d, 0x6dc4d1a4, 0xfbf4d6d3, 0x6ae96943, + 0xfcd96e34, 0x468867ad, 0xd0b860da, 0x732d0444, 0xe51d0333, + 0x5f4c0aaa, 0xc97c0ddd, 0x3c710550, 0xaa410227, 0x10100bbe, + 0x86200cc9, 0x25b56857, 0xb3856f20, 0x09d466b9, 0x9fe461ce, + 0x0ef9de5e, 0x98c9d929, 0x2298d0b0, 0xb4a8d7c7, 0x173db359, + 0x810db42e, 0x3b5cbdb7, 0xad6cbac0, 0x2083b8ed, 0xb6b3bf9a, + 0x0ce2b603, 0x9ad2b174, 0x3947d5ea, 0xaf77d29d, 0x1526db04, + 0x8316dc73, 0x120b63e3, 0x843b6494, 0x3e6a6d0d, 0xa85a6a7a, + 0x0bcf0ee4, 0x9dff0993, 0x27ae000a, 0xb19e077d, 0x44930ff0, + 0xd2a30887, 0x68f2011e, 0xfec20669, 0x5d5762f7, 0xcb676580, + 0x71366c19, 0xe7066b6e, 0x761bd4fe, 0xe02bd389, 0x5a7ada10, + 0xcc4add67, 0x6fdfb9f9, 0xf9efbe8e, 0x43beb717, 0xd58eb060, + 0xe8a3d6d6, 0x7e93d1a1, 0xc4c2d838, 0x52f2df4f, 0xf167bbd1, + 0x6757bca6, 0xdd06b53f, 0x4b36b248, 0xda2b0dd8, 0x4c1b0aaf, + 0xf64a0336, 0x607a0441, 0xc3ef60df, 0x55df67a8, 0xef8e6e31, + 0x79be6946, 0x8cb361cb, 0x1a8366bc, 0xa0d26f25, 0x36e26852, + 0x95770ccc, 0x03470bbb, 0xb9160222, 0x2f260555, 0xbe3bbac5, + 0x280bbdb2, 0x925ab42b, 0x046ab35c, 0xa7ffd7c2, 0x31cfd0b5, + 0x8b9ed92c, 0x1daede5b, 0xb0c2649b, 0x26f263ec, 0x9ca36a75, + 0x0a936d02, 0xa906099c, 0x3f360eeb, 0x85670772, 0x13570005, + 0x824abf95, 0x147ab8e2, 0xae2bb17b, 0x381bb60c, 0x9b8ed292, + 0x0dbed5e5, 0xb7efdc7c, 0x21dfdb0b, 0xd4d2d386, 0x42e2d4f1, + 0xf8b3dd68, 0x6e83da1f, 0xcd16be81, 0x5b26b9f6, 0xe177b06f, + 0x7747b718, 0xe65a0888, 0x706a0fff, 0xca3b0666, 0x5c0b0111, + 0xff9e658f, 0x69ae62f8, 0xd3ff6b61, 0x45cf6c16, 0x78e20aa0, + 0xeed20dd7, 0x5483044e, 0xc2b30339, 0x612667a7, 0xf71660d0, + 0x4d476949, 0xdb776e3e, 0x4a6ad1ae, 0xdc5ad6d9, 0x660bdf40, + 0xf03bd837, 0x53aebca9, 0xc59ebbde, 0x7fcfb247, 0xe9ffb530, + 0x1cf2bdbd, 0x8ac2baca, 0x3093b353, 0xa6a3b424, 0x0536d0ba, + 0x9306d7cd, 0x2957de54, 0xbf67d923, 0x2e7a66b3, 0xb84a61c4, + 0x021b685d, 0x942b6f2a, 0x37be0bb4, 0xa18e0cc3, 0x1bdf055a, + 0x8def022d}, + {0x00000000, 0x41311b19, 0x82623632, 0xc3532d2b, 0x04c56c64, + 0x45f4777d, 0x86a75a56, 0xc796414f, 0x088ad9c8, 0x49bbc2d1, + 0x8ae8effa, 0xcbd9f4e3, 0x0c4fb5ac, 0x4d7eaeb5, 0x8e2d839e, + 0xcf1c9887, 0x5112c24a, 0x1023d953, 0xd370f478, 0x9241ef61, + 0x55d7ae2e, 0x14e6b537, 0xd7b5981c, 0x96848305, 0x59981b82, + 0x18a9009b, 0xdbfa2db0, 0x9acb36a9, 0x5d5d77e6, 0x1c6c6cff, + 0xdf3f41d4, 0x9e0e5acd, 0xa2248495, 0xe3159f8c, 0x2046b2a7, + 0x6177a9be, 0xa6e1e8f1, 0xe7d0f3e8, 0x2483dec3, 0x65b2c5da, + 0xaaae5d5d, 0xeb9f4644, 0x28cc6b6f, 0x69fd7076, 0xae6b3139, + 0xef5a2a20, 0x2c09070b, 0x6d381c12, 0xf33646df, 0xb2075dc6, + 0x715470ed, 0x30656bf4, 0xf7f32abb, 0xb6c231a2, 0x75911c89, + 0x34a00790, 0xfbbc9f17, 0xba8d840e, 0x79dea925, 0x38efb23c, + 0xff79f373, 0xbe48e86a, 0x7d1bc541, 0x3c2ade58, 0x054f79f0, + 0x447e62e9, 0x872d4fc2, 0xc61c54db, 0x018a1594, 0x40bb0e8d, + 0x83e823a6, 0xc2d938bf, 0x0dc5a038, 0x4cf4bb21, 0x8fa7960a, + 0xce968d13, 0x0900cc5c, 0x4831d745, 0x8b62fa6e, 0xca53e177, + 0x545dbbba, 0x156ca0a3, 0xd63f8d88, 0x970e9691, 0x5098d7de, + 0x11a9ccc7, 0xd2fae1ec, 0x93cbfaf5, 0x5cd76272, 0x1de6796b, + 0xdeb55440, 0x9f844f59, 0x58120e16, 0x1923150f, 0xda703824, + 0x9b41233d, 0xa76bfd65, 0xe65ae67c, 0x2509cb57, 0x6438d04e, + 0xa3ae9101, 0xe29f8a18, 0x21cca733, 0x60fdbc2a, 0xafe124ad, + 0xeed03fb4, 0x2d83129f, 0x6cb20986, 0xab2448c9, 0xea1553d0, + 0x29467efb, 0x687765e2, 0xf6793f2f, 0xb7482436, 0x741b091d, + 0x352a1204, 0xf2bc534b, 0xb38d4852, 0x70de6579, 0x31ef7e60, + 0xfef3e6e7, 0xbfc2fdfe, 0x7c91d0d5, 0x3da0cbcc, 0xfa368a83, + 0xbb07919a, 0x7854bcb1, 0x3965a7a8, 0x4b98833b, 0x0aa99822, + 0xc9fab509, 0x88cbae10, 0x4f5def5f, 0x0e6cf446, 0xcd3fd96d, + 0x8c0ec274, 0x43125af3, 0x022341ea, 0xc1706cc1, 0x804177d8, + 0x47d73697, 0x06e62d8e, 0xc5b500a5, 0x84841bbc, 0x1a8a4171, + 0x5bbb5a68, 0x98e87743, 0xd9d96c5a, 0x1e4f2d15, 0x5f7e360c, + 0x9c2d1b27, 0xdd1c003e, 0x120098b9, 0x533183a0, 0x9062ae8b, + 0xd153b592, 0x16c5f4dd, 0x57f4efc4, 0x94a7c2ef, 0xd596d9f6, + 0xe9bc07ae, 0xa88d1cb7, 0x6bde319c, 0x2aef2a85, 0xed796bca, + 0xac4870d3, 0x6f1b5df8, 0x2e2a46e1, 0xe136de66, 0xa007c57f, + 0x6354e854, 0x2265f34d, 0xe5f3b202, 0xa4c2a91b, 0x67918430, + 0x26a09f29, 0xb8aec5e4, 0xf99fdefd, 0x3accf3d6, 0x7bfde8cf, + 0xbc6ba980, 0xfd5ab299, 0x3e099fb2, 0x7f3884ab, 0xb0241c2c, + 0xf1150735, 0x32462a1e, 0x73773107, 0xb4e17048, 0xf5d06b51, + 0x3683467a, 0x77b25d63, 0x4ed7facb, 0x0fe6e1d2, 0xccb5ccf9, + 0x8d84d7e0, 0x4a1296af, 0x0b238db6, 0xc870a09d, 0x8941bb84, + 0x465d2303, 0x076c381a, 0xc43f1531, 0x850e0e28, 0x42984f67, + 0x03a9547e, 0xc0fa7955, 0x81cb624c, 0x1fc53881, 0x5ef42398, + 0x9da70eb3, 0xdc9615aa, 0x1b0054e5, 0x5a314ffc, 0x996262d7, + 0xd85379ce, 0x174fe149, 0x567efa50, 0x952dd77b, 0xd41ccc62, + 0x138a8d2d, 0x52bb9634, 0x91e8bb1f, 0xd0d9a006, 0xecf37e5e, + 0xadc26547, 0x6e91486c, 0x2fa05375, 0xe836123a, 0xa9070923, + 0x6a542408, 0x2b653f11, 0xe479a796, 0xa548bc8f, 0x661b91a4, + 0x272a8abd, 0xe0bccbf2, 0xa18dd0eb, 0x62defdc0, 0x23efe6d9, + 0xbde1bc14, 0xfcd0a70d, 0x3f838a26, 0x7eb2913f, 0xb924d070, + 0xf815cb69, 0x3b46e642, 0x7a77fd5b, 0xb56b65dc, 0xf45a7ec5, + 0x370953ee, 0x763848f7, 0xb1ae09b8, 0xf09f12a1, 0x33cc3f8a, + 0x72fd2493}, + {0x00000000, 0x376ac201, 0x6ed48403, 0x59be4602, 0xdca80907, + 0xebc2cb06, 0xb27c8d04, 0x85164f05, 0xb851130e, 0x8f3bd10f, + 0xd685970d, 0xe1ef550c, 0x64f91a09, 0x5393d808, 0x0a2d9e0a, + 0x3d475c0b, 0x70a3261c, 0x47c9e41d, 0x1e77a21f, 0x291d601e, + 0xac0b2f1b, 0x9b61ed1a, 0xc2dfab18, 0xf5b56919, 0xc8f23512, + 0xff98f713, 0xa626b111, 0x914c7310, 0x145a3c15, 0x2330fe14, + 0x7a8eb816, 0x4de47a17, 0xe0464d38, 0xd72c8f39, 0x8e92c93b, + 0xb9f80b3a, 0x3cee443f, 0x0b84863e, 0x523ac03c, 0x6550023d, + 0x58175e36, 0x6f7d9c37, 0x36c3da35, 0x01a91834, 0x84bf5731, + 0xb3d59530, 0xea6bd332, 0xdd011133, 0x90e56b24, 0xa78fa925, + 0xfe31ef27, 0xc95b2d26, 0x4c4d6223, 0x7b27a022, 0x2299e620, + 0x15f32421, 0x28b4782a, 0x1fdeba2b, 0x4660fc29, 0x710a3e28, + 0xf41c712d, 0xc376b32c, 0x9ac8f52e, 0xada2372f, 0xc08d9a70, + 0xf7e75871, 0xae591e73, 0x9933dc72, 0x1c259377, 0x2b4f5176, + 0x72f11774, 0x459bd575, 0x78dc897e, 0x4fb64b7f, 0x16080d7d, + 0x2162cf7c, 0xa4748079, 0x931e4278, 0xcaa0047a, 0xfdcac67b, + 0xb02ebc6c, 0x87447e6d, 0xdefa386f, 0xe990fa6e, 0x6c86b56b, + 0x5bec776a, 0x02523168, 0x3538f369, 0x087faf62, 0x3f156d63, + 0x66ab2b61, 0x51c1e960, 0xd4d7a665, 0xe3bd6464, 0xba032266, + 0x8d69e067, 0x20cbd748, 0x17a11549, 0x4e1f534b, 0x7975914a, + 0xfc63de4f, 0xcb091c4e, 0x92b75a4c, 0xa5dd984d, 0x989ac446, + 0xaff00647, 0xf64e4045, 0xc1248244, 0x4432cd41, 0x73580f40, + 0x2ae64942, 0x1d8c8b43, 0x5068f154, 0x67023355, 0x3ebc7557, + 0x09d6b756, 0x8cc0f853, 0xbbaa3a52, 0xe2147c50, 0xd57ebe51, + 0xe839e25a, 0xdf53205b, 0x86ed6659, 0xb187a458, 0x3491eb5d, + 0x03fb295c, 0x5a456f5e, 0x6d2fad5f, 0x801b35e1, 0xb771f7e0, + 0xeecfb1e2, 0xd9a573e3, 0x5cb33ce6, 0x6bd9fee7, 0x3267b8e5, + 0x050d7ae4, 0x384a26ef, 0x0f20e4ee, 0x569ea2ec, 0x61f460ed, + 0xe4e22fe8, 0xd388ede9, 0x8a36abeb, 0xbd5c69ea, 0xf0b813fd, + 0xc7d2d1fc, 0x9e6c97fe, 0xa90655ff, 0x2c101afa, 0x1b7ad8fb, + 0x42c49ef9, 0x75ae5cf8, 0x48e900f3, 0x7f83c2f2, 0x263d84f0, + 0x115746f1, 0x944109f4, 0xa32bcbf5, 0xfa958df7, 0xcdff4ff6, + 0x605d78d9, 0x5737bad8, 0x0e89fcda, 0x39e33edb, 0xbcf571de, + 0x8b9fb3df, 0xd221f5dd, 0xe54b37dc, 0xd80c6bd7, 0xef66a9d6, + 0xb6d8efd4, 0x81b22dd5, 0x04a462d0, 0x33cea0d1, 0x6a70e6d3, + 0x5d1a24d2, 0x10fe5ec5, 0x27949cc4, 0x7e2adac6, 0x494018c7, + 0xcc5657c2, 0xfb3c95c3, 0xa282d3c1, 0x95e811c0, 0xa8af4dcb, + 0x9fc58fca, 0xc67bc9c8, 0xf1110bc9, 0x740744cc, 0x436d86cd, + 0x1ad3c0cf, 0x2db902ce, 0x4096af91, 0x77fc6d90, 0x2e422b92, + 0x1928e993, 0x9c3ea696, 0xab546497, 0xf2ea2295, 0xc580e094, + 0xf8c7bc9f, 0xcfad7e9e, 0x9613389c, 0xa179fa9d, 0x246fb598, + 0x13057799, 0x4abb319b, 0x7dd1f39a, 0x3035898d, 0x075f4b8c, + 0x5ee10d8e, 0x698bcf8f, 0xec9d808a, 0xdbf7428b, 0x82490489, + 0xb523c688, 0x88649a83, 0xbf0e5882, 0xe6b01e80, 0xd1dadc81, + 0x54cc9384, 0x63a65185, 0x3a181787, 0x0d72d586, 0xa0d0e2a9, + 0x97ba20a8, 0xce0466aa, 0xf96ea4ab, 0x7c78ebae, 0x4b1229af, + 0x12ac6fad, 0x25c6adac, 0x1881f1a7, 0x2feb33a6, 0x765575a4, + 0x413fb7a5, 0xc429f8a0, 0xf3433aa1, 0xaafd7ca3, 0x9d97bea2, + 0xd073c4b5, 0xe71906b4, 0xbea740b6, 0x89cd82b7, 0x0cdbcdb2, + 0x3bb10fb3, 0x620f49b1, 0x55658bb0, 0x6822d7bb, 0x5f4815ba, + 0x06f653b8, 0x319c91b9, 0xb48adebc, 0x83e01cbd, 0xda5e5abf, + 0xed3498be}, + {0x00000000, 0x6567bcb8, 0x8bc809aa, 0xeeafb512, 0x5797628f, + 0x32f0de37, 0xdc5f6b25, 0xb938d79d, 0xef28b4c5, 0x8a4f087d, + 0x64e0bd6f, 0x018701d7, 0xb8bfd64a, 0xddd86af2, 0x3377dfe0, + 0x56106358, 0x9f571950, 0xfa30a5e8, 0x149f10fa, 0x71f8ac42, + 0xc8c07bdf, 0xada7c767, 0x43087275, 0x266fcecd, 0x707fad95, + 0x1518112d, 0xfbb7a43f, 0x9ed01887, 0x27e8cf1a, 0x428f73a2, + 0xac20c6b0, 0xc9477a08, 0x3eaf32a0, 0x5bc88e18, 0xb5673b0a, + 0xd00087b2, 0x6938502f, 0x0c5fec97, 0xe2f05985, 0x8797e53d, + 0xd1878665, 0xb4e03add, 0x5a4f8fcf, 0x3f283377, 0x8610e4ea, + 0xe3775852, 0x0dd8ed40, 0x68bf51f8, 0xa1f82bf0, 0xc49f9748, + 0x2a30225a, 0x4f579ee2, 0xf66f497f, 0x9308f5c7, 0x7da740d5, + 0x18c0fc6d, 0x4ed09f35, 0x2bb7238d, 0xc518969f, 0xa07f2a27, + 0x1947fdba, 0x7c204102, 0x928ff410, 0xf7e848a8, 0x3d58149b, + 0x583fa823, 0xb6901d31, 0xd3f7a189, 0x6acf7614, 0x0fa8caac, + 0xe1077fbe, 0x8460c306, 0xd270a05e, 0xb7171ce6, 0x59b8a9f4, + 0x3cdf154c, 0x85e7c2d1, 0xe0807e69, 0x0e2fcb7b, 0x6b4877c3, + 0xa20f0dcb, 0xc768b173, 0x29c70461, 0x4ca0b8d9, 0xf5986f44, + 0x90ffd3fc, 0x7e5066ee, 0x1b37da56, 0x4d27b90e, 0x284005b6, + 0xc6efb0a4, 0xa3880c1c, 0x1ab0db81, 0x7fd76739, 0x9178d22b, + 0xf41f6e93, 0x03f7263b, 0x66909a83, 0x883f2f91, 0xed589329, + 0x546044b4, 0x3107f80c, 0xdfa84d1e, 0xbacff1a6, 0xecdf92fe, + 0x89b82e46, 0x67179b54, 0x027027ec, 0xbb48f071, 0xde2f4cc9, + 0x3080f9db, 0x55e74563, 0x9ca03f6b, 0xf9c783d3, 0x176836c1, + 0x720f8a79, 0xcb375de4, 0xae50e15c, 0x40ff544e, 0x2598e8f6, + 0x73888bae, 0x16ef3716, 0xf8408204, 0x9d273ebc, 0x241fe921, + 0x41785599, 0xafd7e08b, 0xcab05c33, 0x3bb659ed, 0x5ed1e555, + 0xb07e5047, 0xd519ecff, 0x6c213b62, 0x094687da, 0xe7e932c8, + 0x828e8e70, 0xd49eed28, 0xb1f95190, 0x5f56e482, 0x3a31583a, + 0x83098fa7, 0xe66e331f, 0x08c1860d, 0x6da63ab5, 0xa4e140bd, + 0xc186fc05, 0x2f294917, 0x4a4ef5af, 0xf3762232, 0x96119e8a, + 0x78be2b98, 0x1dd99720, 0x4bc9f478, 0x2eae48c0, 0xc001fdd2, + 0xa566416a, 0x1c5e96f7, 0x79392a4f, 0x97969f5d, 0xf2f123e5, + 0x05196b4d, 0x607ed7f5, 0x8ed162e7, 0xebb6de5f, 0x528e09c2, + 0x37e9b57a, 0xd9460068, 0xbc21bcd0, 0xea31df88, 0x8f566330, + 0x61f9d622, 0x049e6a9a, 0xbda6bd07, 0xd8c101bf, 0x366eb4ad, + 0x53090815, 0x9a4e721d, 0xff29cea5, 0x11867bb7, 0x74e1c70f, + 0xcdd91092, 0xa8beac2a, 0x46111938, 0x2376a580, 0x7566c6d8, + 0x10017a60, 0xfeaecf72, 0x9bc973ca, 0x22f1a457, 0x479618ef, + 0xa939adfd, 0xcc5e1145, 0x06ee4d76, 0x6389f1ce, 0x8d2644dc, + 0xe841f864, 0x51792ff9, 0x341e9341, 0xdab12653, 0xbfd69aeb, + 0xe9c6f9b3, 0x8ca1450b, 0x620ef019, 0x07694ca1, 0xbe519b3c, + 0xdb362784, 0x35999296, 0x50fe2e2e, 0x99b95426, 0xfcdee89e, + 0x12715d8c, 0x7716e134, 0xce2e36a9, 0xab498a11, 0x45e63f03, + 0x208183bb, 0x7691e0e3, 0x13f65c5b, 0xfd59e949, 0x983e55f1, + 0x2106826c, 0x44613ed4, 0xaace8bc6, 0xcfa9377e, 0x38417fd6, + 0x5d26c36e, 0xb389767c, 0xd6eecac4, 0x6fd61d59, 0x0ab1a1e1, + 0xe41e14f3, 0x8179a84b, 0xd769cb13, 0xb20e77ab, 0x5ca1c2b9, + 0x39c67e01, 0x80fea99c, 0xe5991524, 0x0b36a036, 0x6e511c8e, + 0xa7166686, 0xc271da3e, 0x2cde6f2c, 0x49b9d394, 0xf0810409, + 0x95e6b8b1, 0x7b490da3, 0x1e2eb11b, 0x483ed243, 0x2d596efb, + 0xc3f6dbe9, 0xa6916751, 0x1fa9b0cc, 0x7ace0c74, 0x9461b966, + 0xf10605de}}; + +#endif + +#endif + +#if N == 2 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xae689191, 0x87a02563, 0x29c8b4f2, 0xd4314c87, + 0x7a59dd16, 0x539169e4, 0xfdf9f875, 0x73139f4f, 0xdd7b0ede, + 0xf4b3ba2c, 0x5adb2bbd, 0xa722d3c8, 0x094a4259, 0x2082f6ab, + 0x8eea673a, 0xe6273e9e, 0x484faf0f, 0x61871bfd, 0xcfef8a6c, + 0x32167219, 0x9c7ee388, 0xb5b6577a, 0x1bdec6eb, 0x9534a1d1, + 0x3b5c3040, 0x129484b2, 0xbcfc1523, 0x4105ed56, 0xef6d7cc7, + 0xc6a5c835, 0x68cd59a4, 0x173f7b7d, 0xb957eaec, 0x909f5e1e, + 0x3ef7cf8f, 0xc30e37fa, 0x6d66a66b, 0x44ae1299, 0xeac68308, + 0x642ce432, 0xca4475a3, 0xe38cc151, 0x4de450c0, 0xb01da8b5, + 0x1e753924, 0x37bd8dd6, 0x99d51c47, 0xf11845e3, 0x5f70d472, + 0x76b86080, 0xd8d0f111, 0x25290964, 0x8b4198f5, 0xa2892c07, + 0x0ce1bd96, 0x820bdaac, 0x2c634b3d, 0x05abffcf, 0xabc36e5e, + 0x563a962b, 0xf85207ba, 0xd19ab348, 0x7ff222d9, 0x2e7ef6fa, + 0x8016676b, 0xa9ded399, 0x07b64208, 0xfa4fba7d, 0x54272bec, + 0x7def9f1e, 0xd3870e8f, 0x5d6d69b5, 0xf305f824, 0xdacd4cd6, + 0x74a5dd47, 0x895c2532, 0x2734b4a3, 0x0efc0051, 0xa09491c0, + 0xc859c864, 0x663159f5, 0x4ff9ed07, 0xe1917c96, 0x1c6884e3, + 0xb2001572, 0x9bc8a180, 0x35a03011, 0xbb4a572b, 0x1522c6ba, + 0x3cea7248, 0x9282e3d9, 0x6f7b1bac, 0xc1138a3d, 0xe8db3ecf, + 0x46b3af5e, 0x39418d87, 0x97291c16, 0xbee1a8e4, 0x10893975, + 0xed70c100, 0x43185091, 0x6ad0e463, 0xc4b875f2, 0x4a5212c8, + 0xe43a8359, 0xcdf237ab, 0x639aa63a, 0x9e635e4f, 0x300bcfde, + 0x19c37b2c, 0xb7abeabd, 0xdf66b319, 0x710e2288, 0x58c6967a, + 0xf6ae07eb, 0x0b57ff9e, 0xa53f6e0f, 0x8cf7dafd, 0x229f4b6c, + 0xac752c56, 0x021dbdc7, 0x2bd50935, 0x85bd98a4, 0x784460d1, + 0xd62cf140, 0xffe445b2, 0x518cd423, 0x5cfdedf4, 0xf2957c65, + 0xdb5dc897, 0x75355906, 0x88cca173, 0x26a430e2, 0x0f6c8410, + 0xa1041581, 0x2fee72bb, 0x8186e32a, 0xa84e57d8, 0x0626c649, + 0xfbdf3e3c, 0x55b7afad, 0x7c7f1b5f, 0xd2178ace, 0xbadad36a, + 0x14b242fb, 0x3d7af609, 0x93126798, 0x6eeb9fed, 0xc0830e7c, + 0xe94bba8e, 0x47232b1f, 0xc9c94c25, 0x67a1ddb4, 0x4e696946, + 0xe001f8d7, 0x1df800a2, 0xb3909133, 0x9a5825c1, 0x3430b450, + 0x4bc29689, 0xe5aa0718, 0xcc62b3ea, 0x620a227b, 0x9ff3da0e, + 0x319b4b9f, 0x1853ff6d, 0xb63b6efc, 0x38d109c6, 0x96b99857, + 0xbf712ca5, 0x1119bd34, 0xece04541, 0x4288d4d0, 0x6b406022, + 0xc528f1b3, 0xade5a817, 0x038d3986, 0x2a458d74, 0x842d1ce5, + 0x79d4e490, 0xd7bc7501, 0xfe74c1f3, 0x501c5062, 0xdef63758, + 0x709ea6c9, 0x5956123b, 0xf73e83aa, 0x0ac77bdf, 0xa4afea4e, + 0x8d675ebc, 0x230fcf2d, 0x72831b0e, 0xdceb8a9f, 0xf5233e6d, + 0x5b4baffc, 0xa6b25789, 0x08dac618, 0x211272ea, 0x8f7ae37b, + 0x01908441, 0xaff815d0, 0x8630a122, 0x285830b3, 0xd5a1c8c6, + 0x7bc95957, 0x5201eda5, 0xfc697c34, 0x94a42590, 0x3accb401, + 0x130400f3, 0xbd6c9162, 0x40956917, 0xeefdf886, 0xc7354c74, + 0x695ddde5, 0xe7b7badf, 0x49df2b4e, 0x60179fbc, 0xce7f0e2d, + 0x3386f658, 0x9dee67c9, 0xb426d33b, 0x1a4e42aa, 0x65bc6073, + 0xcbd4f1e2, 0xe21c4510, 0x4c74d481, 0xb18d2cf4, 0x1fe5bd65, + 0x362d0997, 0x98459806, 0x16afff3c, 0xb8c76ead, 0x910fda5f, + 0x3f674bce, 0xc29eb3bb, 0x6cf6222a, 0x453e96d8, 0xeb560749, + 0x839b5eed, 0x2df3cf7c, 0x043b7b8e, 0xaa53ea1f, 0x57aa126a, + 0xf9c283fb, 0xd00a3709, 0x7e62a698, 0xf088c1a2, 0x5ee05033, + 0x7728e4c1, 0xd9407550, 0x24b98d25, 0x8ad11cb4, 0xa319a846, + 0x0d7139d7}, + {0x00000000, 0xb9fbdbe8, 0xa886b191, 0x117d6a79, 0x8a7c6563, + 0x3387be8b, 0x22fad4f2, 0x9b010f1a, 0xcf89cc87, 0x7672176f, + 0x670f7d16, 0xdef4a6fe, 0x45f5a9e4, 0xfc0e720c, 0xed731875, + 0x5488c39d, 0x44629f4f, 0xfd9944a7, 0xece42ede, 0x551ff536, + 0xce1efa2c, 0x77e521c4, 0x66984bbd, 0xdf639055, 0x8beb53c8, + 0x32108820, 0x236de259, 0x9a9639b1, 0x019736ab, 0xb86ced43, + 0xa911873a, 0x10ea5cd2, 0x88c53e9e, 0x313ee576, 0x20438f0f, + 0x99b854e7, 0x02b95bfd, 0xbb428015, 0xaa3fea6c, 0x13c43184, + 0x474cf219, 0xfeb729f1, 0xefca4388, 0x56319860, 0xcd30977a, + 0x74cb4c92, 0x65b626eb, 0xdc4dfd03, 0xcca7a1d1, 0x755c7a39, + 0x64211040, 0xdddacba8, 0x46dbc4b2, 0xff201f5a, 0xee5d7523, + 0x57a6aecb, 0x032e6d56, 0xbad5b6be, 0xaba8dcc7, 0x1253072f, + 0x89520835, 0x30a9d3dd, 0x21d4b9a4, 0x982f624c, 0xcafb7b7d, + 0x7300a095, 0x627dcaec, 0xdb861104, 0x40871e1e, 0xf97cc5f6, + 0xe801af8f, 0x51fa7467, 0x0572b7fa, 0xbc896c12, 0xadf4066b, + 0x140fdd83, 0x8f0ed299, 0x36f50971, 0x27886308, 0x9e73b8e0, + 0x8e99e432, 0x37623fda, 0x261f55a3, 0x9fe48e4b, 0x04e58151, + 0xbd1e5ab9, 0xac6330c0, 0x1598eb28, 0x411028b5, 0xf8ebf35d, + 0xe9969924, 0x506d42cc, 0xcb6c4dd6, 0x7297963e, 0x63eafc47, + 0xda1127af, 0x423e45e3, 0xfbc59e0b, 0xeab8f472, 0x53432f9a, + 0xc8422080, 0x71b9fb68, 0x60c49111, 0xd93f4af9, 0x8db78964, + 0x344c528c, 0x253138f5, 0x9ccae31d, 0x07cbec07, 0xbe3037ef, + 0xaf4d5d96, 0x16b6867e, 0x065cdaac, 0xbfa70144, 0xaeda6b3d, + 0x1721b0d5, 0x8c20bfcf, 0x35db6427, 0x24a60e5e, 0x9d5dd5b6, + 0xc9d5162b, 0x702ecdc3, 0x6153a7ba, 0xd8a87c52, 0x43a97348, + 0xfa52a8a0, 0xeb2fc2d9, 0x52d41931, 0x4e87f0bb, 0xf77c2b53, + 0xe601412a, 0x5ffa9ac2, 0xc4fb95d8, 0x7d004e30, 0x6c7d2449, + 0xd586ffa1, 0x810e3c3c, 0x38f5e7d4, 0x29888dad, 0x90735645, + 0x0b72595f, 0xb28982b7, 0xa3f4e8ce, 0x1a0f3326, 0x0ae56ff4, + 0xb31eb41c, 0xa263de65, 0x1b98058d, 0x80990a97, 0x3962d17f, + 0x281fbb06, 0x91e460ee, 0xc56ca373, 0x7c97789b, 0x6dea12e2, + 0xd411c90a, 0x4f10c610, 0xf6eb1df8, 0xe7967781, 0x5e6dac69, + 0xc642ce25, 0x7fb915cd, 0x6ec47fb4, 0xd73fa45c, 0x4c3eab46, + 0xf5c570ae, 0xe4b81ad7, 0x5d43c13f, 0x09cb02a2, 0xb030d94a, + 0xa14db333, 0x18b668db, 0x83b767c1, 0x3a4cbc29, 0x2b31d650, + 0x92ca0db8, 0x8220516a, 0x3bdb8a82, 0x2aa6e0fb, 0x935d3b13, + 0x085c3409, 0xb1a7efe1, 0xa0da8598, 0x19215e70, 0x4da99ded, + 0xf4524605, 0xe52f2c7c, 0x5cd4f794, 0xc7d5f88e, 0x7e2e2366, + 0x6f53491f, 0xd6a892f7, 0x847c8bc6, 0x3d87502e, 0x2cfa3a57, + 0x9501e1bf, 0x0e00eea5, 0xb7fb354d, 0xa6865f34, 0x1f7d84dc, + 0x4bf54741, 0xf20e9ca9, 0xe373f6d0, 0x5a882d38, 0xc1892222, + 0x7872f9ca, 0x690f93b3, 0xd0f4485b, 0xc01e1489, 0x79e5cf61, + 0x6898a518, 0xd1637ef0, 0x4a6271ea, 0xf399aa02, 0xe2e4c07b, + 0x5b1f1b93, 0x0f97d80e, 0xb66c03e6, 0xa711699f, 0x1eeab277, + 0x85ebbd6d, 0x3c106685, 0x2d6d0cfc, 0x9496d714, 0x0cb9b558, + 0xb5426eb0, 0xa43f04c9, 0x1dc4df21, 0x86c5d03b, 0x3f3e0bd3, + 0x2e4361aa, 0x97b8ba42, 0xc33079df, 0x7acba237, 0x6bb6c84e, + 0xd24d13a6, 0x494c1cbc, 0xf0b7c754, 0xe1caad2d, 0x583176c5, + 0x48db2a17, 0xf120f1ff, 0xe05d9b86, 0x59a6406e, 0xc2a74f74, + 0x7b5c949c, 0x6a21fee5, 0xd3da250d, 0x8752e690, 0x3ea93d78, + 0x2fd45701, 0x962f8ce9, 0x0d2e83f3, 0xb4d5581b, 0xa5a83262, + 0x1c53e98a}, + {0x00000000, 0x9d0fe176, 0xe16ec4ad, 0x7c6125db, 0x19ac8f1b, + 0x84a36e6d, 0xf8c24bb6, 0x65cdaac0, 0x33591e36, 0xae56ff40, + 0xd237da9b, 0x4f383bed, 0x2af5912d, 0xb7fa705b, 0xcb9b5580, + 0x5694b4f6, 0x66b23c6c, 0xfbbddd1a, 0x87dcf8c1, 0x1ad319b7, + 0x7f1eb377, 0xe2115201, 0x9e7077da, 0x037f96ac, 0x55eb225a, + 0xc8e4c32c, 0xb485e6f7, 0x298a0781, 0x4c47ad41, 0xd1484c37, + 0xad2969ec, 0x3026889a, 0xcd6478d8, 0x506b99ae, 0x2c0abc75, + 0xb1055d03, 0xd4c8f7c3, 0x49c716b5, 0x35a6336e, 0xa8a9d218, + 0xfe3d66ee, 0x63328798, 0x1f53a243, 0x825c4335, 0xe791e9f5, + 0x7a9e0883, 0x06ff2d58, 0x9bf0cc2e, 0xabd644b4, 0x36d9a5c2, + 0x4ab88019, 0xd7b7616f, 0xb27acbaf, 0x2f752ad9, 0x53140f02, + 0xce1bee74, 0x988f5a82, 0x0580bbf4, 0x79e19e2f, 0xe4ee7f59, + 0x8123d599, 0x1c2c34ef, 0x604d1134, 0xfd42f042, 0x41b9f7f1, + 0xdcb61687, 0xa0d7335c, 0x3dd8d22a, 0x581578ea, 0xc51a999c, + 0xb97bbc47, 0x24745d31, 0x72e0e9c7, 0xefef08b1, 0x938e2d6a, + 0x0e81cc1c, 0x6b4c66dc, 0xf64387aa, 0x8a22a271, 0x172d4307, + 0x270bcb9d, 0xba042aeb, 0xc6650f30, 0x5b6aee46, 0x3ea74486, + 0xa3a8a5f0, 0xdfc9802b, 0x42c6615d, 0x1452d5ab, 0x895d34dd, + 0xf53c1106, 0x6833f070, 0x0dfe5ab0, 0x90f1bbc6, 0xec909e1d, + 0x719f7f6b, 0x8cdd8f29, 0x11d26e5f, 0x6db34b84, 0xf0bcaaf2, + 0x95710032, 0x087ee144, 0x741fc49f, 0xe91025e9, 0xbf84911f, + 0x228b7069, 0x5eea55b2, 0xc3e5b4c4, 0xa6281e04, 0x3b27ff72, + 0x4746daa9, 0xda493bdf, 0xea6fb345, 0x77605233, 0x0b0177e8, + 0x960e969e, 0xf3c33c5e, 0x6eccdd28, 0x12adf8f3, 0x8fa21985, + 0xd936ad73, 0x44394c05, 0x385869de, 0xa55788a8, 0xc09a2268, + 0x5d95c31e, 0x21f4e6c5, 0xbcfb07b3, 0x8373efe2, 0x1e7c0e94, + 0x621d2b4f, 0xff12ca39, 0x9adf60f9, 0x07d0818f, 0x7bb1a454, + 0xe6be4522, 0xb02af1d4, 0x2d2510a2, 0x51443579, 0xcc4bd40f, + 0xa9867ecf, 0x34899fb9, 0x48e8ba62, 0xd5e75b14, 0xe5c1d38e, + 0x78ce32f8, 0x04af1723, 0x99a0f655, 0xfc6d5c95, 0x6162bde3, + 0x1d039838, 0x800c794e, 0xd698cdb8, 0x4b972cce, 0x37f60915, + 0xaaf9e863, 0xcf3442a3, 0x523ba3d5, 0x2e5a860e, 0xb3556778, + 0x4e17973a, 0xd318764c, 0xaf795397, 0x3276b2e1, 0x57bb1821, + 0xcab4f957, 0xb6d5dc8c, 0x2bda3dfa, 0x7d4e890c, 0xe041687a, + 0x9c204da1, 0x012facd7, 0x64e20617, 0xf9ede761, 0x858cc2ba, + 0x188323cc, 0x28a5ab56, 0xb5aa4a20, 0xc9cb6ffb, 0x54c48e8d, + 0x3109244d, 0xac06c53b, 0xd067e0e0, 0x4d680196, 0x1bfcb560, + 0x86f35416, 0xfa9271cd, 0x679d90bb, 0x02503a7b, 0x9f5fdb0d, + 0xe33efed6, 0x7e311fa0, 0xc2ca1813, 0x5fc5f965, 0x23a4dcbe, + 0xbeab3dc8, 0xdb669708, 0x4669767e, 0x3a0853a5, 0xa707b2d3, + 0xf1930625, 0x6c9ce753, 0x10fdc288, 0x8df223fe, 0xe83f893e, + 0x75306848, 0x09514d93, 0x945eace5, 0xa478247f, 0x3977c509, + 0x4516e0d2, 0xd81901a4, 0xbdd4ab64, 0x20db4a12, 0x5cba6fc9, + 0xc1b58ebf, 0x97213a49, 0x0a2edb3f, 0x764ffee4, 0xeb401f92, + 0x8e8db552, 0x13825424, 0x6fe371ff, 0xf2ec9089, 0x0fae60cb, + 0x92a181bd, 0xeec0a466, 0x73cf4510, 0x1602efd0, 0x8b0d0ea6, + 0xf76c2b7d, 0x6a63ca0b, 0x3cf77efd, 0xa1f89f8b, 0xdd99ba50, + 0x40965b26, 0x255bf1e6, 0xb8541090, 0xc435354b, 0x593ad43d, + 0x691c5ca7, 0xf413bdd1, 0x8872980a, 0x157d797c, 0x70b0d3bc, + 0xedbf32ca, 0x91de1711, 0x0cd1f667, 0x5a454291, 0xc74aa3e7, + 0xbb2b863c, 0x2624674a, 0x43e9cd8a, 0xdee62cfc, 0xa2870927, + 0x3f88e851}, + {0x00000000, 0xdd96d985, 0x605cb54b, 0xbdca6cce, 0xc0b96a96, + 0x1d2fb313, 0xa0e5dfdd, 0x7d730658, 0x5a03d36d, 0x87950ae8, + 0x3a5f6626, 0xe7c9bfa3, 0x9abab9fb, 0x472c607e, 0xfae60cb0, + 0x2770d535, 0xb407a6da, 0x69917f5f, 0xd45b1391, 0x09cdca14, + 0x74becc4c, 0xa92815c9, 0x14e27907, 0xc974a082, 0xee0475b7, + 0x3392ac32, 0x8e58c0fc, 0x53ce1979, 0x2ebd1f21, 0xf32bc6a4, + 0x4ee1aa6a, 0x937773ef, 0xb37e4bf5, 0x6ee89270, 0xd322febe, + 0x0eb4273b, 0x73c72163, 0xae51f8e6, 0x139b9428, 0xce0d4dad, + 0xe97d9898, 0x34eb411d, 0x89212dd3, 0x54b7f456, 0x29c4f20e, + 0xf4522b8b, 0x49984745, 0x940e9ec0, 0x0779ed2f, 0xdaef34aa, + 0x67255864, 0xbab381e1, 0xc7c087b9, 0x1a565e3c, 0xa79c32f2, + 0x7a0aeb77, 0x5d7a3e42, 0x80ece7c7, 0x3d268b09, 0xe0b0528c, + 0x9dc354d4, 0x40558d51, 0xfd9fe19f, 0x2009381a, 0xbd8d91ab, + 0x601b482e, 0xddd124e0, 0x0047fd65, 0x7d34fb3d, 0xa0a222b8, + 0x1d684e76, 0xc0fe97f3, 0xe78e42c6, 0x3a189b43, 0x87d2f78d, + 0x5a442e08, 0x27372850, 0xfaa1f1d5, 0x476b9d1b, 0x9afd449e, + 0x098a3771, 0xd41ceef4, 0x69d6823a, 0xb4405bbf, 0xc9335de7, + 0x14a58462, 0xa96fe8ac, 0x74f93129, 0x5389e41c, 0x8e1f3d99, + 0x33d55157, 0xee4388d2, 0x93308e8a, 0x4ea6570f, 0xf36c3bc1, + 0x2efae244, 0x0ef3da5e, 0xd36503db, 0x6eaf6f15, 0xb339b690, + 0xce4ab0c8, 0x13dc694d, 0xae160583, 0x7380dc06, 0x54f00933, + 0x8966d0b6, 0x34acbc78, 0xe93a65fd, 0x944963a5, 0x49dfba20, + 0xf415d6ee, 0x29830f6b, 0xbaf47c84, 0x6762a501, 0xdaa8c9cf, + 0x073e104a, 0x7a4d1612, 0xa7dbcf97, 0x1a11a359, 0xc7877adc, + 0xe0f7afe9, 0x3d61766c, 0x80ab1aa2, 0x5d3dc327, 0x204ec57f, + 0xfdd81cfa, 0x40127034, 0x9d84a9b1, 0xa06a2517, 0x7dfcfc92, + 0xc036905c, 0x1da049d9, 0x60d34f81, 0xbd459604, 0x008ffaca, + 0xdd19234f, 0xfa69f67a, 0x27ff2fff, 0x9a354331, 0x47a39ab4, + 0x3ad09cec, 0xe7464569, 0x5a8c29a7, 0x871af022, 0x146d83cd, + 0xc9fb5a48, 0x74313686, 0xa9a7ef03, 0xd4d4e95b, 0x094230de, + 0xb4885c10, 0x691e8595, 0x4e6e50a0, 0x93f88925, 0x2e32e5eb, + 0xf3a43c6e, 0x8ed73a36, 0x5341e3b3, 0xee8b8f7d, 0x331d56f8, + 0x13146ee2, 0xce82b767, 0x7348dba9, 0xaede022c, 0xd3ad0474, + 0x0e3bddf1, 0xb3f1b13f, 0x6e6768ba, 0x4917bd8f, 0x9481640a, + 0x294b08c4, 0xf4ddd141, 0x89aed719, 0x54380e9c, 0xe9f26252, + 0x3464bbd7, 0xa713c838, 0x7a8511bd, 0xc74f7d73, 0x1ad9a4f6, + 0x67aaa2ae, 0xba3c7b2b, 0x07f617e5, 0xda60ce60, 0xfd101b55, + 0x2086c2d0, 0x9d4cae1e, 0x40da779b, 0x3da971c3, 0xe03fa846, + 0x5df5c488, 0x80631d0d, 0x1de7b4bc, 0xc0716d39, 0x7dbb01f7, + 0xa02dd872, 0xdd5ede2a, 0x00c807af, 0xbd026b61, 0x6094b2e4, + 0x47e467d1, 0x9a72be54, 0x27b8d29a, 0xfa2e0b1f, 0x875d0d47, + 0x5acbd4c2, 0xe701b80c, 0x3a976189, 0xa9e01266, 0x7476cbe3, + 0xc9bca72d, 0x142a7ea8, 0x695978f0, 0xb4cfa175, 0x0905cdbb, + 0xd493143e, 0xf3e3c10b, 0x2e75188e, 0x93bf7440, 0x4e29adc5, + 0x335aab9d, 0xeecc7218, 0x53061ed6, 0x8e90c753, 0xae99ff49, + 0x730f26cc, 0xcec54a02, 0x13539387, 0x6e2095df, 0xb3b64c5a, + 0x0e7c2094, 0xd3eaf911, 0xf49a2c24, 0x290cf5a1, 0x94c6996f, + 0x495040ea, 0x342346b2, 0xe9b59f37, 0x547ff3f9, 0x89e92a7c, + 0x1a9e5993, 0xc7088016, 0x7ac2ecd8, 0xa754355d, 0xda273305, + 0x07b1ea80, 0xba7b864e, 0x67ed5fcb, 0x409d8afe, 0x9d0b537b, + 0x20c13fb5, 0xfd57e630, 0x8024e068, 0x5db239ed, 0xe0785523, + 0x3dee8ca6}, + {0x00000000, 0x9ba54c6f, 0xec3b9e9f, 0x779ed2f0, 0x03063b7f, + 0x98a37710, 0xef3da5e0, 0x7498e98f, 0x060c76fe, 0x9da93a91, + 0xea37e861, 0x7192a40e, 0x050a4d81, 0x9eaf01ee, 0xe931d31e, + 0x72949f71, 0x0c18edfc, 0x97bda193, 0xe0237363, 0x7b863f0c, + 0x0f1ed683, 0x94bb9aec, 0xe325481c, 0x78800473, 0x0a149b02, + 0x91b1d76d, 0xe62f059d, 0x7d8a49f2, 0x0912a07d, 0x92b7ec12, + 0xe5293ee2, 0x7e8c728d, 0x1831dbf8, 0x83949797, 0xf40a4567, + 0x6faf0908, 0x1b37e087, 0x8092ace8, 0xf70c7e18, 0x6ca93277, + 0x1e3dad06, 0x8598e169, 0xf2063399, 0x69a37ff6, 0x1d3b9679, + 0x869eda16, 0xf10008e6, 0x6aa54489, 0x14293604, 0x8f8c7a6b, + 0xf812a89b, 0x63b7e4f4, 0x172f0d7b, 0x8c8a4114, 0xfb1493e4, + 0x60b1df8b, 0x122540fa, 0x89800c95, 0xfe1ede65, 0x65bb920a, + 0x11237b85, 0x8a8637ea, 0xfd18e51a, 0x66bda975, 0x3063b7f0, + 0xabc6fb9f, 0xdc58296f, 0x47fd6500, 0x33658c8f, 0xa8c0c0e0, + 0xdf5e1210, 0x44fb5e7f, 0x366fc10e, 0xadca8d61, 0xda545f91, + 0x41f113fe, 0x3569fa71, 0xaeccb61e, 0xd95264ee, 0x42f72881, + 0x3c7b5a0c, 0xa7de1663, 0xd040c493, 0x4be588fc, 0x3f7d6173, + 0xa4d82d1c, 0xd346ffec, 0x48e3b383, 0x3a772cf2, 0xa1d2609d, + 0xd64cb26d, 0x4de9fe02, 0x3971178d, 0xa2d45be2, 0xd54a8912, + 0x4eefc57d, 0x28526c08, 0xb3f72067, 0xc469f297, 0x5fccbef8, + 0x2b545777, 0xb0f11b18, 0xc76fc9e8, 0x5cca8587, 0x2e5e1af6, + 0xb5fb5699, 0xc2658469, 0x59c0c806, 0x2d582189, 0xb6fd6de6, + 0xc163bf16, 0x5ac6f379, 0x244a81f4, 0xbfefcd9b, 0xc8711f6b, + 0x53d45304, 0x274cba8b, 0xbce9f6e4, 0xcb772414, 0x50d2687b, + 0x2246f70a, 0xb9e3bb65, 0xce7d6995, 0x55d825fa, 0x2140cc75, + 0xbae5801a, 0xcd7b52ea, 0x56de1e85, 0x60c76fe0, 0xfb62238f, + 0x8cfcf17f, 0x1759bd10, 0x63c1549f, 0xf86418f0, 0x8ffaca00, + 0x145f866f, 0x66cb191e, 0xfd6e5571, 0x8af08781, 0x1155cbee, + 0x65cd2261, 0xfe686e0e, 0x89f6bcfe, 0x1253f091, 0x6cdf821c, + 0xf77ace73, 0x80e41c83, 0x1b4150ec, 0x6fd9b963, 0xf47cf50c, + 0x83e227fc, 0x18476b93, 0x6ad3f4e2, 0xf176b88d, 0x86e86a7d, + 0x1d4d2612, 0x69d5cf9d, 0xf27083f2, 0x85ee5102, 0x1e4b1d6d, + 0x78f6b418, 0xe353f877, 0x94cd2a87, 0x0f6866e8, 0x7bf08f67, + 0xe055c308, 0x97cb11f8, 0x0c6e5d97, 0x7efac2e6, 0xe55f8e89, + 0x92c15c79, 0x09641016, 0x7dfcf999, 0xe659b5f6, 0x91c76706, + 0x0a622b69, 0x74ee59e4, 0xef4b158b, 0x98d5c77b, 0x03708b14, + 0x77e8629b, 0xec4d2ef4, 0x9bd3fc04, 0x0076b06b, 0x72e22f1a, + 0xe9476375, 0x9ed9b185, 0x057cfdea, 0x71e41465, 0xea41580a, + 0x9ddf8afa, 0x067ac695, 0x50a4d810, 0xcb01947f, 0xbc9f468f, + 0x273a0ae0, 0x53a2e36f, 0xc807af00, 0xbf997df0, 0x243c319f, + 0x56a8aeee, 0xcd0de281, 0xba933071, 0x21367c1e, 0x55ae9591, + 0xce0bd9fe, 0xb9950b0e, 0x22304761, 0x5cbc35ec, 0xc7197983, + 0xb087ab73, 0x2b22e71c, 0x5fba0e93, 0xc41f42fc, 0xb381900c, + 0x2824dc63, 0x5ab04312, 0xc1150f7d, 0xb68bdd8d, 0x2d2e91e2, + 0x59b6786d, 0xc2133402, 0xb58de6f2, 0x2e28aa9d, 0x489503e8, + 0xd3304f87, 0xa4ae9d77, 0x3f0bd118, 0x4b933897, 0xd03674f8, + 0xa7a8a608, 0x3c0dea67, 0x4e997516, 0xd53c3979, 0xa2a2eb89, + 0x3907a7e6, 0x4d9f4e69, 0xd63a0206, 0xa1a4d0f6, 0x3a019c99, + 0x448dee14, 0xdf28a27b, 0xa8b6708b, 0x33133ce4, 0x478bd56b, + 0xdc2e9904, 0xabb04bf4, 0x3015079b, 0x428198ea, 0xd924d485, + 0xaeba0675, 0x351f4a1a, 0x4187a395, 0xda22effa, 0xadbc3d0a, + 0x36197165}, + {0x00000000, 0xc18edfc0, 0x586cb9c1, 0x99e26601, 0xb0d97382, + 0x7157ac42, 0xe8b5ca43, 0x293b1583, 0xbac3e145, 0x7b4d3e85, + 0xe2af5884, 0x23218744, 0x0a1a92c7, 0xcb944d07, 0x52762b06, + 0x93f8f4c6, 0xaef6c4cb, 0x6f781b0b, 0xf69a7d0a, 0x3714a2ca, + 0x1e2fb749, 0xdfa16889, 0x46430e88, 0x87cdd148, 0x1435258e, + 0xd5bbfa4e, 0x4c599c4f, 0x8dd7438f, 0xa4ec560c, 0x656289cc, + 0xfc80efcd, 0x3d0e300d, 0x869c8fd7, 0x47125017, 0xdef03616, + 0x1f7ee9d6, 0x3645fc55, 0xf7cb2395, 0x6e294594, 0xafa79a54, + 0x3c5f6e92, 0xfdd1b152, 0x6433d753, 0xa5bd0893, 0x8c861d10, + 0x4d08c2d0, 0xd4eaa4d1, 0x15647b11, 0x286a4b1c, 0xe9e494dc, + 0x7006f2dd, 0xb1882d1d, 0x98b3389e, 0x593de75e, 0xc0df815f, + 0x01515e9f, 0x92a9aa59, 0x53277599, 0xcac51398, 0x0b4bcc58, + 0x2270d9db, 0xe3fe061b, 0x7a1c601a, 0xbb92bfda, 0xd64819ef, + 0x17c6c62f, 0x8e24a02e, 0x4faa7fee, 0x66916a6d, 0xa71fb5ad, + 0x3efdd3ac, 0xff730c6c, 0x6c8bf8aa, 0xad05276a, 0x34e7416b, + 0xf5699eab, 0xdc528b28, 0x1ddc54e8, 0x843e32e9, 0x45b0ed29, + 0x78bedd24, 0xb93002e4, 0x20d264e5, 0xe15cbb25, 0xc867aea6, + 0x09e97166, 0x900b1767, 0x5185c8a7, 0xc27d3c61, 0x03f3e3a1, + 0x9a1185a0, 0x5b9f5a60, 0x72a44fe3, 0xb32a9023, 0x2ac8f622, + 0xeb4629e2, 0x50d49638, 0x915a49f8, 0x08b82ff9, 0xc936f039, + 0xe00de5ba, 0x21833a7a, 0xb8615c7b, 0x79ef83bb, 0xea17777d, + 0x2b99a8bd, 0xb27bcebc, 0x73f5117c, 0x5ace04ff, 0x9b40db3f, + 0x02a2bd3e, 0xc32c62fe, 0xfe2252f3, 0x3fac8d33, 0xa64eeb32, + 0x67c034f2, 0x4efb2171, 0x8f75feb1, 0x169798b0, 0xd7194770, + 0x44e1b3b6, 0x856f6c76, 0x1c8d0a77, 0xdd03d5b7, 0xf438c034, + 0x35b61ff4, 0xac5479f5, 0x6ddaa635, 0x77e1359f, 0xb66fea5f, + 0x2f8d8c5e, 0xee03539e, 0xc738461d, 0x06b699dd, 0x9f54ffdc, + 0x5eda201c, 0xcd22d4da, 0x0cac0b1a, 0x954e6d1b, 0x54c0b2db, + 0x7dfba758, 0xbc757898, 0x25971e99, 0xe419c159, 0xd917f154, + 0x18992e94, 0x817b4895, 0x40f59755, 0x69ce82d6, 0xa8405d16, + 0x31a23b17, 0xf02ce4d7, 0x63d41011, 0xa25acfd1, 0x3bb8a9d0, + 0xfa367610, 0xd30d6393, 0x1283bc53, 0x8b61da52, 0x4aef0592, + 0xf17dba48, 0x30f36588, 0xa9110389, 0x689fdc49, 0x41a4c9ca, + 0x802a160a, 0x19c8700b, 0xd846afcb, 0x4bbe5b0d, 0x8a3084cd, + 0x13d2e2cc, 0xd25c3d0c, 0xfb67288f, 0x3ae9f74f, 0xa30b914e, + 0x62854e8e, 0x5f8b7e83, 0x9e05a143, 0x07e7c742, 0xc6691882, + 0xef520d01, 0x2edcd2c1, 0xb73eb4c0, 0x76b06b00, 0xe5489fc6, + 0x24c64006, 0xbd242607, 0x7caaf9c7, 0x5591ec44, 0x941f3384, + 0x0dfd5585, 0xcc738a45, 0xa1a92c70, 0x6027f3b0, 0xf9c595b1, + 0x384b4a71, 0x11705ff2, 0xd0fe8032, 0x491ce633, 0x889239f3, + 0x1b6acd35, 0xdae412f5, 0x430674f4, 0x8288ab34, 0xabb3beb7, + 0x6a3d6177, 0xf3df0776, 0x3251d8b6, 0x0f5fe8bb, 0xced1377b, + 0x5733517a, 0x96bd8eba, 0xbf869b39, 0x7e0844f9, 0xe7ea22f8, + 0x2664fd38, 0xb59c09fe, 0x7412d63e, 0xedf0b03f, 0x2c7e6fff, + 0x05457a7c, 0xc4cba5bc, 0x5d29c3bd, 0x9ca71c7d, 0x2735a3a7, + 0xe6bb7c67, 0x7f591a66, 0xbed7c5a6, 0x97ecd025, 0x56620fe5, + 0xcf8069e4, 0x0e0eb624, 0x9df642e2, 0x5c789d22, 0xc59afb23, + 0x041424e3, 0x2d2f3160, 0xeca1eea0, 0x754388a1, 0xb4cd5761, + 0x89c3676c, 0x484db8ac, 0xd1afdead, 0x1021016d, 0x391a14ee, + 0xf894cb2e, 0x6176ad2f, 0xa0f872ef, 0x33008629, 0xf28e59e9, + 0x6b6c3fe8, 0xaae2e028, 0x83d9f5ab, 0x42572a6b, 0xdbb54c6a, + 0x1a3b93aa}, + {0x00000000, 0xefc26b3e, 0x04f5d03d, 0xeb37bb03, 0x09eba07a, + 0xe629cb44, 0x0d1e7047, 0xe2dc1b79, 0x13d740f4, 0xfc152bca, + 0x172290c9, 0xf8e0fbf7, 0x1a3ce08e, 0xf5fe8bb0, 0x1ec930b3, + 0xf10b5b8d, 0x27ae81e8, 0xc86cead6, 0x235b51d5, 0xcc993aeb, + 0x2e452192, 0xc1874aac, 0x2ab0f1af, 0xc5729a91, 0x3479c11c, + 0xdbbbaa22, 0x308c1121, 0xdf4e7a1f, 0x3d926166, 0xd2500a58, + 0x3967b15b, 0xd6a5da65, 0x4f5d03d0, 0xa09f68ee, 0x4ba8d3ed, + 0xa46ab8d3, 0x46b6a3aa, 0xa974c894, 0x42437397, 0xad8118a9, + 0x5c8a4324, 0xb348281a, 0x587f9319, 0xb7bdf827, 0x5561e35e, + 0xbaa38860, 0x51943363, 0xbe56585d, 0x68f38238, 0x8731e906, + 0x6c065205, 0x83c4393b, 0x61182242, 0x8eda497c, 0x65edf27f, + 0x8a2f9941, 0x7b24c2cc, 0x94e6a9f2, 0x7fd112f1, 0x901379cf, + 0x72cf62b6, 0x9d0d0988, 0x763ab28b, 0x99f8d9b5, 0x9eba07a0, + 0x71786c9e, 0x9a4fd79d, 0x758dbca3, 0x9751a7da, 0x7893cce4, + 0x93a477e7, 0x7c661cd9, 0x8d6d4754, 0x62af2c6a, 0x89989769, + 0x665afc57, 0x8486e72e, 0x6b448c10, 0x80733713, 0x6fb15c2d, + 0xb9148648, 0x56d6ed76, 0xbde15675, 0x52233d4b, 0xb0ff2632, + 0x5f3d4d0c, 0xb40af60f, 0x5bc89d31, 0xaac3c6bc, 0x4501ad82, + 0xae361681, 0x41f47dbf, 0xa32866c6, 0x4cea0df8, 0xa7ddb6fb, + 0x481fddc5, 0xd1e70470, 0x3e256f4e, 0xd512d44d, 0x3ad0bf73, + 0xd80ca40a, 0x37cecf34, 0xdcf97437, 0x333b1f09, 0xc2304484, + 0x2df22fba, 0xc6c594b9, 0x2907ff87, 0xcbdbe4fe, 0x24198fc0, + 0xcf2e34c3, 0x20ec5ffd, 0xf6498598, 0x198beea6, 0xf2bc55a5, + 0x1d7e3e9b, 0xffa225e2, 0x10604edc, 0xfb57f5df, 0x14959ee1, + 0xe59ec56c, 0x0a5cae52, 0xe16b1551, 0x0ea97e6f, 0xec756516, + 0x03b70e28, 0xe880b52b, 0x0742de15, 0xe6050901, 0x09c7623f, + 0xe2f0d93c, 0x0d32b202, 0xefeea97b, 0x002cc245, 0xeb1b7946, + 0x04d91278, 0xf5d249f5, 0x1a1022cb, 0xf12799c8, 0x1ee5f2f6, + 0xfc39e98f, 0x13fb82b1, 0xf8cc39b2, 0x170e528c, 0xc1ab88e9, + 0x2e69e3d7, 0xc55e58d4, 0x2a9c33ea, 0xc8402893, 0x278243ad, + 0xccb5f8ae, 0x23779390, 0xd27cc81d, 0x3dbea323, 0xd6891820, + 0x394b731e, 0xdb976867, 0x34550359, 0xdf62b85a, 0x30a0d364, + 0xa9580ad1, 0x469a61ef, 0xadaddaec, 0x426fb1d2, 0xa0b3aaab, + 0x4f71c195, 0xa4467a96, 0x4b8411a8, 0xba8f4a25, 0x554d211b, + 0xbe7a9a18, 0x51b8f126, 0xb364ea5f, 0x5ca68161, 0xb7913a62, + 0x5853515c, 0x8ef68b39, 0x6134e007, 0x8a035b04, 0x65c1303a, + 0x871d2b43, 0x68df407d, 0x83e8fb7e, 0x6c2a9040, 0x9d21cbcd, + 0x72e3a0f3, 0x99d41bf0, 0x761670ce, 0x94ca6bb7, 0x7b080089, + 0x903fbb8a, 0x7ffdd0b4, 0x78bf0ea1, 0x977d659f, 0x7c4ade9c, + 0x9388b5a2, 0x7154aedb, 0x9e96c5e5, 0x75a17ee6, 0x9a6315d8, + 0x6b684e55, 0x84aa256b, 0x6f9d9e68, 0x805ff556, 0x6283ee2f, + 0x8d418511, 0x66763e12, 0x89b4552c, 0x5f118f49, 0xb0d3e477, + 0x5be45f74, 0xb426344a, 0x56fa2f33, 0xb938440d, 0x520fff0e, + 0xbdcd9430, 0x4cc6cfbd, 0xa304a483, 0x48331f80, 0xa7f174be, + 0x452d6fc7, 0xaaef04f9, 0x41d8bffa, 0xae1ad4c4, 0x37e20d71, + 0xd820664f, 0x3317dd4c, 0xdcd5b672, 0x3e09ad0b, 0xd1cbc635, + 0x3afc7d36, 0xd53e1608, 0x24354d85, 0xcbf726bb, 0x20c09db8, + 0xcf02f686, 0x2ddeedff, 0xc21c86c1, 0x292b3dc2, 0xc6e956fc, + 0x104c8c99, 0xff8ee7a7, 0x14b95ca4, 0xfb7b379a, 0x19a72ce3, + 0xf66547dd, 0x1d52fcde, 0xf29097e0, 0x039bcc6d, 0xec59a753, + 0x076e1c50, 0xe8ac776e, 0x0a706c17, 0xe5b20729, 0x0e85bc2a, + 0xe147d714}, + {0x00000000, 0x177b1443, 0x2ef62886, 0x398d3cc5, 0x5dec510c, + 0x4a97454f, 0x731a798a, 0x64616dc9, 0xbbd8a218, 0xaca3b65b, + 0x952e8a9e, 0x82559edd, 0xe634f314, 0xf14fe757, 0xc8c2db92, + 0xdfb9cfd1, 0xacc04271, 0xbbbb5632, 0x82366af7, 0x954d7eb4, + 0xf12c137d, 0xe657073e, 0xdfda3bfb, 0xc8a12fb8, 0x1718e069, + 0x0063f42a, 0x39eec8ef, 0x2e95dcac, 0x4af4b165, 0x5d8fa526, + 0x640299e3, 0x73798da0, 0x82f182a3, 0x958a96e0, 0xac07aa25, + 0xbb7cbe66, 0xdf1dd3af, 0xc866c7ec, 0xf1ebfb29, 0xe690ef6a, + 0x392920bb, 0x2e5234f8, 0x17df083d, 0x00a41c7e, 0x64c571b7, + 0x73be65f4, 0x4a335931, 0x5d484d72, 0x2e31c0d2, 0x394ad491, + 0x00c7e854, 0x17bcfc17, 0x73dd91de, 0x64a6859d, 0x5d2bb958, + 0x4a50ad1b, 0x95e962ca, 0x82927689, 0xbb1f4a4c, 0xac645e0f, + 0xc80533c6, 0xdf7e2785, 0xe6f31b40, 0xf1880f03, 0xde920307, + 0xc9e91744, 0xf0642b81, 0xe71f3fc2, 0x837e520b, 0x94054648, + 0xad887a8d, 0xbaf36ece, 0x654aa11f, 0x7231b55c, 0x4bbc8999, + 0x5cc79dda, 0x38a6f013, 0x2fdde450, 0x1650d895, 0x012bccd6, + 0x72524176, 0x65295535, 0x5ca469f0, 0x4bdf7db3, 0x2fbe107a, + 0x38c50439, 0x014838fc, 0x16332cbf, 0xc98ae36e, 0xdef1f72d, + 0xe77ccbe8, 0xf007dfab, 0x9466b262, 0x831da621, 0xba909ae4, + 0xadeb8ea7, 0x5c6381a4, 0x4b1895e7, 0x7295a922, 0x65eebd61, + 0x018fd0a8, 0x16f4c4eb, 0x2f79f82e, 0x3802ec6d, 0xe7bb23bc, + 0xf0c037ff, 0xc94d0b3a, 0xde361f79, 0xba5772b0, 0xad2c66f3, + 0x94a15a36, 0x83da4e75, 0xf0a3c3d5, 0xe7d8d796, 0xde55eb53, + 0xc92eff10, 0xad4f92d9, 0xba34869a, 0x83b9ba5f, 0x94c2ae1c, + 0x4b7b61cd, 0x5c00758e, 0x658d494b, 0x72f65d08, 0x169730c1, + 0x01ec2482, 0x38611847, 0x2f1a0c04, 0x6655004f, 0x712e140c, + 0x48a328c9, 0x5fd83c8a, 0x3bb95143, 0x2cc24500, 0x154f79c5, + 0x02346d86, 0xdd8da257, 0xcaf6b614, 0xf37b8ad1, 0xe4009e92, + 0x8061f35b, 0x971ae718, 0xae97dbdd, 0xb9eccf9e, 0xca95423e, + 0xddee567d, 0xe4636ab8, 0xf3187efb, 0x97791332, 0x80020771, + 0xb98f3bb4, 0xaef42ff7, 0x714de026, 0x6636f465, 0x5fbbc8a0, + 0x48c0dce3, 0x2ca1b12a, 0x3bdaa569, 0x025799ac, 0x152c8def, + 0xe4a482ec, 0xf3df96af, 0xca52aa6a, 0xdd29be29, 0xb948d3e0, + 0xae33c7a3, 0x97befb66, 0x80c5ef25, 0x5f7c20f4, 0x480734b7, + 0x718a0872, 0x66f11c31, 0x029071f8, 0x15eb65bb, 0x2c66597e, + 0x3b1d4d3d, 0x4864c09d, 0x5f1fd4de, 0x6692e81b, 0x71e9fc58, + 0x15889191, 0x02f385d2, 0x3b7eb917, 0x2c05ad54, 0xf3bc6285, + 0xe4c776c6, 0xdd4a4a03, 0xca315e40, 0xae503389, 0xb92b27ca, + 0x80a61b0f, 0x97dd0f4c, 0xb8c70348, 0xafbc170b, 0x96312bce, + 0x814a3f8d, 0xe52b5244, 0xf2504607, 0xcbdd7ac2, 0xdca66e81, + 0x031fa150, 0x1464b513, 0x2de989d6, 0x3a929d95, 0x5ef3f05c, + 0x4988e41f, 0x7005d8da, 0x677ecc99, 0x14074139, 0x037c557a, + 0x3af169bf, 0x2d8a7dfc, 0x49eb1035, 0x5e900476, 0x671d38b3, + 0x70662cf0, 0xafdfe321, 0xb8a4f762, 0x8129cba7, 0x9652dfe4, + 0xf233b22d, 0xe548a66e, 0xdcc59aab, 0xcbbe8ee8, 0x3a3681eb, + 0x2d4d95a8, 0x14c0a96d, 0x03bbbd2e, 0x67dad0e7, 0x70a1c4a4, + 0x492cf861, 0x5e57ec22, 0x81ee23f3, 0x969537b0, 0xaf180b75, + 0xb8631f36, 0xdc0272ff, 0xcb7966bc, 0xf2f45a79, 0xe58f4e3a, + 0x96f6c39a, 0x818dd7d9, 0xb800eb1c, 0xaf7bff5f, 0xcb1a9296, + 0xdc6186d5, 0xe5ecba10, 0xf297ae53, 0x2d2e6182, 0x3a5575c1, + 0x03d84904, 0x14a35d47, 0x70c2308e, 0x67b924cd, 0x5e341808, + 0x494f0c4b}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x43147b1700000000, 0x8628f62e00000000, + 0xc53c8d3900000000, 0x0c51ec5d00000000, 0x4f45974a00000000, + 0x8a791a7300000000, 0xc96d616400000000, 0x18a2d8bb00000000, + 0x5bb6a3ac00000000, 0x9e8a2e9500000000, 0xdd9e558200000000, + 0x14f334e600000000, 0x57e74ff100000000, 0x92dbc2c800000000, + 0xd1cfb9df00000000, 0x7142c0ac00000000, 0x3256bbbb00000000, + 0xf76a368200000000, 0xb47e4d9500000000, 0x7d132cf100000000, + 0x3e0757e600000000, 0xfb3bdadf00000000, 0xb82fa1c800000000, + 0x69e0181700000000, 0x2af4630000000000, 0xefc8ee3900000000, + 0xacdc952e00000000, 0x65b1f44a00000000, 0x26a58f5d00000000, + 0xe399026400000000, 0xa08d797300000000, 0xa382f18200000000, + 0xe0968a9500000000, 0x25aa07ac00000000, 0x66be7cbb00000000, + 0xafd31ddf00000000, 0xecc766c800000000, 0x29fbebf100000000, + 0x6aef90e600000000, 0xbb20293900000000, 0xf834522e00000000, + 0x3d08df1700000000, 0x7e1ca40000000000, 0xb771c56400000000, + 0xf465be7300000000, 0x3159334a00000000, 0x724d485d00000000, + 0xd2c0312e00000000, 0x91d44a3900000000, 0x54e8c70000000000, + 0x17fcbc1700000000, 0xde91dd7300000000, 0x9d85a66400000000, + 0x58b92b5d00000000, 0x1bad504a00000000, 0xca62e99500000000, + 0x8976928200000000, 0x4c4a1fbb00000000, 0x0f5e64ac00000000, + 0xc63305c800000000, 0x85277edf00000000, 0x401bf3e600000000, + 0x030f88f100000000, 0x070392de00000000, 0x4417e9c900000000, + 0x812b64f000000000, 0xc23f1fe700000000, 0x0b527e8300000000, + 0x4846059400000000, 0x8d7a88ad00000000, 0xce6ef3ba00000000, + 0x1fa14a6500000000, 0x5cb5317200000000, 0x9989bc4b00000000, + 0xda9dc75c00000000, 0x13f0a63800000000, 0x50e4dd2f00000000, + 0x95d8501600000000, 0xd6cc2b0100000000, 0x7641527200000000, + 0x3555296500000000, 0xf069a45c00000000, 0xb37ddf4b00000000, + 0x7a10be2f00000000, 0x3904c53800000000, 0xfc38480100000000, + 0xbf2c331600000000, 0x6ee38ac900000000, 0x2df7f1de00000000, + 0xe8cb7ce700000000, 0xabdf07f000000000, 0x62b2669400000000, + 0x21a61d8300000000, 0xe49a90ba00000000, 0xa78eebad00000000, + 0xa481635c00000000, 0xe795184b00000000, 0x22a9957200000000, + 0x61bdee6500000000, 0xa8d08f0100000000, 0xebc4f41600000000, + 0x2ef8792f00000000, 0x6dec023800000000, 0xbc23bbe700000000, + 0xff37c0f000000000, 0x3a0b4dc900000000, 0x791f36de00000000, + 0xb07257ba00000000, 0xf3662cad00000000, 0x365aa19400000000, + 0x754eda8300000000, 0xd5c3a3f000000000, 0x96d7d8e700000000, + 0x53eb55de00000000, 0x10ff2ec900000000, 0xd9924fad00000000, + 0x9a8634ba00000000, 0x5fbab98300000000, 0x1caec29400000000, + 0xcd617b4b00000000, 0x8e75005c00000000, 0x4b498d6500000000, + 0x085df67200000000, 0xc130971600000000, 0x8224ec0100000000, + 0x4718613800000000, 0x040c1a2f00000000, 0x4f00556600000000, + 0x0c142e7100000000, 0xc928a34800000000, 0x8a3cd85f00000000, + 0x4351b93b00000000, 0x0045c22c00000000, 0xc5794f1500000000, + 0x866d340200000000, 0x57a28ddd00000000, 0x14b6f6ca00000000, + 0xd18a7bf300000000, 0x929e00e400000000, 0x5bf3618000000000, + 0x18e71a9700000000, 0xdddb97ae00000000, 0x9ecfecb900000000, + 0x3e4295ca00000000, 0x7d56eedd00000000, 0xb86a63e400000000, + 0xfb7e18f300000000, 0x3213799700000000, 0x7107028000000000, + 0xb43b8fb900000000, 0xf72ff4ae00000000, 0x26e04d7100000000, + 0x65f4366600000000, 0xa0c8bb5f00000000, 0xe3dcc04800000000, + 0x2ab1a12c00000000, 0x69a5da3b00000000, 0xac99570200000000, + 0xef8d2c1500000000, 0xec82a4e400000000, 0xaf96dff300000000, + 0x6aaa52ca00000000, 0x29be29dd00000000, 0xe0d348b900000000, + 0xa3c733ae00000000, 0x66fbbe9700000000, 0x25efc58000000000, + 0xf4207c5f00000000, 0xb734074800000000, 0x72088a7100000000, + 0x311cf16600000000, 0xf871900200000000, 0xbb65eb1500000000, + 0x7e59662c00000000, 0x3d4d1d3b00000000, 0x9dc0644800000000, + 0xded41f5f00000000, 0x1be8926600000000, 0x58fce97100000000, + 0x9191881500000000, 0xd285f30200000000, 0x17b97e3b00000000, + 0x54ad052c00000000, 0x8562bcf300000000, 0xc676c7e400000000, + 0x034a4add00000000, 0x405e31ca00000000, 0x893350ae00000000, + 0xca272bb900000000, 0x0f1ba68000000000, 0x4c0fdd9700000000, + 0x4803c7b800000000, 0x0b17bcaf00000000, 0xce2b319600000000, + 0x8d3f4a8100000000, 0x44522be500000000, 0x074650f200000000, + 0xc27addcb00000000, 0x816ea6dc00000000, 0x50a11f0300000000, + 0x13b5641400000000, 0xd689e92d00000000, 0x959d923a00000000, + 0x5cf0f35e00000000, 0x1fe4884900000000, 0xdad8057000000000, + 0x99cc7e6700000000, 0x3941071400000000, 0x7a557c0300000000, + 0xbf69f13a00000000, 0xfc7d8a2d00000000, 0x3510eb4900000000, + 0x7604905e00000000, 0xb3381d6700000000, 0xf02c667000000000, + 0x21e3dfaf00000000, 0x62f7a4b800000000, 0xa7cb298100000000, + 0xe4df529600000000, 0x2db233f200000000, 0x6ea648e500000000, + 0xab9ac5dc00000000, 0xe88ebecb00000000, 0xeb81363a00000000, + 0xa8954d2d00000000, 0x6da9c01400000000, 0x2ebdbb0300000000, + 0xe7d0da6700000000, 0xa4c4a17000000000, 0x61f82c4900000000, + 0x22ec575e00000000, 0xf323ee8100000000, 0xb037959600000000, + 0x750b18af00000000, 0x361f63b800000000, 0xff7202dc00000000, + 0xbc6679cb00000000, 0x795af4f200000000, 0x3a4e8fe500000000, + 0x9ac3f69600000000, 0xd9d78d8100000000, 0x1ceb00b800000000, + 0x5fff7baf00000000, 0x96921acb00000000, 0xd58661dc00000000, + 0x10baece500000000, 0x53ae97f200000000, 0x82612e2d00000000, + 0xc175553a00000000, 0x0449d80300000000, 0x475da31400000000, + 0x8e30c27000000000, 0xcd24b96700000000, 0x0818345e00000000, + 0x4b0c4f4900000000}, + {0x0000000000000000, 0x3e6bc2ef00000000, 0x3dd0f50400000000, + 0x03bb37eb00000000, 0x7aa0eb0900000000, 0x44cb29e600000000, + 0x47701e0d00000000, 0x791bdce200000000, 0xf440d71300000000, + 0xca2b15fc00000000, 0xc990221700000000, 0xf7fbe0f800000000, + 0x8ee03c1a00000000, 0xb08bfef500000000, 0xb330c91e00000000, + 0x8d5b0bf100000000, 0xe881ae2700000000, 0xd6ea6cc800000000, + 0xd5515b2300000000, 0xeb3a99cc00000000, 0x9221452e00000000, + 0xac4a87c100000000, 0xaff1b02a00000000, 0x919a72c500000000, + 0x1cc1793400000000, 0x22aabbdb00000000, 0x21118c3000000000, + 0x1f7a4edf00000000, 0x6661923d00000000, 0x580a50d200000000, + 0x5bb1673900000000, 0x65daa5d600000000, 0xd0035d4f00000000, + 0xee689fa000000000, 0xedd3a84b00000000, 0xd3b86aa400000000, + 0xaaa3b64600000000, 0x94c874a900000000, 0x9773434200000000, + 0xa91881ad00000000, 0x24438a5c00000000, 0x1a2848b300000000, + 0x19937f5800000000, 0x27f8bdb700000000, 0x5ee3615500000000, + 0x6088a3ba00000000, 0x6333945100000000, 0x5d5856be00000000, + 0x3882f36800000000, 0x06e9318700000000, 0x0552066c00000000, + 0x3b39c48300000000, 0x4222186100000000, 0x7c49da8e00000000, + 0x7ff2ed6500000000, 0x41992f8a00000000, 0xccc2247b00000000, + 0xf2a9e69400000000, 0xf112d17f00000000, 0xcf79139000000000, + 0xb662cf7200000000, 0x88090d9d00000000, 0x8bb23a7600000000, + 0xb5d9f89900000000, 0xa007ba9e00000000, 0x9e6c787100000000, + 0x9dd74f9a00000000, 0xa3bc8d7500000000, 0xdaa7519700000000, + 0xe4cc937800000000, 0xe777a49300000000, 0xd91c667c00000000, + 0x54476d8d00000000, 0x6a2caf6200000000, 0x6997988900000000, + 0x57fc5a6600000000, 0x2ee7868400000000, 0x108c446b00000000, + 0x1337738000000000, 0x2d5cb16f00000000, 0x488614b900000000, + 0x76edd65600000000, 0x7556e1bd00000000, 0x4b3d235200000000, + 0x3226ffb000000000, 0x0c4d3d5f00000000, 0x0ff60ab400000000, + 0x319dc85b00000000, 0xbcc6c3aa00000000, 0x82ad014500000000, + 0x811636ae00000000, 0xbf7df44100000000, 0xc66628a300000000, + 0xf80dea4c00000000, 0xfbb6dda700000000, 0xc5dd1f4800000000, + 0x7004e7d100000000, 0x4e6f253e00000000, 0x4dd412d500000000, + 0x73bfd03a00000000, 0x0aa40cd800000000, 0x34cfce3700000000, + 0x3774f9dc00000000, 0x091f3b3300000000, 0x844430c200000000, + 0xba2ff22d00000000, 0xb994c5c600000000, 0x87ff072900000000, + 0xfee4dbcb00000000, 0xc08f192400000000, 0xc3342ecf00000000, + 0xfd5fec2000000000, 0x988549f600000000, 0xa6ee8b1900000000, + 0xa555bcf200000000, 0x9b3e7e1d00000000, 0xe225a2ff00000000, + 0xdc4e601000000000, 0xdff557fb00000000, 0xe19e951400000000, + 0x6cc59ee500000000, 0x52ae5c0a00000000, 0x51156be100000000, + 0x6f7ea90e00000000, 0x166575ec00000000, 0x280eb70300000000, + 0x2bb580e800000000, 0x15de420700000000, 0x010905e600000000, + 0x3f62c70900000000, 0x3cd9f0e200000000, 0x02b2320d00000000, + 0x7ba9eeef00000000, 0x45c22c0000000000, 0x46791beb00000000, + 0x7812d90400000000, 0xf549d2f500000000, 0xcb22101a00000000, + 0xc89927f100000000, 0xf6f2e51e00000000, 0x8fe939fc00000000, + 0xb182fb1300000000, 0xb239ccf800000000, 0x8c520e1700000000, + 0xe988abc100000000, 0xd7e3692e00000000, 0xd4585ec500000000, + 0xea339c2a00000000, 0x932840c800000000, 0xad43822700000000, + 0xaef8b5cc00000000, 0x9093772300000000, 0x1dc87cd200000000, + 0x23a3be3d00000000, 0x201889d600000000, 0x1e734b3900000000, + 0x676897db00000000, 0x5903553400000000, 0x5ab862df00000000, + 0x64d3a03000000000, 0xd10a58a900000000, 0xef619a4600000000, + 0xecdaadad00000000, 0xd2b16f4200000000, 0xabaab3a000000000, + 0x95c1714f00000000, 0x967a46a400000000, 0xa811844b00000000, + 0x254a8fba00000000, 0x1b214d5500000000, 0x189a7abe00000000, + 0x26f1b85100000000, 0x5fea64b300000000, 0x6181a65c00000000, + 0x623a91b700000000, 0x5c51535800000000, 0x398bf68e00000000, + 0x07e0346100000000, 0x045b038a00000000, 0x3a30c16500000000, + 0x432b1d8700000000, 0x7d40df6800000000, 0x7efbe88300000000, + 0x40902a6c00000000, 0xcdcb219d00000000, 0xf3a0e37200000000, + 0xf01bd49900000000, 0xce70167600000000, 0xb76bca9400000000, + 0x8900087b00000000, 0x8abb3f9000000000, 0xb4d0fd7f00000000, + 0xa10ebf7800000000, 0x9f657d9700000000, 0x9cde4a7c00000000, + 0xa2b5889300000000, 0xdbae547100000000, 0xe5c5969e00000000, + 0xe67ea17500000000, 0xd815639a00000000, 0x554e686b00000000, + 0x6b25aa8400000000, 0x689e9d6f00000000, 0x56f55f8000000000, + 0x2fee836200000000, 0x1185418d00000000, 0x123e766600000000, + 0x2c55b48900000000, 0x498f115f00000000, 0x77e4d3b000000000, + 0x745fe45b00000000, 0x4a3426b400000000, 0x332ffa5600000000, + 0x0d4438b900000000, 0x0eff0f5200000000, 0x3094cdbd00000000, + 0xbdcfc64c00000000, 0x83a404a300000000, 0x801f334800000000, + 0xbe74f1a700000000, 0xc76f2d4500000000, 0xf904efaa00000000, + 0xfabfd84100000000, 0xc4d41aae00000000, 0x710de23700000000, + 0x4f6620d800000000, 0x4cdd173300000000, 0x72b6d5dc00000000, + 0x0bad093e00000000, 0x35c6cbd100000000, 0x367dfc3a00000000, + 0x08163ed500000000, 0x854d352400000000, 0xbb26f7cb00000000, + 0xb89dc02000000000, 0x86f602cf00000000, 0xffedde2d00000000, + 0xc1861cc200000000, 0xc23d2b2900000000, 0xfc56e9c600000000, + 0x998c4c1000000000, 0xa7e78eff00000000, 0xa45cb91400000000, + 0x9a377bfb00000000, 0xe32ca71900000000, 0xdd4765f600000000, + 0xdefc521d00000000, 0xe09790f200000000, 0x6dcc9b0300000000, + 0x53a759ec00000000, 0x501c6e0700000000, 0x6e77ace800000000, + 0x176c700a00000000, 0x2907b2e500000000, 0x2abc850e00000000, + 0x14d747e100000000}, + {0x0000000000000000, 0xc0df8ec100000000, 0xc1b96c5800000000, + 0x0166e29900000000, 0x8273d9b000000000, 0x42ac577100000000, + 0x43cab5e800000000, 0x83153b2900000000, 0x45e1c3ba00000000, + 0x853e4d7b00000000, 0x8458afe200000000, 0x4487212300000000, + 0xc7921a0a00000000, 0x074d94cb00000000, 0x062b765200000000, + 0xc6f4f89300000000, 0xcbc4f6ae00000000, 0x0b1b786f00000000, + 0x0a7d9af600000000, 0xcaa2143700000000, 0x49b72f1e00000000, + 0x8968a1df00000000, 0x880e434600000000, 0x48d1cd8700000000, + 0x8e25351400000000, 0x4efabbd500000000, 0x4f9c594c00000000, + 0x8f43d78d00000000, 0x0c56eca400000000, 0xcc89626500000000, + 0xcdef80fc00000000, 0x0d300e3d00000000, 0xd78f9c8600000000, + 0x1750124700000000, 0x1636f0de00000000, 0xd6e97e1f00000000, + 0x55fc453600000000, 0x9523cbf700000000, 0x9445296e00000000, + 0x549aa7af00000000, 0x926e5f3c00000000, 0x52b1d1fd00000000, + 0x53d7336400000000, 0x9308bda500000000, 0x101d868c00000000, + 0xd0c2084d00000000, 0xd1a4ead400000000, 0x117b641500000000, + 0x1c4b6a2800000000, 0xdc94e4e900000000, 0xddf2067000000000, + 0x1d2d88b100000000, 0x9e38b39800000000, 0x5ee73d5900000000, + 0x5f81dfc000000000, 0x9f5e510100000000, 0x59aaa99200000000, + 0x9975275300000000, 0x9813c5ca00000000, 0x58cc4b0b00000000, + 0xdbd9702200000000, 0x1b06fee300000000, 0x1a601c7a00000000, + 0xdabf92bb00000000, 0xef1948d600000000, 0x2fc6c61700000000, + 0x2ea0248e00000000, 0xee7faa4f00000000, 0x6d6a916600000000, + 0xadb51fa700000000, 0xacd3fd3e00000000, 0x6c0c73ff00000000, + 0xaaf88b6c00000000, 0x6a2705ad00000000, 0x6b41e73400000000, + 0xab9e69f500000000, 0x288b52dc00000000, 0xe854dc1d00000000, + 0xe9323e8400000000, 0x29edb04500000000, 0x24ddbe7800000000, + 0xe40230b900000000, 0xe564d22000000000, 0x25bb5ce100000000, + 0xa6ae67c800000000, 0x6671e90900000000, 0x67170b9000000000, + 0xa7c8855100000000, 0x613c7dc200000000, 0xa1e3f30300000000, + 0xa085119a00000000, 0x605a9f5b00000000, 0xe34fa47200000000, + 0x23902ab300000000, 0x22f6c82a00000000, 0xe22946eb00000000, + 0x3896d45000000000, 0xf8495a9100000000, 0xf92fb80800000000, + 0x39f036c900000000, 0xbae50de000000000, 0x7a3a832100000000, + 0x7b5c61b800000000, 0xbb83ef7900000000, 0x7d7717ea00000000, + 0xbda8992b00000000, 0xbcce7bb200000000, 0x7c11f57300000000, + 0xff04ce5a00000000, 0x3fdb409b00000000, 0x3ebda20200000000, + 0xfe622cc300000000, 0xf35222fe00000000, 0x338dac3f00000000, + 0x32eb4ea600000000, 0xf234c06700000000, 0x7121fb4e00000000, + 0xb1fe758f00000000, 0xb098971600000000, 0x704719d700000000, + 0xb6b3e14400000000, 0x766c6f8500000000, 0x770a8d1c00000000, + 0xb7d503dd00000000, 0x34c038f400000000, 0xf41fb63500000000, + 0xf57954ac00000000, 0x35a6da6d00000000, 0x9f35e17700000000, + 0x5fea6fb600000000, 0x5e8c8d2f00000000, 0x9e5303ee00000000, + 0x1d4638c700000000, 0xdd99b60600000000, 0xdcff549f00000000, + 0x1c20da5e00000000, 0xdad422cd00000000, 0x1a0bac0c00000000, + 0x1b6d4e9500000000, 0xdbb2c05400000000, 0x58a7fb7d00000000, + 0x987875bc00000000, 0x991e972500000000, 0x59c119e400000000, + 0x54f117d900000000, 0x942e991800000000, 0x95487b8100000000, + 0x5597f54000000000, 0xd682ce6900000000, 0x165d40a800000000, + 0x173ba23100000000, 0xd7e42cf000000000, 0x1110d46300000000, + 0xd1cf5aa200000000, 0xd0a9b83b00000000, 0x107636fa00000000, + 0x93630dd300000000, 0x53bc831200000000, 0x52da618b00000000, + 0x9205ef4a00000000, 0x48ba7df100000000, 0x8865f33000000000, + 0x890311a900000000, 0x49dc9f6800000000, 0xcac9a44100000000, + 0x0a162a8000000000, 0x0b70c81900000000, 0xcbaf46d800000000, + 0x0d5bbe4b00000000, 0xcd84308a00000000, 0xcce2d21300000000, + 0x0c3d5cd200000000, 0x8f2867fb00000000, 0x4ff7e93a00000000, + 0x4e910ba300000000, 0x8e4e856200000000, 0x837e8b5f00000000, + 0x43a1059e00000000, 0x42c7e70700000000, 0x821869c600000000, + 0x010d52ef00000000, 0xc1d2dc2e00000000, 0xc0b43eb700000000, + 0x006bb07600000000, 0xc69f48e500000000, 0x0640c62400000000, + 0x072624bd00000000, 0xc7f9aa7c00000000, 0x44ec915500000000, + 0x84331f9400000000, 0x8555fd0d00000000, 0x458a73cc00000000, + 0x702ca9a100000000, 0xb0f3276000000000, 0xb195c5f900000000, + 0x714a4b3800000000, 0xf25f701100000000, 0x3280fed000000000, + 0x33e61c4900000000, 0xf339928800000000, 0x35cd6a1b00000000, + 0xf512e4da00000000, 0xf474064300000000, 0x34ab888200000000, + 0xb7beb3ab00000000, 0x77613d6a00000000, 0x7607dff300000000, + 0xb6d8513200000000, 0xbbe85f0f00000000, 0x7b37d1ce00000000, + 0x7a51335700000000, 0xba8ebd9600000000, 0x399b86bf00000000, + 0xf944087e00000000, 0xf822eae700000000, 0x38fd642600000000, + 0xfe099cb500000000, 0x3ed6127400000000, 0x3fb0f0ed00000000, + 0xff6f7e2c00000000, 0x7c7a450500000000, 0xbca5cbc400000000, + 0xbdc3295d00000000, 0x7d1ca79c00000000, 0xa7a3352700000000, + 0x677cbbe600000000, 0x661a597f00000000, 0xa6c5d7be00000000, + 0x25d0ec9700000000, 0xe50f625600000000, 0xe46980cf00000000, + 0x24b60e0e00000000, 0xe242f69d00000000, 0x229d785c00000000, + 0x23fb9ac500000000, 0xe324140400000000, 0x60312f2d00000000, + 0xa0eea1ec00000000, 0xa188437500000000, 0x6157cdb400000000, + 0x6c67c38900000000, 0xacb84d4800000000, 0xaddeafd100000000, + 0x6d01211000000000, 0xee141a3900000000, 0x2ecb94f800000000, + 0x2fad766100000000, 0xef72f8a000000000, 0x2986003300000000, + 0xe9598ef200000000, 0xe83f6c6b00000000, 0x28e0e2aa00000000, + 0xabf5d98300000000, 0x6b2a574200000000, 0x6a4cb5db00000000, + 0xaa933b1a00000000}, + {0x0000000000000000, 0x6f4ca59b00000000, 0x9f9e3bec00000000, + 0xf0d29e7700000000, 0x7f3b060300000000, 0x1077a39800000000, + 0xe0a53def00000000, 0x8fe9987400000000, 0xfe760c0600000000, + 0x913aa99d00000000, 0x61e837ea00000000, 0x0ea4927100000000, + 0x814d0a0500000000, 0xee01af9e00000000, 0x1ed331e900000000, + 0x719f947200000000, 0xfced180c00000000, 0x93a1bd9700000000, + 0x637323e000000000, 0x0c3f867b00000000, 0x83d61e0f00000000, + 0xec9abb9400000000, 0x1c4825e300000000, 0x7304807800000000, + 0x029b140a00000000, 0x6dd7b19100000000, 0x9d052fe600000000, + 0xf2498a7d00000000, 0x7da0120900000000, 0x12ecb79200000000, + 0xe23e29e500000000, 0x8d728c7e00000000, 0xf8db311800000000, + 0x9797948300000000, 0x67450af400000000, 0x0809af6f00000000, + 0x87e0371b00000000, 0xe8ac928000000000, 0x187e0cf700000000, + 0x7732a96c00000000, 0x06ad3d1e00000000, 0x69e1988500000000, + 0x993306f200000000, 0xf67fa36900000000, 0x79963b1d00000000, + 0x16da9e8600000000, 0xe60800f100000000, 0x8944a56a00000000, + 0x0436291400000000, 0x6b7a8c8f00000000, 0x9ba812f800000000, + 0xf4e4b76300000000, 0x7b0d2f1700000000, 0x14418a8c00000000, + 0xe49314fb00000000, 0x8bdfb16000000000, 0xfa40251200000000, + 0x950c808900000000, 0x65de1efe00000000, 0x0a92bb6500000000, + 0x857b231100000000, 0xea37868a00000000, 0x1ae518fd00000000, + 0x75a9bd6600000000, 0xf0b7633000000000, 0x9ffbc6ab00000000, + 0x6f2958dc00000000, 0x0065fd4700000000, 0x8f8c653300000000, + 0xe0c0c0a800000000, 0x10125edf00000000, 0x7f5efb4400000000, + 0x0ec16f3600000000, 0x618dcaad00000000, 0x915f54da00000000, + 0xfe13f14100000000, 0x71fa693500000000, 0x1eb6ccae00000000, + 0xee6452d900000000, 0x8128f74200000000, 0x0c5a7b3c00000000, + 0x6316dea700000000, 0x93c440d000000000, 0xfc88e54b00000000, + 0x73617d3f00000000, 0x1c2dd8a400000000, 0xecff46d300000000, + 0x83b3e34800000000, 0xf22c773a00000000, 0x9d60d2a100000000, + 0x6db24cd600000000, 0x02fee94d00000000, 0x8d17713900000000, + 0xe25bd4a200000000, 0x12894ad500000000, 0x7dc5ef4e00000000, + 0x086c522800000000, 0x6720f7b300000000, 0x97f269c400000000, + 0xf8becc5f00000000, 0x7757542b00000000, 0x181bf1b000000000, + 0xe8c96fc700000000, 0x8785ca5c00000000, 0xf61a5e2e00000000, + 0x9956fbb500000000, 0x698465c200000000, 0x06c8c05900000000, + 0x8921582d00000000, 0xe66dfdb600000000, 0x16bf63c100000000, + 0x79f3c65a00000000, 0xf4814a2400000000, 0x9bcdefbf00000000, + 0x6b1f71c800000000, 0x0453d45300000000, 0x8bba4c2700000000, + 0xe4f6e9bc00000000, 0x142477cb00000000, 0x7b68d25000000000, + 0x0af7462200000000, 0x65bbe3b900000000, 0x95697dce00000000, + 0xfa25d85500000000, 0x75cc402100000000, 0x1a80e5ba00000000, + 0xea527bcd00000000, 0x851ede5600000000, 0xe06fc76000000000, + 0x8f2362fb00000000, 0x7ff1fc8c00000000, 0x10bd591700000000, + 0x9f54c16300000000, 0xf01864f800000000, 0x00cafa8f00000000, + 0x6f865f1400000000, 0x1e19cb6600000000, 0x71556efd00000000, + 0x8187f08a00000000, 0xeecb551100000000, 0x6122cd6500000000, + 0x0e6e68fe00000000, 0xfebcf68900000000, 0x91f0531200000000, + 0x1c82df6c00000000, 0x73ce7af700000000, 0x831ce48000000000, + 0xec50411b00000000, 0x63b9d96f00000000, 0x0cf57cf400000000, + 0xfc27e28300000000, 0x936b471800000000, 0xe2f4d36a00000000, + 0x8db876f100000000, 0x7d6ae88600000000, 0x12264d1d00000000, + 0x9dcfd56900000000, 0xf28370f200000000, 0x0251ee8500000000, + 0x6d1d4b1e00000000, 0x18b4f67800000000, 0x77f853e300000000, + 0x872acd9400000000, 0xe866680f00000000, 0x678ff07b00000000, + 0x08c355e000000000, 0xf811cb9700000000, 0x975d6e0c00000000, + 0xe6c2fa7e00000000, 0x898e5fe500000000, 0x795cc19200000000, + 0x1610640900000000, 0x99f9fc7d00000000, 0xf6b559e600000000, + 0x0667c79100000000, 0x692b620a00000000, 0xe459ee7400000000, + 0x8b154bef00000000, 0x7bc7d59800000000, 0x148b700300000000, + 0x9b62e87700000000, 0xf42e4dec00000000, 0x04fcd39b00000000, + 0x6bb0760000000000, 0x1a2fe27200000000, 0x756347e900000000, + 0x85b1d99e00000000, 0xeafd7c0500000000, 0x6514e47100000000, + 0x0a5841ea00000000, 0xfa8adf9d00000000, 0x95c67a0600000000, + 0x10d8a45000000000, 0x7f9401cb00000000, 0x8f469fbc00000000, + 0xe00a3a2700000000, 0x6fe3a25300000000, 0x00af07c800000000, + 0xf07d99bf00000000, 0x9f313c2400000000, 0xeeaea85600000000, + 0x81e20dcd00000000, 0x713093ba00000000, 0x1e7c362100000000, + 0x9195ae5500000000, 0xfed90bce00000000, 0x0e0b95b900000000, + 0x6147302200000000, 0xec35bc5c00000000, 0x837919c700000000, + 0x73ab87b000000000, 0x1ce7222b00000000, 0x930eba5f00000000, + 0xfc421fc400000000, 0x0c9081b300000000, 0x63dc242800000000, + 0x1243b05a00000000, 0x7d0f15c100000000, 0x8ddd8bb600000000, + 0xe2912e2d00000000, 0x6d78b65900000000, 0x023413c200000000, + 0xf2e68db500000000, 0x9daa282e00000000, 0xe803954800000000, + 0x874f30d300000000, 0x779daea400000000, 0x18d10b3f00000000, + 0x9738934b00000000, 0xf87436d000000000, 0x08a6a8a700000000, + 0x67ea0d3c00000000, 0x1675994e00000000, 0x79393cd500000000, + 0x89eba2a200000000, 0xe6a7073900000000, 0x694e9f4d00000000, + 0x06023ad600000000, 0xf6d0a4a100000000, 0x999c013a00000000, + 0x14ee8d4400000000, 0x7ba228df00000000, 0x8b70b6a800000000, + 0xe43c133300000000, 0x6bd58b4700000000, 0x04992edc00000000, + 0xf44bb0ab00000000, 0x9b07153000000000, 0xea98814200000000, + 0x85d424d900000000, 0x7506baae00000000, 0x1a4a1f3500000000, + 0x95a3874100000000, 0xfaef22da00000000, 0x0a3dbcad00000000, + 0x6571193600000000}, + {0x0000000000000000, 0x85d996dd00000000, 0x4bb55c6000000000, + 0xce6ccabd00000000, 0x966ab9c000000000, 0x13b32f1d00000000, + 0xdddfe5a000000000, 0x5806737d00000000, 0x6dd3035a00000000, + 0xe80a958700000000, 0x26665f3a00000000, 0xa3bfc9e700000000, + 0xfbb9ba9a00000000, 0x7e602c4700000000, 0xb00ce6fa00000000, + 0x35d5702700000000, 0xdaa607b400000000, 0x5f7f916900000000, + 0x91135bd400000000, 0x14cacd0900000000, 0x4cccbe7400000000, + 0xc91528a900000000, 0x0779e21400000000, 0x82a074c900000000, + 0xb77504ee00000000, 0x32ac923300000000, 0xfcc0588e00000000, + 0x7919ce5300000000, 0x211fbd2e00000000, 0xa4c62bf300000000, + 0x6aaae14e00000000, 0xef73779300000000, 0xf54b7eb300000000, + 0x7092e86e00000000, 0xbefe22d300000000, 0x3b27b40e00000000, + 0x6321c77300000000, 0xe6f851ae00000000, 0x28949b1300000000, + 0xad4d0dce00000000, 0x98987de900000000, 0x1d41eb3400000000, + 0xd32d218900000000, 0x56f4b75400000000, 0x0ef2c42900000000, + 0x8b2b52f400000000, 0x4547984900000000, 0xc09e0e9400000000, + 0x2fed790700000000, 0xaa34efda00000000, 0x6458256700000000, + 0xe181b3ba00000000, 0xb987c0c700000000, 0x3c5e561a00000000, + 0xf2329ca700000000, 0x77eb0a7a00000000, 0x423e7a5d00000000, + 0xc7e7ec8000000000, 0x098b263d00000000, 0x8c52b0e000000000, + 0xd454c39d00000000, 0x518d554000000000, 0x9fe19ffd00000000, + 0x1a38092000000000, 0xab918dbd00000000, 0x2e481b6000000000, + 0xe024d1dd00000000, 0x65fd470000000000, 0x3dfb347d00000000, + 0xb822a2a000000000, 0x764e681d00000000, 0xf397fec000000000, + 0xc6428ee700000000, 0x439b183a00000000, 0x8df7d28700000000, + 0x082e445a00000000, 0x5028372700000000, 0xd5f1a1fa00000000, + 0x1b9d6b4700000000, 0x9e44fd9a00000000, 0x71378a0900000000, + 0xf4ee1cd400000000, 0x3a82d66900000000, 0xbf5b40b400000000, + 0xe75d33c900000000, 0x6284a51400000000, 0xace86fa900000000, + 0x2931f97400000000, 0x1ce4895300000000, 0x993d1f8e00000000, + 0x5751d53300000000, 0xd28843ee00000000, 0x8a8e309300000000, + 0x0f57a64e00000000, 0xc13b6cf300000000, 0x44e2fa2e00000000, + 0x5edaf30e00000000, 0xdb0365d300000000, 0x156faf6e00000000, + 0x90b639b300000000, 0xc8b04ace00000000, 0x4d69dc1300000000, + 0x830516ae00000000, 0x06dc807300000000, 0x3309f05400000000, + 0xb6d0668900000000, 0x78bcac3400000000, 0xfd653ae900000000, + 0xa563499400000000, 0x20badf4900000000, 0xeed615f400000000, + 0x6b0f832900000000, 0x847cf4ba00000000, 0x01a5626700000000, + 0xcfc9a8da00000000, 0x4a103e0700000000, 0x12164d7a00000000, + 0x97cfdba700000000, 0x59a3111a00000000, 0xdc7a87c700000000, + 0xe9aff7e000000000, 0x6c76613d00000000, 0xa21aab8000000000, + 0x27c33d5d00000000, 0x7fc54e2000000000, 0xfa1cd8fd00000000, + 0x3470124000000000, 0xb1a9849d00000000, 0x17256aa000000000, + 0x92fcfc7d00000000, 0x5c9036c000000000, 0xd949a01d00000000, + 0x814fd36000000000, 0x049645bd00000000, 0xcafa8f0000000000, + 0x4f2319dd00000000, 0x7af669fa00000000, 0xff2fff2700000000, + 0x3143359a00000000, 0xb49aa34700000000, 0xec9cd03a00000000, + 0x694546e700000000, 0xa7298c5a00000000, 0x22f01a8700000000, + 0xcd836d1400000000, 0x485afbc900000000, 0x8636317400000000, + 0x03efa7a900000000, 0x5be9d4d400000000, 0xde30420900000000, + 0x105c88b400000000, 0x95851e6900000000, 0xa0506e4e00000000, + 0x2589f89300000000, 0xebe5322e00000000, 0x6e3ca4f300000000, + 0x363ad78e00000000, 0xb3e3415300000000, 0x7d8f8bee00000000, + 0xf8561d3300000000, 0xe26e141300000000, 0x67b782ce00000000, + 0xa9db487300000000, 0x2c02deae00000000, 0x7404add300000000, + 0xf1dd3b0e00000000, 0x3fb1f1b300000000, 0xba68676e00000000, + 0x8fbd174900000000, 0x0a64819400000000, 0xc4084b2900000000, + 0x41d1ddf400000000, 0x19d7ae8900000000, 0x9c0e385400000000, + 0x5262f2e900000000, 0xd7bb643400000000, 0x38c813a700000000, + 0xbd11857a00000000, 0x737d4fc700000000, 0xf6a4d91a00000000, + 0xaea2aa6700000000, 0x2b7b3cba00000000, 0xe517f60700000000, + 0x60ce60da00000000, 0x551b10fd00000000, 0xd0c2862000000000, + 0x1eae4c9d00000000, 0x9b77da4000000000, 0xc371a93d00000000, + 0x46a83fe000000000, 0x88c4f55d00000000, 0x0d1d638000000000, + 0xbcb4e71d00000000, 0x396d71c000000000, 0xf701bb7d00000000, + 0x72d82da000000000, 0x2ade5edd00000000, 0xaf07c80000000000, + 0x616b02bd00000000, 0xe4b2946000000000, 0xd167e44700000000, + 0x54be729a00000000, 0x9ad2b82700000000, 0x1f0b2efa00000000, + 0x470d5d8700000000, 0xc2d4cb5a00000000, 0x0cb801e700000000, + 0x8961973a00000000, 0x6612e0a900000000, 0xe3cb767400000000, + 0x2da7bcc900000000, 0xa87e2a1400000000, 0xf078596900000000, + 0x75a1cfb400000000, 0xbbcd050900000000, 0x3e1493d400000000, + 0x0bc1e3f300000000, 0x8e18752e00000000, 0x4074bf9300000000, + 0xc5ad294e00000000, 0x9dab5a3300000000, 0x1872ccee00000000, + 0xd61e065300000000, 0x53c7908e00000000, 0x49ff99ae00000000, + 0xcc260f7300000000, 0x024ac5ce00000000, 0x8793531300000000, + 0xdf95206e00000000, 0x5a4cb6b300000000, 0x94207c0e00000000, + 0x11f9ead300000000, 0x242c9af400000000, 0xa1f50c2900000000, + 0x6f99c69400000000, 0xea40504900000000, 0xb246233400000000, + 0x379fb5e900000000, 0xf9f37f5400000000, 0x7c2ae98900000000, + 0x93599e1a00000000, 0x168008c700000000, 0xd8ecc27a00000000, + 0x5d3554a700000000, 0x053327da00000000, 0x80eab10700000000, + 0x4e867bba00000000, 0xcb5fed6700000000, 0xfe8a9d4000000000, + 0x7b530b9d00000000, 0xb53fc12000000000, 0x30e657fd00000000, + 0x68e0248000000000, 0xed39b25d00000000, 0x235578e000000000, + 0xa68cee3d00000000}, + {0x0000000000000000, 0x76e10f9d00000000, 0xadc46ee100000000, + 0xdb25617c00000000, 0x1b8fac1900000000, 0x6d6ea38400000000, + 0xb64bc2f800000000, 0xc0aacd6500000000, 0x361e593300000000, + 0x40ff56ae00000000, 0x9bda37d200000000, 0xed3b384f00000000, + 0x2d91f52a00000000, 0x5b70fab700000000, 0x80559bcb00000000, + 0xf6b4945600000000, 0x6c3cb26600000000, 0x1addbdfb00000000, + 0xc1f8dc8700000000, 0xb719d31a00000000, 0x77b31e7f00000000, + 0x015211e200000000, 0xda77709e00000000, 0xac967f0300000000, + 0x5a22eb5500000000, 0x2cc3e4c800000000, 0xf7e685b400000000, + 0x81078a2900000000, 0x41ad474c00000000, 0x374c48d100000000, + 0xec6929ad00000000, 0x9a88263000000000, 0xd87864cd00000000, + 0xae996b5000000000, 0x75bc0a2c00000000, 0x035d05b100000000, + 0xc3f7c8d400000000, 0xb516c74900000000, 0x6e33a63500000000, + 0x18d2a9a800000000, 0xee663dfe00000000, 0x9887326300000000, + 0x43a2531f00000000, 0x35435c8200000000, 0xf5e991e700000000, + 0x83089e7a00000000, 0x582dff0600000000, 0x2eccf09b00000000, + 0xb444d6ab00000000, 0xc2a5d93600000000, 0x1980b84a00000000, + 0x6f61b7d700000000, 0xafcb7ab200000000, 0xd92a752f00000000, + 0x020f145300000000, 0x74ee1bce00000000, 0x825a8f9800000000, + 0xf4bb800500000000, 0x2f9ee17900000000, 0x597feee400000000, + 0x99d5238100000000, 0xef342c1c00000000, 0x34114d6000000000, + 0x42f042fd00000000, 0xf1f7b94100000000, 0x8716b6dc00000000, + 0x5c33d7a000000000, 0x2ad2d83d00000000, 0xea78155800000000, + 0x9c991ac500000000, 0x47bc7bb900000000, 0x315d742400000000, + 0xc7e9e07200000000, 0xb108efef00000000, 0x6a2d8e9300000000, + 0x1ccc810e00000000, 0xdc664c6b00000000, 0xaa8743f600000000, + 0x71a2228a00000000, 0x07432d1700000000, 0x9dcb0b2700000000, + 0xeb2a04ba00000000, 0x300f65c600000000, 0x46ee6a5b00000000, + 0x8644a73e00000000, 0xf0a5a8a300000000, 0x2b80c9df00000000, + 0x5d61c64200000000, 0xabd5521400000000, 0xdd345d8900000000, + 0x06113cf500000000, 0x70f0336800000000, 0xb05afe0d00000000, + 0xc6bbf19000000000, 0x1d9e90ec00000000, 0x6b7f9f7100000000, + 0x298fdd8c00000000, 0x5f6ed21100000000, 0x844bb36d00000000, + 0xf2aabcf000000000, 0x3200719500000000, 0x44e17e0800000000, + 0x9fc41f7400000000, 0xe92510e900000000, 0x1f9184bf00000000, + 0x69708b2200000000, 0xb255ea5e00000000, 0xc4b4e5c300000000, + 0x041e28a600000000, 0x72ff273b00000000, 0xa9da464700000000, + 0xdf3b49da00000000, 0x45b36fea00000000, 0x3352607700000000, + 0xe877010b00000000, 0x9e960e9600000000, 0x5e3cc3f300000000, + 0x28ddcc6e00000000, 0xf3f8ad1200000000, 0x8519a28f00000000, + 0x73ad36d900000000, 0x054c394400000000, 0xde69583800000000, + 0xa88857a500000000, 0x68229ac000000000, 0x1ec3955d00000000, + 0xc5e6f42100000000, 0xb307fbbc00000000, 0xe2ef738300000000, + 0x940e7c1e00000000, 0x4f2b1d6200000000, 0x39ca12ff00000000, + 0xf960df9a00000000, 0x8f81d00700000000, 0x54a4b17b00000000, + 0x2245bee600000000, 0xd4f12ab000000000, 0xa210252d00000000, + 0x7935445100000000, 0x0fd44bcc00000000, 0xcf7e86a900000000, + 0xb99f893400000000, 0x62bae84800000000, 0x145be7d500000000, + 0x8ed3c1e500000000, 0xf832ce7800000000, 0x2317af0400000000, + 0x55f6a09900000000, 0x955c6dfc00000000, 0xe3bd626100000000, + 0x3898031d00000000, 0x4e790c8000000000, 0xb8cd98d600000000, + 0xce2c974b00000000, 0x1509f63700000000, 0x63e8f9aa00000000, + 0xa34234cf00000000, 0xd5a33b5200000000, 0x0e865a2e00000000, + 0x786755b300000000, 0x3a97174e00000000, 0x4c7618d300000000, + 0x975379af00000000, 0xe1b2763200000000, 0x2118bb5700000000, + 0x57f9b4ca00000000, 0x8cdcd5b600000000, 0xfa3dda2b00000000, + 0x0c894e7d00000000, 0x7a6841e000000000, 0xa14d209c00000000, + 0xd7ac2f0100000000, 0x1706e26400000000, 0x61e7edf900000000, + 0xbac28c8500000000, 0xcc23831800000000, 0x56aba52800000000, + 0x204aaab500000000, 0xfb6fcbc900000000, 0x8d8ec45400000000, + 0x4d24093100000000, 0x3bc506ac00000000, 0xe0e067d000000000, + 0x9601684d00000000, 0x60b5fc1b00000000, 0x1654f38600000000, + 0xcd7192fa00000000, 0xbb909d6700000000, 0x7b3a500200000000, + 0x0ddb5f9f00000000, 0xd6fe3ee300000000, 0xa01f317e00000000, + 0x1318cac200000000, 0x65f9c55f00000000, 0xbedca42300000000, + 0xc83dabbe00000000, 0x089766db00000000, 0x7e76694600000000, + 0xa553083a00000000, 0xd3b207a700000000, 0x250693f100000000, + 0x53e79c6c00000000, 0x88c2fd1000000000, 0xfe23f28d00000000, + 0x3e893fe800000000, 0x4868307500000000, 0x934d510900000000, + 0xe5ac5e9400000000, 0x7f2478a400000000, 0x09c5773900000000, + 0xd2e0164500000000, 0xa40119d800000000, 0x64abd4bd00000000, + 0x124adb2000000000, 0xc96fba5c00000000, 0xbf8eb5c100000000, + 0x493a219700000000, 0x3fdb2e0a00000000, 0xe4fe4f7600000000, + 0x921f40eb00000000, 0x52b58d8e00000000, 0x2454821300000000, + 0xff71e36f00000000, 0x8990ecf200000000, 0xcb60ae0f00000000, + 0xbd81a19200000000, 0x66a4c0ee00000000, 0x1045cf7300000000, + 0xd0ef021600000000, 0xa60e0d8b00000000, 0x7d2b6cf700000000, + 0x0bca636a00000000, 0xfd7ef73c00000000, 0x8b9ff8a100000000, + 0x50ba99dd00000000, 0x265b964000000000, 0xe6f15b2500000000, + 0x901054b800000000, 0x4b3535c400000000, 0x3dd43a5900000000, + 0xa75c1c6900000000, 0xd1bd13f400000000, 0x0a98728800000000, + 0x7c797d1500000000, 0xbcd3b07000000000, 0xca32bfed00000000, + 0x1117de9100000000, 0x67f6d10c00000000, 0x9142455a00000000, + 0xe7a34ac700000000, 0x3c862bbb00000000, 0x4a67242600000000, + 0x8acde94300000000, 0xfc2ce6de00000000, 0x270987a200000000, + 0x51e8883f00000000}, + {0x0000000000000000, 0xe8dbfbb900000000, 0x91b186a800000000, + 0x796a7d1100000000, 0x63657c8a00000000, 0x8bbe873300000000, + 0xf2d4fa2200000000, 0x1a0f019b00000000, 0x87cc89cf00000000, + 0x6f17727600000000, 0x167d0f6700000000, 0xfea6f4de00000000, + 0xe4a9f54500000000, 0x0c720efc00000000, 0x751873ed00000000, + 0x9dc3885400000000, 0x4f9f624400000000, 0xa74499fd00000000, + 0xde2ee4ec00000000, 0x36f51f5500000000, 0x2cfa1ece00000000, + 0xc421e57700000000, 0xbd4b986600000000, 0x559063df00000000, + 0xc853eb8b00000000, 0x2088103200000000, 0x59e26d2300000000, + 0xb139969a00000000, 0xab36970100000000, 0x43ed6cb800000000, + 0x3a8711a900000000, 0xd25cea1000000000, 0x9e3ec58800000000, + 0x76e53e3100000000, 0x0f8f432000000000, 0xe754b89900000000, + 0xfd5bb90200000000, 0x158042bb00000000, 0x6cea3faa00000000, + 0x8431c41300000000, 0x19f24c4700000000, 0xf129b7fe00000000, + 0x8843caef00000000, 0x6098315600000000, 0x7a9730cd00000000, + 0x924ccb7400000000, 0xeb26b66500000000, 0x03fd4ddc00000000, + 0xd1a1a7cc00000000, 0x397a5c7500000000, 0x4010216400000000, + 0xa8cbdadd00000000, 0xb2c4db4600000000, 0x5a1f20ff00000000, + 0x23755dee00000000, 0xcbaea65700000000, 0x566d2e0300000000, + 0xbeb6d5ba00000000, 0xc7dca8ab00000000, 0x2f07531200000000, + 0x3508528900000000, 0xddd3a93000000000, 0xa4b9d42100000000, + 0x4c622f9800000000, 0x7d7bfbca00000000, 0x95a0007300000000, + 0xecca7d6200000000, 0x041186db00000000, 0x1e1e874000000000, + 0xf6c57cf900000000, 0x8faf01e800000000, 0x6774fa5100000000, + 0xfab7720500000000, 0x126c89bc00000000, 0x6b06f4ad00000000, + 0x83dd0f1400000000, 0x99d20e8f00000000, 0x7109f53600000000, + 0x0863882700000000, 0xe0b8739e00000000, 0x32e4998e00000000, + 0xda3f623700000000, 0xa3551f2600000000, 0x4b8ee49f00000000, + 0x5181e50400000000, 0xb95a1ebd00000000, 0xc03063ac00000000, + 0x28eb981500000000, 0xb528104100000000, 0x5df3ebf800000000, + 0x249996e900000000, 0xcc426d5000000000, 0xd64d6ccb00000000, + 0x3e96977200000000, 0x47fcea6300000000, 0xaf2711da00000000, + 0xe3453e4200000000, 0x0b9ec5fb00000000, 0x72f4b8ea00000000, + 0x9a2f435300000000, 0x802042c800000000, 0x68fbb97100000000, + 0x1191c46000000000, 0xf94a3fd900000000, 0x6489b78d00000000, + 0x8c524c3400000000, 0xf538312500000000, 0x1de3ca9c00000000, + 0x07eccb0700000000, 0xef3730be00000000, 0x965d4daf00000000, + 0x7e86b61600000000, 0xacda5c0600000000, 0x4401a7bf00000000, + 0x3d6bdaae00000000, 0xd5b0211700000000, 0xcfbf208c00000000, + 0x2764db3500000000, 0x5e0ea62400000000, 0xb6d55d9d00000000, + 0x2b16d5c900000000, 0xc3cd2e7000000000, 0xbaa7536100000000, + 0x527ca8d800000000, 0x4873a94300000000, 0xa0a852fa00000000, + 0xd9c22feb00000000, 0x3119d45200000000, 0xbbf0874e00000000, + 0x532b7cf700000000, 0x2a4101e600000000, 0xc29afa5f00000000, + 0xd895fbc400000000, 0x304e007d00000000, 0x49247d6c00000000, + 0xa1ff86d500000000, 0x3c3c0e8100000000, 0xd4e7f53800000000, + 0xad8d882900000000, 0x4556739000000000, 0x5f59720b00000000, + 0xb78289b200000000, 0xcee8f4a300000000, 0x26330f1a00000000, + 0xf46fe50a00000000, 0x1cb41eb300000000, 0x65de63a200000000, + 0x8d05981b00000000, 0x970a998000000000, 0x7fd1623900000000, + 0x06bb1f2800000000, 0xee60e49100000000, 0x73a36cc500000000, + 0x9b78977c00000000, 0xe212ea6d00000000, 0x0ac911d400000000, + 0x10c6104f00000000, 0xf81debf600000000, 0x817796e700000000, + 0x69ac6d5e00000000, 0x25ce42c600000000, 0xcd15b97f00000000, + 0xb47fc46e00000000, 0x5ca43fd700000000, 0x46ab3e4c00000000, + 0xae70c5f500000000, 0xd71ab8e400000000, 0x3fc1435d00000000, + 0xa202cb0900000000, 0x4ad930b000000000, 0x33b34da100000000, + 0xdb68b61800000000, 0xc167b78300000000, 0x29bc4c3a00000000, + 0x50d6312b00000000, 0xb80dca9200000000, 0x6a51208200000000, + 0x828adb3b00000000, 0xfbe0a62a00000000, 0x133b5d9300000000, + 0x09345c0800000000, 0xe1efa7b100000000, 0x9885daa000000000, + 0x705e211900000000, 0xed9da94d00000000, 0x054652f400000000, + 0x7c2c2fe500000000, 0x94f7d45c00000000, 0x8ef8d5c700000000, + 0x66232e7e00000000, 0x1f49536f00000000, 0xf792a8d600000000, + 0xc68b7c8400000000, 0x2e50873d00000000, 0x573afa2c00000000, + 0xbfe1019500000000, 0xa5ee000e00000000, 0x4d35fbb700000000, + 0x345f86a600000000, 0xdc847d1f00000000, 0x4147f54b00000000, + 0xa99c0ef200000000, 0xd0f673e300000000, 0x382d885a00000000, + 0x222289c100000000, 0xcaf9727800000000, 0xb3930f6900000000, + 0x5b48f4d000000000, 0x89141ec000000000, 0x61cfe57900000000, + 0x18a5986800000000, 0xf07e63d100000000, 0xea71624a00000000, + 0x02aa99f300000000, 0x7bc0e4e200000000, 0x931b1f5b00000000, + 0x0ed8970f00000000, 0xe6036cb600000000, 0x9f6911a700000000, + 0x77b2ea1e00000000, 0x6dbdeb8500000000, 0x8566103c00000000, + 0xfc0c6d2d00000000, 0x14d7969400000000, 0x58b5b90c00000000, + 0xb06e42b500000000, 0xc9043fa400000000, 0x21dfc41d00000000, + 0x3bd0c58600000000, 0xd30b3e3f00000000, 0xaa61432e00000000, + 0x42bab89700000000, 0xdf7930c300000000, 0x37a2cb7a00000000, + 0x4ec8b66b00000000, 0xa6134dd200000000, 0xbc1c4c4900000000, + 0x54c7b7f000000000, 0x2dadcae100000000, 0xc576315800000000, + 0x172adb4800000000, 0xfff120f100000000, 0x869b5de000000000, + 0x6e40a65900000000, 0x744fa7c200000000, 0x9c945c7b00000000, + 0xe5fe216a00000000, 0x0d25dad300000000, 0x90e6528700000000, + 0x783da93e00000000, 0x0157d42f00000000, 0xe98c2f9600000000, + 0xf3832e0d00000000, 0x1b58d5b400000000, 0x6232a8a500000000, + 0x8ae9531c00000000}, + {0x0000000000000000, 0x919168ae00000000, 0x6325a08700000000, + 0xf2b4c82900000000, 0x874c31d400000000, 0x16dd597a00000000, + 0xe469915300000000, 0x75f8f9fd00000000, 0x4f9f137300000000, + 0xde0e7bdd00000000, 0x2cbab3f400000000, 0xbd2bdb5a00000000, + 0xc8d322a700000000, 0x59424a0900000000, 0xabf6822000000000, + 0x3a67ea8e00000000, 0x9e3e27e600000000, 0x0faf4f4800000000, + 0xfd1b876100000000, 0x6c8aefcf00000000, 0x1972163200000000, + 0x88e37e9c00000000, 0x7a57b6b500000000, 0xebc6de1b00000000, + 0xd1a1349500000000, 0x40305c3b00000000, 0xb284941200000000, + 0x2315fcbc00000000, 0x56ed054100000000, 0xc77c6def00000000, + 0x35c8a5c600000000, 0xa459cd6800000000, 0x7d7b3f1700000000, + 0xecea57b900000000, 0x1e5e9f9000000000, 0x8fcff73e00000000, + 0xfa370ec300000000, 0x6ba6666d00000000, 0x9912ae4400000000, + 0x0883c6ea00000000, 0x32e42c6400000000, 0xa37544ca00000000, + 0x51c18ce300000000, 0xc050e44d00000000, 0xb5a81db000000000, + 0x2439751e00000000, 0xd68dbd3700000000, 0x471cd59900000000, + 0xe34518f100000000, 0x72d4705f00000000, 0x8060b87600000000, + 0x11f1d0d800000000, 0x6409292500000000, 0xf598418b00000000, + 0x072c89a200000000, 0x96bde10c00000000, 0xacda0b8200000000, + 0x3d4b632c00000000, 0xcfffab0500000000, 0x5e6ec3ab00000000, + 0x2b963a5600000000, 0xba0752f800000000, 0x48b39ad100000000, + 0xd922f27f00000000, 0xfaf67e2e00000000, 0x6b67168000000000, + 0x99d3dea900000000, 0x0842b60700000000, 0x7dba4ffa00000000, + 0xec2b275400000000, 0x1e9fef7d00000000, 0x8f0e87d300000000, + 0xb5696d5d00000000, 0x24f805f300000000, 0xd64ccdda00000000, + 0x47dda57400000000, 0x32255c8900000000, 0xa3b4342700000000, + 0x5100fc0e00000000, 0xc09194a000000000, 0x64c859c800000000, + 0xf559316600000000, 0x07edf94f00000000, 0x967c91e100000000, + 0xe384681c00000000, 0x721500b200000000, 0x80a1c89b00000000, + 0x1130a03500000000, 0x2b574abb00000000, 0xbac6221500000000, + 0x4872ea3c00000000, 0xd9e3829200000000, 0xac1b7b6f00000000, + 0x3d8a13c100000000, 0xcf3edbe800000000, 0x5eafb34600000000, + 0x878d413900000000, 0x161c299700000000, 0xe4a8e1be00000000, + 0x7539891000000000, 0x00c170ed00000000, 0x9150184300000000, + 0x63e4d06a00000000, 0xf275b8c400000000, 0xc812524a00000000, + 0x59833ae400000000, 0xab37f2cd00000000, 0x3aa69a6300000000, + 0x4f5e639e00000000, 0xdecf0b3000000000, 0x2c7bc31900000000, + 0xbdeaabb700000000, 0x19b366df00000000, 0x88220e7100000000, + 0x7a96c65800000000, 0xeb07aef600000000, 0x9eff570b00000000, + 0x0f6e3fa500000000, 0xfddaf78c00000000, 0x6c4b9f2200000000, + 0x562c75ac00000000, 0xc7bd1d0200000000, 0x3509d52b00000000, + 0xa498bd8500000000, 0xd160447800000000, 0x40f12cd600000000, + 0xb245e4ff00000000, 0x23d48c5100000000, 0xf4edfd5c00000000, + 0x657c95f200000000, 0x97c85ddb00000000, 0x0659357500000000, + 0x73a1cc8800000000, 0xe230a42600000000, 0x10846c0f00000000, + 0x811504a100000000, 0xbb72ee2f00000000, 0x2ae3868100000000, + 0xd8574ea800000000, 0x49c6260600000000, 0x3c3edffb00000000, + 0xadafb75500000000, 0x5f1b7f7c00000000, 0xce8a17d200000000, + 0x6ad3daba00000000, 0xfb42b21400000000, 0x09f67a3d00000000, + 0x9867129300000000, 0xed9feb6e00000000, 0x7c0e83c000000000, + 0x8eba4be900000000, 0x1f2b234700000000, 0x254cc9c900000000, + 0xb4dda16700000000, 0x4669694e00000000, 0xd7f801e000000000, + 0xa200f81d00000000, 0x339190b300000000, 0xc125589a00000000, + 0x50b4303400000000, 0x8996c24b00000000, 0x1807aae500000000, + 0xeab362cc00000000, 0x7b220a6200000000, 0x0edaf39f00000000, + 0x9f4b9b3100000000, 0x6dff531800000000, 0xfc6e3bb600000000, + 0xc609d13800000000, 0x5798b99600000000, 0xa52c71bf00000000, + 0x34bd191100000000, 0x4145e0ec00000000, 0xd0d4884200000000, + 0x2260406b00000000, 0xb3f128c500000000, 0x17a8e5ad00000000, + 0x86398d0300000000, 0x748d452a00000000, 0xe51c2d8400000000, + 0x90e4d47900000000, 0x0175bcd700000000, 0xf3c174fe00000000, + 0x62501c5000000000, 0x5837f6de00000000, 0xc9a69e7000000000, + 0x3b12565900000000, 0xaa833ef700000000, 0xdf7bc70a00000000, + 0x4eeaafa400000000, 0xbc5e678d00000000, 0x2dcf0f2300000000, + 0x0e1b837200000000, 0x9f8aebdc00000000, 0x6d3e23f500000000, + 0xfcaf4b5b00000000, 0x8957b2a600000000, 0x18c6da0800000000, + 0xea72122100000000, 0x7be37a8f00000000, 0x4184900100000000, + 0xd015f8af00000000, 0x22a1308600000000, 0xb330582800000000, + 0xc6c8a1d500000000, 0x5759c97b00000000, 0xa5ed015200000000, + 0x347c69fc00000000, 0x9025a49400000000, 0x01b4cc3a00000000, + 0xf300041300000000, 0x62916cbd00000000, 0x1769954000000000, + 0x86f8fdee00000000, 0x744c35c700000000, 0xe5dd5d6900000000, + 0xdfbab7e700000000, 0x4e2bdf4900000000, 0xbc9f176000000000, + 0x2d0e7fce00000000, 0x58f6863300000000, 0xc967ee9d00000000, + 0x3bd326b400000000, 0xaa424e1a00000000, 0x7360bc6500000000, + 0xe2f1d4cb00000000, 0x10451ce200000000, 0x81d4744c00000000, + 0xf42c8db100000000, 0x65bde51f00000000, 0x97092d3600000000, + 0x0698459800000000, 0x3cffaf1600000000, 0xad6ec7b800000000, + 0x5fda0f9100000000, 0xce4b673f00000000, 0xbbb39ec200000000, + 0x2a22f66c00000000, 0xd8963e4500000000, 0x490756eb00000000, + 0xed5e9b8300000000, 0x7ccff32d00000000, 0x8e7b3b0400000000, + 0x1fea53aa00000000, 0x6a12aa5700000000, 0xfb83c2f900000000, + 0x09370ad000000000, 0x98a6627e00000000, 0xa2c188f000000000, + 0x3350e05e00000000, 0xc1e4287700000000, 0x507540d900000000, + 0x258db92400000000, 0xb41cd18a00000000, 0x46a819a300000000, + 0xd739710d00000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xccaa009e, 0x4225077d, 0x8e8f07e3, 0x844a0efa, + 0x48e00e64, 0xc66f0987, 0x0ac50919, 0xd3e51bb5, 0x1f4f1b2b, + 0x91c01cc8, 0x5d6a1c56, 0x57af154f, 0x9b0515d1, 0x158a1232, + 0xd92012ac, 0x7cbb312b, 0xb01131b5, 0x3e9e3656, 0xf23436c8, + 0xf8f13fd1, 0x345b3f4f, 0xbad438ac, 0x767e3832, 0xaf5e2a9e, + 0x63f42a00, 0xed7b2de3, 0x21d12d7d, 0x2b142464, 0xe7be24fa, + 0x69312319, 0xa59b2387, 0xf9766256, 0x35dc62c8, 0xbb53652b, + 0x77f965b5, 0x7d3c6cac, 0xb1966c32, 0x3f196bd1, 0xf3b36b4f, + 0x2a9379e3, 0xe639797d, 0x68b67e9e, 0xa41c7e00, 0xaed97719, + 0x62737787, 0xecfc7064, 0x205670fa, 0x85cd537d, 0x496753e3, + 0xc7e85400, 0x0b42549e, 0x01875d87, 0xcd2d5d19, 0x43a25afa, + 0x8f085a64, 0x562848c8, 0x9a824856, 0x140d4fb5, 0xd8a74f2b, + 0xd2624632, 0x1ec846ac, 0x9047414f, 0x5ced41d1, 0x299dc2ed, + 0xe537c273, 0x6bb8c590, 0xa712c50e, 0xadd7cc17, 0x617dcc89, + 0xeff2cb6a, 0x2358cbf4, 0xfa78d958, 0x36d2d9c6, 0xb85dde25, + 0x74f7debb, 0x7e32d7a2, 0xb298d73c, 0x3c17d0df, 0xf0bdd041, + 0x5526f3c6, 0x998cf358, 0x1703f4bb, 0xdba9f425, 0xd16cfd3c, + 0x1dc6fda2, 0x9349fa41, 0x5fe3fadf, 0x86c3e873, 0x4a69e8ed, + 0xc4e6ef0e, 0x084cef90, 0x0289e689, 0xce23e617, 0x40ace1f4, + 0x8c06e16a, 0xd0eba0bb, 0x1c41a025, 0x92cea7c6, 0x5e64a758, + 0x54a1ae41, 0x980baedf, 0x1684a93c, 0xda2ea9a2, 0x030ebb0e, + 0xcfa4bb90, 0x412bbc73, 0x8d81bced, 0x8744b5f4, 0x4beeb56a, + 0xc561b289, 0x09cbb217, 0xac509190, 0x60fa910e, 0xee7596ed, + 0x22df9673, 0x281a9f6a, 0xe4b09ff4, 0x6a3f9817, 0xa6959889, + 0x7fb58a25, 0xb31f8abb, 0x3d908d58, 0xf13a8dc6, 0xfbff84df, + 0x37558441, 0xb9da83a2, 0x7570833c, 0x533b85da, 0x9f918544, + 0x111e82a7, 0xddb48239, 0xd7718b20, 0x1bdb8bbe, 0x95548c5d, + 0x59fe8cc3, 0x80de9e6f, 0x4c749ef1, 0xc2fb9912, 0x0e51998c, + 0x04949095, 0xc83e900b, 0x46b197e8, 0x8a1b9776, 0x2f80b4f1, + 0xe32ab46f, 0x6da5b38c, 0xa10fb312, 0xabcaba0b, 0x6760ba95, + 0xe9efbd76, 0x2545bde8, 0xfc65af44, 0x30cfafda, 0xbe40a839, + 0x72eaa8a7, 0x782fa1be, 0xb485a120, 0x3a0aa6c3, 0xf6a0a65d, + 0xaa4de78c, 0x66e7e712, 0xe868e0f1, 0x24c2e06f, 0x2e07e976, + 0xe2ade9e8, 0x6c22ee0b, 0xa088ee95, 0x79a8fc39, 0xb502fca7, + 0x3b8dfb44, 0xf727fbda, 0xfde2f2c3, 0x3148f25d, 0xbfc7f5be, + 0x736df520, 0xd6f6d6a7, 0x1a5cd639, 0x94d3d1da, 0x5879d144, + 0x52bcd85d, 0x9e16d8c3, 0x1099df20, 0xdc33dfbe, 0x0513cd12, + 0xc9b9cd8c, 0x4736ca6f, 0x8b9ccaf1, 0x8159c3e8, 0x4df3c376, + 0xc37cc495, 0x0fd6c40b, 0x7aa64737, 0xb60c47a9, 0x3883404a, + 0xf42940d4, 0xfeec49cd, 0x32464953, 0xbcc94eb0, 0x70634e2e, + 0xa9435c82, 0x65e95c1c, 0xeb665bff, 0x27cc5b61, 0x2d095278, + 0xe1a352e6, 0x6f2c5505, 0xa386559b, 0x061d761c, 0xcab77682, + 0x44387161, 0x889271ff, 0x825778e6, 0x4efd7878, 0xc0727f9b, + 0x0cd87f05, 0xd5f86da9, 0x19526d37, 0x97dd6ad4, 0x5b776a4a, + 0x51b26353, 0x9d1863cd, 0x1397642e, 0xdf3d64b0, 0x83d02561, + 0x4f7a25ff, 0xc1f5221c, 0x0d5f2282, 0x079a2b9b, 0xcb302b05, + 0x45bf2ce6, 0x89152c78, 0x50353ed4, 0x9c9f3e4a, 0x121039a9, + 0xdeba3937, 0xd47f302e, 0x18d530b0, 0x965a3753, 0x5af037cd, + 0xff6b144a, 0x33c114d4, 0xbd4e1337, 0x71e413a9, 0x7b211ab0, + 0xb78b1a2e, 0x39041dcd, 0xf5ae1d53, 0x2c8e0fff, 0xe0240f61, + 0x6eab0882, 0xa201081c, 0xa8c40105, 0x646e019b, 0xeae10678, + 0x264b06e6}, + {0x00000000, 0xa6770bb4, 0x979f1129, 0x31e81a9d, 0xf44f2413, + 0x52382fa7, 0x63d0353a, 0xc5a73e8e, 0x33ef4e67, 0x959845d3, + 0xa4705f4e, 0x020754fa, 0xc7a06a74, 0x61d761c0, 0x503f7b5d, + 0xf64870e9, 0x67de9cce, 0xc1a9977a, 0xf0418de7, 0x56368653, + 0x9391b8dd, 0x35e6b369, 0x040ea9f4, 0xa279a240, 0x5431d2a9, + 0xf246d91d, 0xc3aec380, 0x65d9c834, 0xa07ef6ba, 0x0609fd0e, + 0x37e1e793, 0x9196ec27, 0xcfbd399c, 0x69ca3228, 0x582228b5, + 0xfe552301, 0x3bf21d8f, 0x9d85163b, 0xac6d0ca6, 0x0a1a0712, + 0xfc5277fb, 0x5a257c4f, 0x6bcd66d2, 0xcdba6d66, 0x081d53e8, + 0xae6a585c, 0x9f8242c1, 0x39f54975, 0xa863a552, 0x0e14aee6, + 0x3ffcb47b, 0x998bbfcf, 0x5c2c8141, 0xfa5b8af5, 0xcbb39068, + 0x6dc49bdc, 0x9b8ceb35, 0x3dfbe081, 0x0c13fa1c, 0xaa64f1a8, + 0x6fc3cf26, 0xc9b4c492, 0xf85cde0f, 0x5e2bd5bb, 0x440b7579, + 0xe27c7ecd, 0xd3946450, 0x75e36fe4, 0xb044516a, 0x16335ade, + 0x27db4043, 0x81ac4bf7, 0x77e43b1e, 0xd19330aa, 0xe07b2a37, + 0x460c2183, 0x83ab1f0d, 0x25dc14b9, 0x14340e24, 0xb2430590, + 0x23d5e9b7, 0x85a2e203, 0xb44af89e, 0x123df32a, 0xd79acda4, + 0x71edc610, 0x4005dc8d, 0xe672d739, 0x103aa7d0, 0xb64dac64, + 0x87a5b6f9, 0x21d2bd4d, 0xe47583c3, 0x42028877, 0x73ea92ea, + 0xd59d995e, 0x8bb64ce5, 0x2dc14751, 0x1c295dcc, 0xba5e5678, + 0x7ff968f6, 0xd98e6342, 0xe86679df, 0x4e11726b, 0xb8590282, + 0x1e2e0936, 0x2fc613ab, 0x89b1181f, 0x4c162691, 0xea612d25, + 0xdb8937b8, 0x7dfe3c0c, 0xec68d02b, 0x4a1fdb9f, 0x7bf7c102, + 0xdd80cab6, 0x1827f438, 0xbe50ff8c, 0x8fb8e511, 0x29cfeea5, + 0xdf879e4c, 0x79f095f8, 0x48188f65, 0xee6f84d1, 0x2bc8ba5f, + 0x8dbfb1eb, 0xbc57ab76, 0x1a20a0c2, 0x8816eaf2, 0x2e61e146, + 0x1f89fbdb, 0xb9fef06f, 0x7c59cee1, 0xda2ec555, 0xebc6dfc8, + 0x4db1d47c, 0xbbf9a495, 0x1d8eaf21, 0x2c66b5bc, 0x8a11be08, + 0x4fb68086, 0xe9c18b32, 0xd82991af, 0x7e5e9a1b, 0xefc8763c, + 0x49bf7d88, 0x78576715, 0xde206ca1, 0x1b87522f, 0xbdf0599b, + 0x8c184306, 0x2a6f48b2, 0xdc27385b, 0x7a5033ef, 0x4bb82972, + 0xedcf22c6, 0x28681c48, 0x8e1f17fc, 0xbff70d61, 0x198006d5, + 0x47abd36e, 0xe1dcd8da, 0xd034c247, 0x7643c9f3, 0xb3e4f77d, + 0x1593fcc9, 0x247be654, 0x820cede0, 0x74449d09, 0xd23396bd, + 0xe3db8c20, 0x45ac8794, 0x800bb91a, 0x267cb2ae, 0x1794a833, + 0xb1e3a387, 0x20754fa0, 0x86024414, 0xb7ea5e89, 0x119d553d, + 0xd43a6bb3, 0x724d6007, 0x43a57a9a, 0xe5d2712e, 0x139a01c7, + 0xb5ed0a73, 0x840510ee, 0x22721b5a, 0xe7d525d4, 0x41a22e60, + 0x704a34fd, 0xd63d3f49, 0xcc1d9f8b, 0x6a6a943f, 0x5b828ea2, + 0xfdf58516, 0x3852bb98, 0x9e25b02c, 0xafcdaab1, 0x09baa105, + 0xfff2d1ec, 0x5985da58, 0x686dc0c5, 0xce1acb71, 0x0bbdf5ff, + 0xadcafe4b, 0x9c22e4d6, 0x3a55ef62, 0xabc30345, 0x0db408f1, + 0x3c5c126c, 0x9a2b19d8, 0x5f8c2756, 0xf9fb2ce2, 0xc813367f, + 0x6e643dcb, 0x982c4d22, 0x3e5b4696, 0x0fb35c0b, 0xa9c457bf, + 0x6c636931, 0xca146285, 0xfbfc7818, 0x5d8b73ac, 0x03a0a617, + 0xa5d7ada3, 0x943fb73e, 0x3248bc8a, 0xf7ef8204, 0x519889b0, + 0x6070932d, 0xc6079899, 0x304fe870, 0x9638e3c4, 0xa7d0f959, + 0x01a7f2ed, 0xc400cc63, 0x6277c7d7, 0x539fdd4a, 0xf5e8d6fe, + 0x647e3ad9, 0xc209316d, 0xf3e12bf0, 0x55962044, 0x90311eca, + 0x3646157e, 0x07ae0fe3, 0xa1d90457, 0x579174be, 0xf1e67f0a, + 0xc00e6597, 0x66796e23, 0xa3de50ad, 0x05a95b19, 0x34414184, + 0x92364a30}, + {0x00000000, 0xcb5cd3a5, 0x4dc8a10b, 0x869472ae, 0x9b914216, + 0x50cd91b3, 0xd659e31d, 0x1d0530b8, 0xec53826d, 0x270f51c8, + 0xa19b2366, 0x6ac7f0c3, 0x77c2c07b, 0xbc9e13de, 0x3a0a6170, + 0xf156b2d5, 0x03d6029b, 0xc88ad13e, 0x4e1ea390, 0x85427035, + 0x9847408d, 0x531b9328, 0xd58fe186, 0x1ed33223, 0xef8580f6, + 0x24d95353, 0xa24d21fd, 0x6911f258, 0x7414c2e0, 0xbf481145, + 0x39dc63eb, 0xf280b04e, 0x07ac0536, 0xccf0d693, 0x4a64a43d, + 0x81387798, 0x9c3d4720, 0x57619485, 0xd1f5e62b, 0x1aa9358e, + 0xebff875b, 0x20a354fe, 0xa6372650, 0x6d6bf5f5, 0x706ec54d, + 0xbb3216e8, 0x3da66446, 0xf6fab7e3, 0x047a07ad, 0xcf26d408, + 0x49b2a6a6, 0x82ee7503, 0x9feb45bb, 0x54b7961e, 0xd223e4b0, + 0x197f3715, 0xe82985c0, 0x23755665, 0xa5e124cb, 0x6ebdf76e, + 0x73b8c7d6, 0xb8e41473, 0x3e7066dd, 0xf52cb578, 0x0f580a6c, + 0xc404d9c9, 0x4290ab67, 0x89cc78c2, 0x94c9487a, 0x5f959bdf, + 0xd901e971, 0x125d3ad4, 0xe30b8801, 0x28575ba4, 0xaec3290a, + 0x659ffaaf, 0x789aca17, 0xb3c619b2, 0x35526b1c, 0xfe0eb8b9, + 0x0c8e08f7, 0xc7d2db52, 0x4146a9fc, 0x8a1a7a59, 0x971f4ae1, + 0x5c439944, 0xdad7ebea, 0x118b384f, 0xe0dd8a9a, 0x2b81593f, + 0xad152b91, 0x6649f834, 0x7b4cc88c, 0xb0101b29, 0x36846987, + 0xfdd8ba22, 0x08f40f5a, 0xc3a8dcff, 0x453cae51, 0x8e607df4, + 0x93654d4c, 0x58399ee9, 0xdeadec47, 0x15f13fe2, 0xe4a78d37, + 0x2ffb5e92, 0xa96f2c3c, 0x6233ff99, 0x7f36cf21, 0xb46a1c84, + 0x32fe6e2a, 0xf9a2bd8f, 0x0b220dc1, 0xc07ede64, 0x46eaacca, + 0x8db67f6f, 0x90b34fd7, 0x5bef9c72, 0xdd7beedc, 0x16273d79, + 0xe7718fac, 0x2c2d5c09, 0xaab92ea7, 0x61e5fd02, 0x7ce0cdba, + 0xb7bc1e1f, 0x31286cb1, 0xfa74bf14, 0x1eb014d8, 0xd5ecc77d, + 0x5378b5d3, 0x98246676, 0x852156ce, 0x4e7d856b, 0xc8e9f7c5, + 0x03b52460, 0xf2e396b5, 0x39bf4510, 0xbf2b37be, 0x7477e41b, + 0x6972d4a3, 0xa22e0706, 0x24ba75a8, 0xefe6a60d, 0x1d661643, + 0xd63ac5e6, 0x50aeb748, 0x9bf264ed, 0x86f75455, 0x4dab87f0, + 0xcb3ff55e, 0x006326fb, 0xf135942e, 0x3a69478b, 0xbcfd3525, + 0x77a1e680, 0x6aa4d638, 0xa1f8059d, 0x276c7733, 0xec30a496, + 0x191c11ee, 0xd240c24b, 0x54d4b0e5, 0x9f886340, 0x828d53f8, + 0x49d1805d, 0xcf45f2f3, 0x04192156, 0xf54f9383, 0x3e134026, + 0xb8873288, 0x73dbe12d, 0x6eded195, 0xa5820230, 0x2316709e, + 0xe84aa33b, 0x1aca1375, 0xd196c0d0, 0x5702b27e, 0x9c5e61db, + 0x815b5163, 0x4a0782c6, 0xcc93f068, 0x07cf23cd, 0xf6999118, + 0x3dc542bd, 0xbb513013, 0x700de3b6, 0x6d08d30e, 0xa65400ab, + 0x20c07205, 0xeb9ca1a0, 0x11e81eb4, 0xdab4cd11, 0x5c20bfbf, + 0x977c6c1a, 0x8a795ca2, 0x41258f07, 0xc7b1fda9, 0x0ced2e0c, + 0xfdbb9cd9, 0x36e74f7c, 0xb0733dd2, 0x7b2fee77, 0x662adecf, + 0xad760d6a, 0x2be27fc4, 0xe0beac61, 0x123e1c2f, 0xd962cf8a, + 0x5ff6bd24, 0x94aa6e81, 0x89af5e39, 0x42f38d9c, 0xc467ff32, + 0x0f3b2c97, 0xfe6d9e42, 0x35314de7, 0xb3a53f49, 0x78f9ecec, + 0x65fcdc54, 0xaea00ff1, 0x28347d5f, 0xe368aefa, 0x16441b82, + 0xdd18c827, 0x5b8cba89, 0x90d0692c, 0x8dd55994, 0x46898a31, + 0xc01df89f, 0x0b412b3a, 0xfa1799ef, 0x314b4a4a, 0xb7df38e4, + 0x7c83eb41, 0x6186dbf9, 0xaada085c, 0x2c4e7af2, 0xe712a957, + 0x15921919, 0xdececabc, 0x585ab812, 0x93066bb7, 0x8e035b0f, + 0x455f88aa, 0xc3cbfa04, 0x089729a1, 0xf9c19b74, 0x329d48d1, + 0xb4093a7f, 0x7f55e9da, 0x6250d962, 0xa90c0ac7, 0x2f987869, + 0xe4c4abcc}, + {0x00000000, 0x3d6029b0, 0x7ac05360, 0x47a07ad0, 0xf580a6c0, + 0xc8e08f70, 0x8f40f5a0, 0xb220dc10, 0x30704bc1, 0x0d106271, + 0x4ab018a1, 0x77d03111, 0xc5f0ed01, 0xf890c4b1, 0xbf30be61, + 0x825097d1, 0x60e09782, 0x5d80be32, 0x1a20c4e2, 0x2740ed52, + 0x95603142, 0xa80018f2, 0xefa06222, 0xd2c04b92, 0x5090dc43, + 0x6df0f5f3, 0x2a508f23, 0x1730a693, 0xa5107a83, 0x98705333, + 0xdfd029e3, 0xe2b00053, 0xc1c12f04, 0xfca106b4, 0xbb017c64, + 0x866155d4, 0x344189c4, 0x0921a074, 0x4e81daa4, 0x73e1f314, + 0xf1b164c5, 0xccd14d75, 0x8b7137a5, 0xb6111e15, 0x0431c205, + 0x3951ebb5, 0x7ef19165, 0x4391b8d5, 0xa121b886, 0x9c419136, + 0xdbe1ebe6, 0xe681c256, 0x54a11e46, 0x69c137f6, 0x2e614d26, + 0x13016496, 0x9151f347, 0xac31daf7, 0xeb91a027, 0xd6f18997, + 0x64d15587, 0x59b17c37, 0x1e1106e7, 0x23712f57, 0x58f35849, + 0x659371f9, 0x22330b29, 0x1f532299, 0xad73fe89, 0x9013d739, + 0xd7b3ade9, 0xead38459, 0x68831388, 0x55e33a38, 0x124340e8, + 0x2f236958, 0x9d03b548, 0xa0639cf8, 0xe7c3e628, 0xdaa3cf98, + 0x3813cfcb, 0x0573e67b, 0x42d39cab, 0x7fb3b51b, 0xcd93690b, + 0xf0f340bb, 0xb7533a6b, 0x8a3313db, 0x0863840a, 0x3503adba, + 0x72a3d76a, 0x4fc3feda, 0xfde322ca, 0xc0830b7a, 0x872371aa, + 0xba43581a, 0x9932774d, 0xa4525efd, 0xe3f2242d, 0xde920d9d, + 0x6cb2d18d, 0x51d2f83d, 0x167282ed, 0x2b12ab5d, 0xa9423c8c, + 0x9422153c, 0xd3826fec, 0xeee2465c, 0x5cc29a4c, 0x61a2b3fc, + 0x2602c92c, 0x1b62e09c, 0xf9d2e0cf, 0xc4b2c97f, 0x8312b3af, + 0xbe729a1f, 0x0c52460f, 0x31326fbf, 0x7692156f, 0x4bf23cdf, + 0xc9a2ab0e, 0xf4c282be, 0xb362f86e, 0x8e02d1de, 0x3c220dce, + 0x0142247e, 0x46e25eae, 0x7b82771e, 0xb1e6b092, 0x8c869922, + 0xcb26e3f2, 0xf646ca42, 0x44661652, 0x79063fe2, 0x3ea64532, + 0x03c66c82, 0x8196fb53, 0xbcf6d2e3, 0xfb56a833, 0xc6368183, + 0x74165d93, 0x49767423, 0x0ed60ef3, 0x33b62743, 0xd1062710, + 0xec660ea0, 0xabc67470, 0x96a65dc0, 0x248681d0, 0x19e6a860, + 0x5e46d2b0, 0x6326fb00, 0xe1766cd1, 0xdc164561, 0x9bb63fb1, + 0xa6d61601, 0x14f6ca11, 0x2996e3a1, 0x6e369971, 0x5356b0c1, + 0x70279f96, 0x4d47b626, 0x0ae7ccf6, 0x3787e546, 0x85a73956, + 0xb8c710e6, 0xff676a36, 0xc2074386, 0x4057d457, 0x7d37fde7, + 0x3a978737, 0x07f7ae87, 0xb5d77297, 0x88b75b27, 0xcf1721f7, + 0xf2770847, 0x10c70814, 0x2da721a4, 0x6a075b74, 0x576772c4, + 0xe547aed4, 0xd8278764, 0x9f87fdb4, 0xa2e7d404, 0x20b743d5, + 0x1dd76a65, 0x5a7710b5, 0x67173905, 0xd537e515, 0xe857cca5, + 0xaff7b675, 0x92979fc5, 0xe915e8db, 0xd475c16b, 0x93d5bbbb, + 0xaeb5920b, 0x1c954e1b, 0x21f567ab, 0x66551d7b, 0x5b3534cb, + 0xd965a31a, 0xe4058aaa, 0xa3a5f07a, 0x9ec5d9ca, 0x2ce505da, + 0x11852c6a, 0x562556ba, 0x6b457f0a, 0x89f57f59, 0xb49556e9, + 0xf3352c39, 0xce550589, 0x7c75d999, 0x4115f029, 0x06b58af9, + 0x3bd5a349, 0xb9853498, 0x84e51d28, 0xc34567f8, 0xfe254e48, + 0x4c059258, 0x7165bbe8, 0x36c5c138, 0x0ba5e888, 0x28d4c7df, + 0x15b4ee6f, 0x521494bf, 0x6f74bd0f, 0xdd54611f, 0xe03448af, + 0xa794327f, 0x9af41bcf, 0x18a48c1e, 0x25c4a5ae, 0x6264df7e, + 0x5f04f6ce, 0xed242ade, 0xd044036e, 0x97e479be, 0xaa84500e, + 0x4834505d, 0x755479ed, 0x32f4033d, 0x0f942a8d, 0xbdb4f69d, + 0x80d4df2d, 0xc774a5fd, 0xfa148c4d, 0x78441b9c, 0x4524322c, + 0x028448fc, 0x3fe4614c, 0x8dc4bd5c, 0xb0a494ec, 0xf704ee3c, + 0xca64c78c}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0xb029603d, 0x6053c07a, 0xd07aa047, 0xc0a680f5, + 0x708fe0c8, 0xa0f5408f, 0x10dc20b2, 0xc14b7030, 0x7162100d, + 0xa118b04a, 0x1131d077, 0x01edf0c5, 0xb1c490f8, 0x61be30bf, + 0xd1975082, 0x8297e060, 0x32be805d, 0xe2c4201a, 0x52ed4027, + 0x42316095, 0xf21800a8, 0x2262a0ef, 0x924bc0d2, 0x43dc9050, + 0xf3f5f06d, 0x238f502a, 0x93a63017, 0x837a10a5, 0x33537098, + 0xe329d0df, 0x5300b0e2, 0x042fc1c1, 0xb406a1fc, 0x647c01bb, + 0xd4556186, 0xc4894134, 0x74a02109, 0xa4da814e, 0x14f3e173, + 0xc564b1f1, 0x754dd1cc, 0xa537718b, 0x151e11b6, 0x05c23104, + 0xb5eb5139, 0x6591f17e, 0xd5b89143, 0x86b821a1, 0x3691419c, + 0xe6ebe1db, 0x56c281e6, 0x461ea154, 0xf637c169, 0x264d612e, + 0x96640113, 0x47f35191, 0xf7da31ac, 0x27a091eb, 0x9789f1d6, + 0x8755d164, 0x377cb159, 0xe706111e, 0x572f7123, 0x4958f358, + 0xf9719365, 0x290b3322, 0x9922531f, 0x89fe73ad, 0x39d71390, + 0xe9adb3d7, 0x5984d3ea, 0x88138368, 0x383ae355, 0xe8404312, + 0x5869232f, 0x48b5039d, 0xf89c63a0, 0x28e6c3e7, 0x98cfa3da, + 0xcbcf1338, 0x7be67305, 0xab9cd342, 0x1bb5b37f, 0x0b6993cd, + 0xbb40f3f0, 0x6b3a53b7, 0xdb13338a, 0x0a846308, 0xbaad0335, + 0x6ad7a372, 0xdafec34f, 0xca22e3fd, 0x7a0b83c0, 0xaa712387, + 0x1a5843ba, 0x4d773299, 0xfd5e52a4, 0x2d24f2e3, 0x9d0d92de, + 0x8dd1b26c, 0x3df8d251, 0xed827216, 0x5dab122b, 0x8c3c42a9, + 0x3c152294, 0xec6f82d3, 0x5c46e2ee, 0x4c9ac25c, 0xfcb3a261, + 0x2cc90226, 0x9ce0621b, 0xcfe0d2f9, 0x7fc9b2c4, 0xafb31283, + 0x1f9a72be, 0x0f46520c, 0xbf6f3231, 0x6f159276, 0xdf3cf24b, + 0x0eaba2c9, 0xbe82c2f4, 0x6ef862b3, 0xded1028e, 0xce0d223c, + 0x7e244201, 0xae5ee246, 0x1e77827b, 0x92b0e6b1, 0x2299868c, + 0xf2e326cb, 0x42ca46f6, 0x52166644, 0xe23f0679, 0x3245a63e, + 0x826cc603, 0x53fb9681, 0xe3d2f6bc, 0x33a856fb, 0x838136c6, + 0x935d1674, 0x23747649, 0xf30ed60e, 0x4327b633, 0x102706d1, + 0xa00e66ec, 0x7074c6ab, 0xc05da696, 0xd0818624, 0x60a8e619, + 0xb0d2465e, 0x00fb2663, 0xd16c76e1, 0x614516dc, 0xb13fb69b, + 0x0116d6a6, 0x11caf614, 0xa1e39629, 0x7199366e, 0xc1b05653, + 0x969f2770, 0x26b6474d, 0xf6cce70a, 0x46e58737, 0x5639a785, + 0xe610c7b8, 0x366a67ff, 0x864307c2, 0x57d45740, 0xe7fd377d, + 0x3787973a, 0x87aef707, 0x9772d7b5, 0x275bb788, 0xf72117cf, + 0x470877f2, 0x1408c710, 0xa421a72d, 0x745b076a, 0xc4726757, + 0xd4ae47e5, 0x648727d8, 0xb4fd879f, 0x04d4e7a2, 0xd543b720, + 0x656ad71d, 0xb510775a, 0x05391767, 0x15e537d5, 0xa5cc57e8, + 0x75b6f7af, 0xc59f9792, 0xdbe815e9, 0x6bc175d4, 0xbbbbd593, + 0x0b92b5ae, 0x1b4e951c, 0xab67f521, 0x7b1d5566, 0xcb34355b, + 0x1aa365d9, 0xaa8a05e4, 0x7af0a5a3, 0xcad9c59e, 0xda05e52c, + 0x6a2c8511, 0xba562556, 0x0a7f456b, 0x597ff589, 0xe95695b4, + 0x392c35f3, 0x890555ce, 0x99d9757c, 0x29f01541, 0xf98ab506, + 0x49a3d53b, 0x983485b9, 0x281de584, 0xf86745c3, 0x484e25fe, + 0x5892054c, 0xe8bb6571, 0x38c1c536, 0x88e8a50b, 0xdfc7d428, + 0x6feeb415, 0xbf941452, 0x0fbd746f, 0x1f6154dd, 0xaf4834e0, + 0x7f3294a7, 0xcf1bf49a, 0x1e8ca418, 0xaea5c425, 0x7edf6462, + 0xcef6045f, 0xde2a24ed, 0x6e0344d0, 0xbe79e497, 0x0e5084aa, + 0x5d503448, 0xed795475, 0x3d03f432, 0x8d2a940f, 0x9df6b4bd, + 0x2ddfd480, 0xfda574c7, 0x4d8c14fa, 0x9c1b4478, 0x2c322445, + 0xfc488402, 0x4c61e43f, 0x5cbdc48d, 0xec94a4b0, 0x3cee04f7, + 0x8cc764ca}, + {0x00000000, 0xa5d35ccb, 0x0ba1c84d, 0xae729486, 0x1642919b, + 0xb391cd50, 0x1de359d6, 0xb830051d, 0x6d8253ec, 0xc8510f27, + 0x66239ba1, 0xc3f0c76a, 0x7bc0c277, 0xde139ebc, 0x70610a3a, + 0xd5b256f1, 0x9b02d603, 0x3ed18ac8, 0x90a31e4e, 0x35704285, + 0x8d404798, 0x28931b53, 0x86e18fd5, 0x2332d31e, 0xf68085ef, + 0x5353d924, 0xfd214da2, 0x58f21169, 0xe0c21474, 0x451148bf, + 0xeb63dc39, 0x4eb080f2, 0x3605ac07, 0x93d6f0cc, 0x3da4644a, + 0x98773881, 0x20473d9c, 0x85946157, 0x2be6f5d1, 0x8e35a91a, + 0x5b87ffeb, 0xfe54a320, 0x502637a6, 0xf5f56b6d, 0x4dc56e70, + 0xe81632bb, 0x4664a63d, 0xe3b7faf6, 0xad077a04, 0x08d426cf, + 0xa6a6b249, 0x0375ee82, 0xbb45eb9f, 0x1e96b754, 0xb0e423d2, + 0x15377f19, 0xc08529e8, 0x65567523, 0xcb24e1a5, 0x6ef7bd6e, + 0xd6c7b873, 0x7314e4b8, 0xdd66703e, 0x78b52cf5, 0x6c0a580f, + 0xc9d904c4, 0x67ab9042, 0xc278cc89, 0x7a48c994, 0xdf9b955f, + 0x71e901d9, 0xd43a5d12, 0x01880be3, 0xa45b5728, 0x0a29c3ae, + 0xaffa9f65, 0x17ca9a78, 0xb219c6b3, 0x1c6b5235, 0xb9b80efe, + 0xf7088e0c, 0x52dbd2c7, 0xfca94641, 0x597a1a8a, 0xe14a1f97, + 0x4499435c, 0xeaebd7da, 0x4f388b11, 0x9a8adde0, 0x3f59812b, + 0x912b15ad, 0x34f84966, 0x8cc84c7b, 0x291b10b0, 0x87698436, + 0x22bad8fd, 0x5a0ff408, 0xffdca8c3, 0x51ae3c45, 0xf47d608e, + 0x4c4d6593, 0xe99e3958, 0x47ecadde, 0xe23ff115, 0x378da7e4, + 0x925efb2f, 0x3c2c6fa9, 0x99ff3362, 0x21cf367f, 0x841c6ab4, + 0x2a6efe32, 0x8fbda2f9, 0xc10d220b, 0x64de7ec0, 0xcaacea46, + 0x6f7fb68d, 0xd74fb390, 0x729cef5b, 0xdcee7bdd, 0x793d2716, + 0xac8f71e7, 0x095c2d2c, 0xa72eb9aa, 0x02fde561, 0xbacde07c, + 0x1f1ebcb7, 0xb16c2831, 0x14bf74fa, 0xd814b01e, 0x7dc7ecd5, + 0xd3b57853, 0x76662498, 0xce562185, 0x6b857d4e, 0xc5f7e9c8, + 0x6024b503, 0xb596e3f2, 0x1045bf39, 0xbe372bbf, 0x1be47774, + 0xa3d47269, 0x06072ea2, 0xa875ba24, 0x0da6e6ef, 0x4316661d, + 0xe6c53ad6, 0x48b7ae50, 0xed64f29b, 0x5554f786, 0xf087ab4d, + 0x5ef53fcb, 0xfb266300, 0x2e9435f1, 0x8b47693a, 0x2535fdbc, + 0x80e6a177, 0x38d6a46a, 0x9d05f8a1, 0x33776c27, 0x96a430ec, + 0xee111c19, 0x4bc240d2, 0xe5b0d454, 0x4063889f, 0xf8538d82, + 0x5d80d149, 0xf3f245cf, 0x56211904, 0x83934ff5, 0x2640133e, + 0x883287b8, 0x2de1db73, 0x95d1de6e, 0x300282a5, 0x9e701623, + 0x3ba34ae8, 0x7513ca1a, 0xd0c096d1, 0x7eb20257, 0xdb615e9c, + 0x63515b81, 0xc682074a, 0x68f093cc, 0xcd23cf07, 0x189199f6, + 0xbd42c53d, 0x133051bb, 0xb6e30d70, 0x0ed3086d, 0xab0054a6, + 0x0572c020, 0xa0a19ceb, 0xb41ee811, 0x11cdb4da, 0xbfbf205c, + 0x1a6c7c97, 0xa25c798a, 0x078f2541, 0xa9fdb1c7, 0x0c2eed0c, + 0xd99cbbfd, 0x7c4fe736, 0xd23d73b0, 0x77ee2f7b, 0xcfde2a66, + 0x6a0d76ad, 0xc47fe22b, 0x61acbee0, 0x2f1c3e12, 0x8acf62d9, + 0x24bdf65f, 0x816eaa94, 0x395eaf89, 0x9c8df342, 0x32ff67c4, + 0x972c3b0f, 0x429e6dfe, 0xe74d3135, 0x493fa5b3, 0xececf978, + 0x54dcfc65, 0xf10fa0ae, 0x5f7d3428, 0xfaae68e3, 0x821b4416, + 0x27c818dd, 0x89ba8c5b, 0x2c69d090, 0x9459d58d, 0x318a8946, + 0x9ff81dc0, 0x3a2b410b, 0xef9917fa, 0x4a4a4b31, 0xe438dfb7, + 0x41eb837c, 0xf9db8661, 0x5c08daaa, 0xf27a4e2c, 0x57a912e7, + 0x19199215, 0xbccacede, 0x12b85a58, 0xb76b0693, 0x0f5b038e, + 0xaa885f45, 0x04facbc3, 0xa1299708, 0x749bc1f9, 0xd1489d32, + 0x7f3a09b4, 0xdae9557f, 0x62d95062, 0xc70a0ca9, 0x6978982f, + 0xccabc4e4}, + {0x00000000, 0xb40b77a6, 0x29119f97, 0x9d1ae831, 0x13244ff4, + 0xa72f3852, 0x3a35d063, 0x8e3ea7c5, 0x674eef33, 0xd3459895, + 0x4e5f70a4, 0xfa540702, 0x746aa0c7, 0xc061d761, 0x5d7b3f50, + 0xe97048f6, 0xce9cde67, 0x7a97a9c1, 0xe78d41f0, 0x53863656, + 0xddb89193, 0x69b3e635, 0xf4a90e04, 0x40a279a2, 0xa9d23154, + 0x1dd946f2, 0x80c3aec3, 0x34c8d965, 0xbaf67ea0, 0x0efd0906, + 0x93e7e137, 0x27ec9691, 0x9c39bdcf, 0x2832ca69, 0xb5282258, + 0x012355fe, 0x8f1df23b, 0x3b16859d, 0xa60c6dac, 0x12071a0a, + 0xfb7752fc, 0x4f7c255a, 0xd266cd6b, 0x666dbacd, 0xe8531d08, + 0x5c586aae, 0xc142829f, 0x7549f539, 0x52a563a8, 0xe6ae140e, + 0x7bb4fc3f, 0xcfbf8b99, 0x41812c5c, 0xf58a5bfa, 0x6890b3cb, + 0xdc9bc46d, 0x35eb8c9b, 0x81e0fb3d, 0x1cfa130c, 0xa8f164aa, + 0x26cfc36f, 0x92c4b4c9, 0x0fde5cf8, 0xbbd52b5e, 0x79750b44, + 0xcd7e7ce2, 0x506494d3, 0xe46fe375, 0x6a5144b0, 0xde5a3316, + 0x4340db27, 0xf74bac81, 0x1e3be477, 0xaa3093d1, 0x372a7be0, + 0x83210c46, 0x0d1fab83, 0xb914dc25, 0x240e3414, 0x900543b2, + 0xb7e9d523, 0x03e2a285, 0x9ef84ab4, 0x2af33d12, 0xa4cd9ad7, + 0x10c6ed71, 0x8ddc0540, 0x39d772e6, 0xd0a73a10, 0x64ac4db6, + 0xf9b6a587, 0x4dbdd221, 0xc38375e4, 0x77880242, 0xea92ea73, + 0x5e999dd5, 0xe54cb68b, 0x5147c12d, 0xcc5d291c, 0x78565eba, + 0xf668f97f, 0x42638ed9, 0xdf7966e8, 0x6b72114e, 0x820259b8, + 0x36092e1e, 0xab13c62f, 0x1f18b189, 0x9126164c, 0x252d61ea, + 0xb83789db, 0x0c3cfe7d, 0x2bd068ec, 0x9fdb1f4a, 0x02c1f77b, + 0xb6ca80dd, 0x38f42718, 0x8cff50be, 0x11e5b88f, 0xa5eecf29, + 0x4c9e87df, 0xf895f079, 0x658f1848, 0xd1846fee, 0x5fbac82b, + 0xebb1bf8d, 0x76ab57bc, 0xc2a0201a, 0xf2ea1688, 0x46e1612e, + 0xdbfb891f, 0x6ff0feb9, 0xe1ce597c, 0x55c52eda, 0xc8dfc6eb, + 0x7cd4b14d, 0x95a4f9bb, 0x21af8e1d, 0xbcb5662c, 0x08be118a, + 0x8680b64f, 0x328bc1e9, 0xaf9129d8, 0x1b9a5e7e, 0x3c76c8ef, + 0x887dbf49, 0x15675778, 0xa16c20de, 0x2f52871b, 0x9b59f0bd, + 0x0643188c, 0xb2486f2a, 0x5b3827dc, 0xef33507a, 0x7229b84b, + 0xc622cfed, 0x481c6828, 0xfc171f8e, 0x610df7bf, 0xd5068019, + 0x6ed3ab47, 0xdad8dce1, 0x47c234d0, 0xf3c94376, 0x7df7e4b3, + 0xc9fc9315, 0x54e67b24, 0xe0ed0c82, 0x099d4474, 0xbd9633d2, + 0x208cdbe3, 0x9487ac45, 0x1ab90b80, 0xaeb27c26, 0x33a89417, + 0x87a3e3b1, 0xa04f7520, 0x14440286, 0x895eeab7, 0x3d559d11, + 0xb36b3ad4, 0x07604d72, 0x9a7aa543, 0x2e71d2e5, 0xc7019a13, + 0x730aedb5, 0xee100584, 0x5a1b7222, 0xd425d5e7, 0x602ea241, + 0xfd344a70, 0x493f3dd6, 0x8b9f1dcc, 0x3f946a6a, 0xa28e825b, + 0x1685f5fd, 0x98bb5238, 0x2cb0259e, 0xb1aacdaf, 0x05a1ba09, + 0xecd1f2ff, 0x58da8559, 0xc5c06d68, 0x71cb1ace, 0xfff5bd0b, + 0x4bfecaad, 0xd6e4229c, 0x62ef553a, 0x4503c3ab, 0xf108b40d, + 0x6c125c3c, 0xd8192b9a, 0x56278c5f, 0xe22cfbf9, 0x7f3613c8, + 0xcb3d646e, 0x224d2c98, 0x96465b3e, 0x0b5cb30f, 0xbf57c4a9, + 0x3169636c, 0x856214ca, 0x1878fcfb, 0xac738b5d, 0x17a6a003, + 0xa3add7a5, 0x3eb73f94, 0x8abc4832, 0x0482eff7, 0xb0899851, + 0x2d937060, 0x999807c6, 0x70e84f30, 0xc4e33896, 0x59f9d0a7, + 0xedf2a701, 0x63cc00c4, 0xd7c77762, 0x4add9f53, 0xfed6e8f5, + 0xd93a7e64, 0x6d3109c2, 0xf02be1f3, 0x44209655, 0xca1e3190, + 0x7e154636, 0xe30fae07, 0x5704d9a1, 0xbe749157, 0x0a7fe6f1, + 0x97650ec0, 0x236e7966, 0xad50dea3, 0x195ba905, 0x84414134, + 0x304a3692}, + {0x00000000, 0x9e00aacc, 0x7d072542, 0xe3078f8e, 0xfa0e4a84, + 0x640ee048, 0x87096fc6, 0x1909c50a, 0xb51be5d3, 0x2b1b4f1f, + 0xc81cc091, 0x561c6a5d, 0x4f15af57, 0xd115059b, 0x32128a15, + 0xac1220d9, 0x2b31bb7c, 0xb53111b0, 0x56369e3e, 0xc83634f2, + 0xd13ff1f8, 0x4f3f5b34, 0xac38d4ba, 0x32387e76, 0x9e2a5eaf, + 0x002af463, 0xe32d7bed, 0x7d2dd121, 0x6424142b, 0xfa24bee7, + 0x19233169, 0x87239ba5, 0x566276f9, 0xc862dc35, 0x2b6553bb, + 0xb565f977, 0xac6c3c7d, 0x326c96b1, 0xd16b193f, 0x4f6bb3f3, + 0xe379932a, 0x7d7939e6, 0x9e7eb668, 0x007e1ca4, 0x1977d9ae, + 0x87777362, 0x6470fcec, 0xfa705620, 0x7d53cd85, 0xe3536749, + 0x0054e8c7, 0x9e54420b, 0x875d8701, 0x195d2dcd, 0xfa5aa243, + 0x645a088f, 0xc8482856, 0x5648829a, 0xb54f0d14, 0x2b4fa7d8, + 0x324662d2, 0xac46c81e, 0x4f414790, 0xd141ed5c, 0xedc29d29, + 0x73c237e5, 0x90c5b86b, 0x0ec512a7, 0x17ccd7ad, 0x89cc7d61, + 0x6acbf2ef, 0xf4cb5823, 0x58d978fa, 0xc6d9d236, 0x25de5db8, + 0xbbdef774, 0xa2d7327e, 0x3cd798b2, 0xdfd0173c, 0x41d0bdf0, + 0xc6f32655, 0x58f38c99, 0xbbf40317, 0x25f4a9db, 0x3cfd6cd1, + 0xa2fdc61d, 0x41fa4993, 0xdffae35f, 0x73e8c386, 0xede8694a, + 0x0eefe6c4, 0x90ef4c08, 0x89e68902, 0x17e623ce, 0xf4e1ac40, + 0x6ae1068c, 0xbba0ebd0, 0x25a0411c, 0xc6a7ce92, 0x58a7645e, + 0x41aea154, 0xdfae0b98, 0x3ca98416, 0xa2a92eda, 0x0ebb0e03, + 0x90bba4cf, 0x73bc2b41, 0xedbc818d, 0xf4b54487, 0x6ab5ee4b, + 0x89b261c5, 0x17b2cb09, 0x909150ac, 0x0e91fa60, 0xed9675ee, + 0x7396df22, 0x6a9f1a28, 0xf49fb0e4, 0x17983f6a, 0x899895a6, + 0x258ab57f, 0xbb8a1fb3, 0x588d903d, 0xc68d3af1, 0xdf84fffb, + 0x41845537, 0xa283dab9, 0x3c837075, 0xda853b53, 0x4485919f, + 0xa7821e11, 0x3982b4dd, 0x208b71d7, 0xbe8bdb1b, 0x5d8c5495, + 0xc38cfe59, 0x6f9ede80, 0xf19e744c, 0x1299fbc2, 0x8c99510e, + 0x95909404, 0x0b903ec8, 0xe897b146, 0x76971b8a, 0xf1b4802f, + 0x6fb42ae3, 0x8cb3a56d, 0x12b30fa1, 0x0bbacaab, 0x95ba6067, + 0x76bdefe9, 0xe8bd4525, 0x44af65fc, 0xdaafcf30, 0x39a840be, + 0xa7a8ea72, 0xbea12f78, 0x20a185b4, 0xc3a60a3a, 0x5da6a0f6, + 0x8ce74daa, 0x12e7e766, 0xf1e068e8, 0x6fe0c224, 0x76e9072e, + 0xe8e9ade2, 0x0bee226c, 0x95ee88a0, 0x39fca879, 0xa7fc02b5, + 0x44fb8d3b, 0xdafb27f7, 0xc3f2e2fd, 0x5df24831, 0xbef5c7bf, + 0x20f56d73, 0xa7d6f6d6, 0x39d65c1a, 0xdad1d394, 0x44d17958, + 0x5dd8bc52, 0xc3d8169e, 0x20df9910, 0xbedf33dc, 0x12cd1305, + 0x8ccdb9c9, 0x6fca3647, 0xf1ca9c8b, 0xe8c35981, 0x76c3f34d, + 0x95c47cc3, 0x0bc4d60f, 0x3747a67a, 0xa9470cb6, 0x4a408338, + 0xd44029f4, 0xcd49ecfe, 0x53494632, 0xb04ec9bc, 0x2e4e6370, + 0x825c43a9, 0x1c5ce965, 0xff5b66eb, 0x615bcc27, 0x7852092d, + 0xe652a3e1, 0x05552c6f, 0x9b5586a3, 0x1c761d06, 0x8276b7ca, + 0x61713844, 0xff719288, 0xe6785782, 0x7878fd4e, 0x9b7f72c0, + 0x057fd80c, 0xa96df8d5, 0x376d5219, 0xd46add97, 0x4a6a775b, + 0x5363b251, 0xcd63189d, 0x2e649713, 0xb0643ddf, 0x6125d083, + 0xff257a4f, 0x1c22f5c1, 0x82225f0d, 0x9b2b9a07, 0x052b30cb, + 0xe62cbf45, 0x782c1589, 0xd43e3550, 0x4a3e9f9c, 0xa9391012, + 0x3739bade, 0x2e307fd4, 0xb030d518, 0x53375a96, 0xcd37f05a, + 0x4a146bff, 0xd414c133, 0x37134ebd, 0xa913e471, 0xb01a217b, + 0x2e1a8bb7, 0xcd1d0439, 0x531daef5, 0xff0f8e2c, 0x610f24e0, + 0x8208ab6e, 0x1c0801a2, 0x0501c4a8, 0x9b016e64, 0x7806e1ea, + 0xe6064b26}}; + #endif - } -}; + +#endif + +#if N == 3 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x81256527, 0xd93bcc0f, 0x581ea928, 0x69069e5f, + 0xe823fb78, 0xb03d5250, 0x31183777, 0xd20d3cbe, 0x53285999, + 0x0b36f0b1, 0x8a139596, 0xbb0ba2e1, 0x3a2ec7c6, 0x62306eee, + 0xe3150bc9, 0x7f6b7f3d, 0xfe4e1a1a, 0xa650b332, 0x2775d615, + 0x166de162, 0x97488445, 0xcf562d6d, 0x4e73484a, 0xad664383, + 0x2c4326a4, 0x745d8f8c, 0xf578eaab, 0xc460dddc, 0x4545b8fb, + 0x1d5b11d3, 0x9c7e74f4, 0xfed6fe7a, 0x7ff39b5d, 0x27ed3275, + 0xa6c85752, 0x97d06025, 0x16f50502, 0x4eebac2a, 0xcfcec90d, + 0x2cdbc2c4, 0xadfea7e3, 0xf5e00ecb, 0x74c56bec, 0x45dd5c9b, + 0xc4f839bc, 0x9ce69094, 0x1dc3f5b3, 0x81bd8147, 0x0098e460, + 0x58864d48, 0xd9a3286f, 0xe8bb1f18, 0x699e7a3f, 0x3180d317, + 0xb0a5b630, 0x53b0bdf9, 0xd295d8de, 0x8a8b71f6, 0x0bae14d1, + 0x3ab623a6, 0xbb934681, 0xe38defa9, 0x62a88a8e, 0x26dcfab5, + 0xa7f99f92, 0xffe736ba, 0x7ec2539d, 0x4fda64ea, 0xceff01cd, + 0x96e1a8e5, 0x17c4cdc2, 0xf4d1c60b, 0x75f4a32c, 0x2dea0a04, + 0xaccf6f23, 0x9dd75854, 0x1cf23d73, 0x44ec945b, 0xc5c9f17c, + 0x59b78588, 0xd892e0af, 0x808c4987, 0x01a92ca0, 0x30b11bd7, + 0xb1947ef0, 0xe98ad7d8, 0x68afb2ff, 0x8bbab936, 0x0a9fdc11, + 0x52817539, 0xd3a4101e, 0xe2bc2769, 0x6399424e, 0x3b87eb66, + 0xbaa28e41, 0xd80a04cf, 0x592f61e8, 0x0131c8c0, 0x8014ade7, + 0xb10c9a90, 0x3029ffb7, 0x6837569f, 0xe91233b8, 0x0a073871, + 0x8b225d56, 0xd33cf47e, 0x52199159, 0x6301a62e, 0xe224c309, + 0xba3a6a21, 0x3b1f0f06, 0xa7617bf2, 0x26441ed5, 0x7e5ab7fd, + 0xff7fd2da, 0xce67e5ad, 0x4f42808a, 0x175c29a2, 0x96794c85, + 0x756c474c, 0xf449226b, 0xac578b43, 0x2d72ee64, 0x1c6ad913, + 0x9d4fbc34, 0xc551151c, 0x4474703b, 0x4db9f56a, 0xcc9c904d, + 0x94823965, 0x15a75c42, 0x24bf6b35, 0xa59a0e12, 0xfd84a73a, + 0x7ca1c21d, 0x9fb4c9d4, 0x1e91acf3, 0x468f05db, 0xc7aa60fc, + 0xf6b2578b, 0x779732ac, 0x2f899b84, 0xaeacfea3, 0x32d28a57, + 0xb3f7ef70, 0xebe94658, 0x6acc237f, 0x5bd41408, 0xdaf1712f, + 0x82efd807, 0x03cabd20, 0xe0dfb6e9, 0x61fad3ce, 0x39e47ae6, + 0xb8c11fc1, 0x89d928b6, 0x08fc4d91, 0x50e2e4b9, 0xd1c7819e, + 0xb36f0b10, 0x324a6e37, 0x6a54c71f, 0xeb71a238, 0xda69954f, + 0x5b4cf068, 0x03525940, 0x82773c67, 0x616237ae, 0xe0475289, + 0xb859fba1, 0x397c9e86, 0x0864a9f1, 0x8941ccd6, 0xd15f65fe, + 0x507a00d9, 0xcc04742d, 0x4d21110a, 0x153fb822, 0x941add05, + 0xa502ea72, 0x24278f55, 0x7c39267d, 0xfd1c435a, 0x1e094893, + 0x9f2c2db4, 0xc732849c, 0x4617e1bb, 0x770fd6cc, 0xf62ab3eb, + 0xae341ac3, 0x2f117fe4, 0x6b650fdf, 0xea406af8, 0xb25ec3d0, + 0x337ba6f7, 0x02639180, 0x8346f4a7, 0xdb585d8f, 0x5a7d38a8, + 0xb9683361, 0x384d5646, 0x6053ff6e, 0xe1769a49, 0xd06ead3e, + 0x514bc819, 0x09556131, 0x88700416, 0x140e70e2, 0x952b15c5, + 0xcd35bced, 0x4c10d9ca, 0x7d08eebd, 0xfc2d8b9a, 0xa43322b2, + 0x25164795, 0xc6034c5c, 0x4726297b, 0x1f388053, 0x9e1de574, + 0xaf05d203, 0x2e20b724, 0x763e1e0c, 0xf71b7b2b, 0x95b3f1a5, + 0x14969482, 0x4c883daa, 0xcdad588d, 0xfcb56ffa, 0x7d900add, + 0x258ea3f5, 0xa4abc6d2, 0x47becd1b, 0xc69ba83c, 0x9e850114, + 0x1fa06433, 0x2eb85344, 0xaf9d3663, 0xf7839f4b, 0x76a6fa6c, + 0xead88e98, 0x6bfdebbf, 0x33e34297, 0xb2c627b0, 0x83de10c7, + 0x02fb75e0, 0x5ae5dcc8, 0xdbc0b9ef, 0x38d5b226, 0xb9f0d701, + 0xe1ee7e29, 0x60cb1b0e, 0x51d32c79, 0xd0f6495e, 0x88e8e076, + 0x09cd8551}, + {0x00000000, 0x9b73ead4, 0xed96d3e9, 0x76e5393d, 0x005ca193, + 0x9b2f4b47, 0xedca727a, 0x76b998ae, 0x00b94326, 0x9bcaa9f2, + 0xed2f90cf, 0x765c7a1b, 0x00e5e2b5, 0x9b960861, 0xed73315c, + 0x7600db88, 0x0172864c, 0x9a016c98, 0xece455a5, 0x7797bf71, + 0x012e27df, 0x9a5dcd0b, 0xecb8f436, 0x77cb1ee2, 0x01cbc56a, + 0x9ab82fbe, 0xec5d1683, 0x772efc57, 0x019764f9, 0x9ae48e2d, + 0xec01b710, 0x77725dc4, 0x02e50c98, 0x9996e64c, 0xef73df71, + 0x740035a5, 0x02b9ad0b, 0x99ca47df, 0xef2f7ee2, 0x745c9436, + 0x025c4fbe, 0x992fa56a, 0xefca9c57, 0x74b97683, 0x0200ee2d, + 0x997304f9, 0xef963dc4, 0x74e5d710, 0x03978ad4, 0x98e46000, + 0xee01593d, 0x7572b3e9, 0x03cb2b47, 0x98b8c193, 0xee5df8ae, + 0x752e127a, 0x032ec9f2, 0x985d2326, 0xeeb81a1b, 0x75cbf0cf, + 0x03726861, 0x980182b5, 0xeee4bb88, 0x7597515c, 0x05ca1930, + 0x9eb9f3e4, 0xe85ccad9, 0x732f200d, 0x0596b8a3, 0x9ee55277, + 0xe8006b4a, 0x7373819e, 0x05735a16, 0x9e00b0c2, 0xe8e589ff, + 0x7396632b, 0x052ffb85, 0x9e5c1151, 0xe8b9286c, 0x73cac2b8, + 0x04b89f7c, 0x9fcb75a8, 0xe92e4c95, 0x725da641, 0x04e43eef, + 0x9f97d43b, 0xe972ed06, 0x720107d2, 0x0401dc5a, 0x9f72368e, + 0xe9970fb3, 0x72e4e567, 0x045d7dc9, 0x9f2e971d, 0xe9cbae20, + 0x72b844f4, 0x072f15a8, 0x9c5cff7c, 0xeab9c641, 0x71ca2c95, + 0x0773b43b, 0x9c005eef, 0xeae567d2, 0x71968d06, 0x0796568e, + 0x9ce5bc5a, 0xea008567, 0x71736fb3, 0x07caf71d, 0x9cb91dc9, + 0xea5c24f4, 0x712fce20, 0x065d93e4, 0x9d2e7930, 0xebcb400d, + 0x70b8aad9, 0x06013277, 0x9d72d8a3, 0xeb97e19e, 0x70e40b4a, + 0x06e4d0c2, 0x9d973a16, 0xeb72032b, 0x7001e9ff, 0x06b87151, + 0x9dcb9b85, 0xeb2ea2b8, 0x705d486c, 0x0b943260, 0x90e7d8b4, + 0xe602e189, 0x7d710b5d, 0x0bc893f3, 0x90bb7927, 0xe65e401a, + 0x7d2daace, 0x0b2d7146, 0x905e9b92, 0xe6bba2af, 0x7dc8487b, + 0x0b71d0d5, 0x90023a01, 0xe6e7033c, 0x7d94e9e8, 0x0ae6b42c, + 0x91955ef8, 0xe77067c5, 0x7c038d11, 0x0aba15bf, 0x91c9ff6b, + 0xe72cc656, 0x7c5f2c82, 0x0a5ff70a, 0x912c1dde, 0xe7c924e3, + 0x7cbace37, 0x0a035699, 0x9170bc4d, 0xe7958570, 0x7ce66fa4, + 0x09713ef8, 0x9202d42c, 0xe4e7ed11, 0x7f9407c5, 0x092d9f6b, + 0x925e75bf, 0xe4bb4c82, 0x7fc8a656, 0x09c87dde, 0x92bb970a, + 0xe45eae37, 0x7f2d44e3, 0x0994dc4d, 0x92e73699, 0xe4020fa4, + 0x7f71e570, 0x0803b8b4, 0x93705260, 0xe5956b5d, 0x7ee68189, + 0x085f1927, 0x932cf3f3, 0xe5c9cace, 0x7eba201a, 0x08bafb92, + 0x93c91146, 0xe52c287b, 0x7e5fc2af, 0x08e65a01, 0x9395b0d5, + 0xe57089e8, 0x7e03633c, 0x0e5e2b50, 0x952dc184, 0xe3c8f8b9, + 0x78bb126d, 0x0e028ac3, 0x95716017, 0xe394592a, 0x78e7b3fe, + 0x0ee76876, 0x959482a2, 0xe371bb9f, 0x7802514b, 0x0ebbc9e5, + 0x95c82331, 0xe32d1a0c, 0x785ef0d8, 0x0f2cad1c, 0x945f47c8, + 0xe2ba7ef5, 0x79c99421, 0x0f700c8f, 0x9403e65b, 0xe2e6df66, + 0x799535b2, 0x0f95ee3a, 0x94e604ee, 0xe2033dd3, 0x7970d707, + 0x0fc94fa9, 0x94baa57d, 0xe25f9c40, 0x792c7694, 0x0cbb27c8, + 0x97c8cd1c, 0xe12df421, 0x7a5e1ef5, 0x0ce7865b, 0x97946c8f, + 0xe17155b2, 0x7a02bf66, 0x0c0264ee, 0x97718e3a, 0xe194b707, + 0x7ae75dd3, 0x0c5ec57d, 0x972d2fa9, 0xe1c81694, 0x7abbfc40, + 0x0dc9a184, 0x96ba4b50, 0xe05f726d, 0x7b2c98b9, 0x0d950017, + 0x96e6eac3, 0xe003d3fe, 0x7b70392a, 0x0d70e2a2, 0x96030876, + 0xe0e6314b, 0x7b95db9f, 0x0d2c4331, 0x965fa9e5, 0xe0ba90d8, + 0x7bc97a0c}, + {0x00000000, 0x172864c0, 0x2e50c980, 0x3978ad40, 0x5ca19300, + 0x4b89f7c0, 0x72f15a80, 0x65d93e40, 0xb9432600, 0xae6b42c0, + 0x9713ef80, 0x803b8b40, 0xe5e2b500, 0xf2cad1c0, 0xcbb27c80, + 0xdc9a1840, 0xa9f74a41, 0xbedf2e81, 0x87a783c1, 0x908fe701, + 0xf556d941, 0xe27ebd81, 0xdb0610c1, 0xcc2e7401, 0x10b46c41, + 0x079c0881, 0x3ee4a5c1, 0x29ccc101, 0x4c15ff41, 0x5b3d9b81, + 0x624536c1, 0x756d5201, 0x889f92c3, 0x9fb7f603, 0xa6cf5b43, + 0xb1e73f83, 0xd43e01c3, 0xc3166503, 0xfa6ec843, 0xed46ac83, + 0x31dcb4c3, 0x26f4d003, 0x1f8c7d43, 0x08a41983, 0x6d7d27c3, + 0x7a554303, 0x432dee43, 0x54058a83, 0x2168d882, 0x3640bc42, + 0x0f381102, 0x181075c2, 0x7dc94b82, 0x6ae12f42, 0x53998202, + 0x44b1e6c2, 0x982bfe82, 0x8f039a42, 0xb67b3702, 0xa15353c2, + 0xc48a6d82, 0xd3a20942, 0xeadaa402, 0xfdf2c0c2, 0xca4e23c7, + 0xdd664707, 0xe41eea47, 0xf3368e87, 0x96efb0c7, 0x81c7d407, + 0xb8bf7947, 0xaf971d87, 0x730d05c7, 0x64256107, 0x5d5dcc47, + 0x4a75a887, 0x2fac96c7, 0x3884f207, 0x01fc5f47, 0x16d43b87, + 0x63b96986, 0x74910d46, 0x4de9a006, 0x5ac1c4c6, 0x3f18fa86, + 0x28309e46, 0x11483306, 0x066057c6, 0xdafa4f86, 0xcdd22b46, + 0xf4aa8606, 0xe382e2c6, 0x865bdc86, 0x9173b846, 0xa80b1506, + 0xbf2371c6, 0x42d1b104, 0x55f9d5c4, 0x6c817884, 0x7ba91c44, + 0x1e702204, 0x095846c4, 0x3020eb84, 0x27088f44, 0xfb929704, + 0xecbaf3c4, 0xd5c25e84, 0xc2ea3a44, 0xa7330404, 0xb01b60c4, + 0x8963cd84, 0x9e4ba944, 0xeb26fb45, 0xfc0e9f85, 0xc57632c5, + 0xd25e5605, 0xb7876845, 0xa0af0c85, 0x99d7a1c5, 0x8effc505, + 0x5265dd45, 0x454db985, 0x7c3514c5, 0x6b1d7005, 0x0ec44e45, + 0x19ec2a85, 0x209487c5, 0x37bce305, 0x4fed41cf, 0x58c5250f, + 0x61bd884f, 0x7695ec8f, 0x134cd2cf, 0x0464b60f, 0x3d1c1b4f, + 0x2a347f8f, 0xf6ae67cf, 0xe186030f, 0xd8feae4f, 0xcfd6ca8f, + 0xaa0ff4cf, 0xbd27900f, 0x845f3d4f, 0x9377598f, 0xe61a0b8e, + 0xf1326f4e, 0xc84ac20e, 0xdf62a6ce, 0xbabb988e, 0xad93fc4e, + 0x94eb510e, 0x83c335ce, 0x5f592d8e, 0x4871494e, 0x7109e40e, + 0x662180ce, 0x03f8be8e, 0x14d0da4e, 0x2da8770e, 0x3a8013ce, + 0xc772d30c, 0xd05ab7cc, 0xe9221a8c, 0xfe0a7e4c, 0x9bd3400c, + 0x8cfb24cc, 0xb583898c, 0xa2abed4c, 0x7e31f50c, 0x691991cc, + 0x50613c8c, 0x4749584c, 0x2290660c, 0x35b802cc, 0x0cc0af8c, + 0x1be8cb4c, 0x6e85994d, 0x79adfd8d, 0x40d550cd, 0x57fd340d, + 0x32240a4d, 0x250c6e8d, 0x1c74c3cd, 0x0b5ca70d, 0xd7c6bf4d, + 0xc0eedb8d, 0xf99676cd, 0xeebe120d, 0x8b672c4d, 0x9c4f488d, + 0xa537e5cd, 0xb21f810d, 0x85a36208, 0x928b06c8, 0xabf3ab88, + 0xbcdbcf48, 0xd902f108, 0xce2a95c8, 0xf7523888, 0xe07a5c48, + 0x3ce04408, 0x2bc820c8, 0x12b08d88, 0x0598e948, 0x6041d708, + 0x7769b3c8, 0x4e111e88, 0x59397a48, 0x2c542849, 0x3b7c4c89, + 0x0204e1c9, 0x152c8509, 0x70f5bb49, 0x67dddf89, 0x5ea572c9, + 0x498d1609, 0x95170e49, 0x823f6a89, 0xbb47c7c9, 0xac6fa309, + 0xc9b69d49, 0xde9ef989, 0xe7e654c9, 0xf0ce3009, 0x0d3cf0cb, + 0x1a14940b, 0x236c394b, 0x34445d8b, 0x519d63cb, 0x46b5070b, + 0x7fcdaa4b, 0x68e5ce8b, 0xb47fd6cb, 0xa357b20b, 0x9a2f1f4b, + 0x8d077b8b, 0xe8de45cb, 0xfff6210b, 0xc68e8c4b, 0xd1a6e88b, + 0xa4cbba8a, 0xb3e3de4a, 0x8a9b730a, 0x9db317ca, 0xf86a298a, + 0xef424d4a, 0xd63ae00a, 0xc11284ca, 0x1d889c8a, 0x0aa0f84a, + 0x33d8550a, 0x24f031ca, 0x41290f8a, 0x56016b4a, 0x6f79c60a, + 0x7851a2ca}, + {0x00000000, 0x9fda839e, 0xe4c4017d, 0x7b1e82e3, 0x12f904bb, + 0x8d238725, 0xf63d05c6, 0x69e78658, 0x25f20976, 0xba288ae8, + 0xc136080b, 0x5eec8b95, 0x370b0dcd, 0xa8d18e53, 0xd3cf0cb0, + 0x4c158f2e, 0x4be412ec, 0xd43e9172, 0xaf201391, 0x30fa900f, + 0x591d1657, 0xc6c795c9, 0xbdd9172a, 0x220394b4, 0x6e161b9a, + 0xf1cc9804, 0x8ad21ae7, 0x15089979, 0x7cef1f21, 0xe3359cbf, + 0x982b1e5c, 0x07f19dc2, 0x97c825d8, 0x0812a646, 0x730c24a5, + 0xecd6a73b, 0x85312163, 0x1aeba2fd, 0x61f5201e, 0xfe2fa380, + 0xb23a2cae, 0x2de0af30, 0x56fe2dd3, 0xc924ae4d, 0xa0c32815, + 0x3f19ab8b, 0x44072968, 0xdbddaaf6, 0xdc2c3734, 0x43f6b4aa, + 0x38e83649, 0xa732b5d7, 0xced5338f, 0x510fb011, 0x2a1132f2, + 0xb5cbb16c, 0xf9de3e42, 0x6604bddc, 0x1d1a3f3f, 0x82c0bca1, + 0xeb273af9, 0x74fdb967, 0x0fe33b84, 0x9039b81a, 0xf4e14df1, + 0x6b3bce6f, 0x10254c8c, 0x8fffcf12, 0xe618494a, 0x79c2cad4, + 0x02dc4837, 0x9d06cba9, 0xd1134487, 0x4ec9c719, 0x35d745fa, + 0xaa0dc664, 0xc3ea403c, 0x5c30c3a2, 0x272e4141, 0xb8f4c2df, + 0xbf055f1d, 0x20dfdc83, 0x5bc15e60, 0xc41bddfe, 0xadfc5ba6, + 0x3226d838, 0x49385adb, 0xd6e2d945, 0x9af7566b, 0x052dd5f5, + 0x7e335716, 0xe1e9d488, 0x880e52d0, 0x17d4d14e, 0x6cca53ad, + 0xf310d033, 0x63296829, 0xfcf3ebb7, 0x87ed6954, 0x1837eaca, + 0x71d06c92, 0xee0aef0c, 0x95146def, 0x0aceee71, 0x46db615f, + 0xd901e2c1, 0xa21f6022, 0x3dc5e3bc, 0x542265e4, 0xcbf8e67a, + 0xb0e66499, 0x2f3ce707, 0x28cd7ac5, 0xb717f95b, 0xcc097bb8, + 0x53d3f826, 0x3a347e7e, 0xa5eefde0, 0xdef07f03, 0x412afc9d, + 0x0d3f73b3, 0x92e5f02d, 0xe9fb72ce, 0x7621f150, 0x1fc67708, + 0x801cf496, 0xfb027675, 0x64d8f5eb, 0x32b39da3, 0xad691e3d, + 0xd6779cde, 0x49ad1f40, 0x204a9918, 0xbf901a86, 0xc48e9865, + 0x5b541bfb, 0x174194d5, 0x889b174b, 0xf38595a8, 0x6c5f1636, + 0x05b8906e, 0x9a6213f0, 0xe17c9113, 0x7ea6128d, 0x79578f4f, + 0xe68d0cd1, 0x9d938e32, 0x02490dac, 0x6bae8bf4, 0xf474086a, + 0x8f6a8a89, 0x10b00917, 0x5ca58639, 0xc37f05a7, 0xb8618744, + 0x27bb04da, 0x4e5c8282, 0xd186011c, 0xaa9883ff, 0x35420061, + 0xa57bb87b, 0x3aa13be5, 0x41bfb906, 0xde653a98, 0xb782bcc0, + 0x28583f5e, 0x5346bdbd, 0xcc9c3e23, 0x8089b10d, 0x1f533293, + 0x644db070, 0xfb9733ee, 0x9270b5b6, 0x0daa3628, 0x76b4b4cb, + 0xe96e3755, 0xee9faa97, 0x71452909, 0x0a5babea, 0x95812874, + 0xfc66ae2c, 0x63bc2db2, 0x18a2af51, 0x87782ccf, 0xcb6da3e1, + 0x54b7207f, 0x2fa9a29c, 0xb0732102, 0xd994a75a, 0x464e24c4, + 0x3d50a627, 0xa28a25b9, 0xc652d052, 0x598853cc, 0x2296d12f, + 0xbd4c52b1, 0xd4abd4e9, 0x4b715777, 0x306fd594, 0xafb5560a, + 0xe3a0d924, 0x7c7a5aba, 0x0764d859, 0x98be5bc7, 0xf159dd9f, + 0x6e835e01, 0x159ddce2, 0x8a475f7c, 0x8db6c2be, 0x126c4120, + 0x6972c3c3, 0xf6a8405d, 0x9f4fc605, 0x0095459b, 0x7b8bc778, + 0xe45144e6, 0xa844cbc8, 0x379e4856, 0x4c80cab5, 0xd35a492b, + 0xbabdcf73, 0x25674ced, 0x5e79ce0e, 0xc1a34d90, 0x519af58a, + 0xce407614, 0xb55ef4f7, 0x2a847769, 0x4363f131, 0xdcb972af, + 0xa7a7f04c, 0x387d73d2, 0x7468fcfc, 0xebb27f62, 0x90acfd81, + 0x0f767e1f, 0x6691f847, 0xf94b7bd9, 0x8255f93a, 0x1d8f7aa4, + 0x1a7ee766, 0x85a464f8, 0xfebae61b, 0x61606585, 0x0887e3dd, + 0x975d6043, 0xec43e2a0, 0x7399613e, 0x3f8cee10, 0xa0566d8e, + 0xdb48ef6d, 0x44926cf3, 0x2d75eaab, 0xb2af6935, 0xc9b1ebd6, + 0x566b6848}, + {0x00000000, 0x65673b46, 0xcace768c, 0xafa94dca, 0x4eedeb59, + 0x2b8ad01f, 0x84239dd5, 0xe144a693, 0x9ddbd6b2, 0xf8bcedf4, + 0x5715a03e, 0x32729b78, 0xd3363deb, 0xb65106ad, 0x19f84b67, + 0x7c9f7021, 0xe0c6ab25, 0x85a19063, 0x2a08dda9, 0x4f6fe6ef, + 0xae2b407c, 0xcb4c7b3a, 0x64e536f0, 0x01820db6, 0x7d1d7d97, + 0x187a46d1, 0xb7d30b1b, 0xd2b4305d, 0x33f096ce, 0x5697ad88, + 0xf93ee042, 0x9c59db04, 0x1afc500b, 0x7f9b6b4d, 0xd0322687, + 0xb5551dc1, 0x5411bb52, 0x31768014, 0x9edfcdde, 0xfbb8f698, + 0x872786b9, 0xe240bdff, 0x4de9f035, 0x288ecb73, 0xc9ca6de0, + 0xacad56a6, 0x03041b6c, 0x6663202a, 0xfa3afb2e, 0x9f5dc068, + 0x30f48da2, 0x5593b6e4, 0xb4d71077, 0xd1b02b31, 0x7e1966fb, + 0x1b7e5dbd, 0x67e12d9c, 0x028616da, 0xad2f5b10, 0xc8486056, + 0x290cc6c5, 0x4c6bfd83, 0xe3c2b049, 0x86a58b0f, 0x35f8a016, + 0x509f9b50, 0xff36d69a, 0x9a51eddc, 0x7b154b4f, 0x1e727009, + 0xb1db3dc3, 0xd4bc0685, 0xa82376a4, 0xcd444de2, 0x62ed0028, + 0x078a3b6e, 0xe6ce9dfd, 0x83a9a6bb, 0x2c00eb71, 0x4967d037, + 0xd53e0b33, 0xb0593075, 0x1ff07dbf, 0x7a9746f9, 0x9bd3e06a, + 0xfeb4db2c, 0x511d96e6, 0x347aada0, 0x48e5dd81, 0x2d82e6c7, + 0x822bab0d, 0xe74c904b, 0x060836d8, 0x636f0d9e, 0xccc64054, + 0xa9a17b12, 0x2f04f01d, 0x4a63cb5b, 0xe5ca8691, 0x80adbdd7, + 0x61e91b44, 0x048e2002, 0xab276dc8, 0xce40568e, 0xb2df26af, + 0xd7b81de9, 0x78115023, 0x1d766b65, 0xfc32cdf6, 0x9955f6b0, + 0x36fcbb7a, 0x539b803c, 0xcfc25b38, 0xaaa5607e, 0x050c2db4, + 0x606b16f2, 0x812fb061, 0xe4488b27, 0x4be1c6ed, 0x2e86fdab, + 0x52198d8a, 0x377eb6cc, 0x98d7fb06, 0xfdb0c040, 0x1cf466d3, + 0x79935d95, 0xd63a105f, 0xb35d2b19, 0x6bf1402c, 0x0e967b6a, + 0xa13f36a0, 0xc4580de6, 0x251cab75, 0x407b9033, 0xefd2ddf9, + 0x8ab5e6bf, 0xf62a969e, 0x934dadd8, 0x3ce4e012, 0x5983db54, + 0xb8c77dc7, 0xdda04681, 0x72090b4b, 0x176e300d, 0x8b37eb09, + 0xee50d04f, 0x41f99d85, 0x249ea6c3, 0xc5da0050, 0xa0bd3b16, + 0x0f1476dc, 0x6a734d9a, 0x16ec3dbb, 0x738b06fd, 0xdc224b37, + 0xb9457071, 0x5801d6e2, 0x3d66eda4, 0x92cfa06e, 0xf7a89b28, + 0x710d1027, 0x146a2b61, 0xbbc366ab, 0xdea45ded, 0x3fe0fb7e, + 0x5a87c038, 0xf52e8df2, 0x9049b6b4, 0xecd6c695, 0x89b1fdd3, + 0x2618b019, 0x437f8b5f, 0xa23b2dcc, 0xc75c168a, 0x68f55b40, + 0x0d926006, 0x91cbbb02, 0xf4ac8044, 0x5b05cd8e, 0x3e62f6c8, + 0xdf26505b, 0xba416b1d, 0x15e826d7, 0x708f1d91, 0x0c106db0, + 0x697756f6, 0xc6de1b3c, 0xa3b9207a, 0x42fd86e9, 0x279abdaf, + 0x8833f065, 0xed54cb23, 0x5e09e03a, 0x3b6edb7c, 0x94c796b6, + 0xf1a0adf0, 0x10e40b63, 0x75833025, 0xda2a7def, 0xbf4d46a9, + 0xc3d23688, 0xa6b50dce, 0x091c4004, 0x6c7b7b42, 0x8d3fddd1, + 0xe858e697, 0x47f1ab5d, 0x2296901b, 0xbecf4b1f, 0xdba87059, + 0x74013d93, 0x116606d5, 0xf022a046, 0x95459b00, 0x3aecd6ca, + 0x5f8bed8c, 0x23149dad, 0x4673a6eb, 0xe9daeb21, 0x8cbdd067, + 0x6df976f4, 0x089e4db2, 0xa7370078, 0xc2503b3e, 0x44f5b031, + 0x21928b77, 0x8e3bc6bd, 0xeb5cfdfb, 0x0a185b68, 0x6f7f602e, + 0xc0d62de4, 0xa5b116a2, 0xd92e6683, 0xbc495dc5, 0x13e0100f, + 0x76872b49, 0x97c38dda, 0xf2a4b69c, 0x5d0dfb56, 0x386ac010, + 0xa4331b14, 0xc1542052, 0x6efd6d98, 0x0b9a56de, 0xeadef04d, + 0x8fb9cb0b, 0x201086c1, 0x4577bd87, 0x39e8cda6, 0x5c8ff6e0, + 0xf326bb2a, 0x9641806c, 0x770526ff, 0x12621db9, 0xbdcb5073, + 0xd8ac6b35}, + {0x00000000, 0xd7e28058, 0x74b406f1, 0xa35686a9, 0xe9680de2, + 0x3e8a8dba, 0x9ddc0b13, 0x4a3e8b4b, 0x09a11d85, 0xde439ddd, + 0x7d151b74, 0xaaf79b2c, 0xe0c91067, 0x372b903f, 0x947d1696, + 0x439f96ce, 0x13423b0a, 0xc4a0bb52, 0x67f63dfb, 0xb014bda3, + 0xfa2a36e8, 0x2dc8b6b0, 0x8e9e3019, 0x597cb041, 0x1ae3268f, + 0xcd01a6d7, 0x6e57207e, 0xb9b5a026, 0xf38b2b6d, 0x2469ab35, + 0x873f2d9c, 0x50ddadc4, 0x26847614, 0xf166f64c, 0x523070e5, + 0x85d2f0bd, 0xcfec7bf6, 0x180efbae, 0xbb587d07, 0x6cbafd5f, + 0x2f256b91, 0xf8c7ebc9, 0x5b916d60, 0x8c73ed38, 0xc64d6673, + 0x11afe62b, 0xb2f96082, 0x651be0da, 0x35c64d1e, 0xe224cd46, + 0x41724bef, 0x9690cbb7, 0xdcae40fc, 0x0b4cc0a4, 0xa81a460d, + 0x7ff8c655, 0x3c67509b, 0xeb85d0c3, 0x48d3566a, 0x9f31d632, + 0xd50f5d79, 0x02eddd21, 0xa1bb5b88, 0x7659dbd0, 0x4d08ec28, + 0x9aea6c70, 0x39bcead9, 0xee5e6a81, 0xa460e1ca, 0x73826192, + 0xd0d4e73b, 0x07366763, 0x44a9f1ad, 0x934b71f5, 0x301df75c, + 0xe7ff7704, 0xadc1fc4f, 0x7a237c17, 0xd975fabe, 0x0e977ae6, + 0x5e4ad722, 0x89a8577a, 0x2afed1d3, 0xfd1c518b, 0xb722dac0, + 0x60c05a98, 0xc396dc31, 0x14745c69, 0x57ebcaa7, 0x80094aff, + 0x235fcc56, 0xf4bd4c0e, 0xbe83c745, 0x6961471d, 0xca37c1b4, + 0x1dd541ec, 0x6b8c9a3c, 0xbc6e1a64, 0x1f389ccd, 0xc8da1c95, + 0x82e497de, 0x55061786, 0xf650912f, 0x21b21177, 0x622d87b9, + 0xb5cf07e1, 0x16998148, 0xc17b0110, 0x8b458a5b, 0x5ca70a03, + 0xfff18caa, 0x28130cf2, 0x78cea136, 0xaf2c216e, 0x0c7aa7c7, + 0xdb98279f, 0x91a6acd4, 0x46442c8c, 0xe512aa25, 0x32f02a7d, + 0x716fbcb3, 0xa68d3ceb, 0x05dbba42, 0xd2393a1a, 0x9807b151, + 0x4fe53109, 0xecb3b7a0, 0x3b5137f8, 0x9a11d850, 0x4df35808, + 0xeea5dea1, 0x39475ef9, 0x7379d5b2, 0xa49b55ea, 0x07cdd343, + 0xd02f531b, 0x93b0c5d5, 0x4452458d, 0xe704c324, 0x30e6437c, + 0x7ad8c837, 0xad3a486f, 0x0e6ccec6, 0xd98e4e9e, 0x8953e35a, + 0x5eb16302, 0xfde7e5ab, 0x2a0565f3, 0x603beeb8, 0xb7d96ee0, + 0x148fe849, 0xc36d6811, 0x80f2fedf, 0x57107e87, 0xf446f82e, + 0x23a47876, 0x699af33d, 0xbe787365, 0x1d2ef5cc, 0xcacc7594, + 0xbc95ae44, 0x6b772e1c, 0xc821a8b5, 0x1fc328ed, 0x55fda3a6, + 0x821f23fe, 0x2149a557, 0xf6ab250f, 0xb534b3c1, 0x62d63399, + 0xc180b530, 0x16623568, 0x5c5cbe23, 0x8bbe3e7b, 0x28e8b8d2, + 0xff0a388a, 0xafd7954e, 0x78351516, 0xdb6393bf, 0x0c8113e7, + 0x46bf98ac, 0x915d18f4, 0x320b9e5d, 0xe5e91e05, 0xa67688cb, + 0x71940893, 0xd2c28e3a, 0x05200e62, 0x4f1e8529, 0x98fc0571, + 0x3baa83d8, 0xec480380, 0xd7193478, 0x00fbb420, 0xa3ad3289, + 0x744fb2d1, 0x3e71399a, 0xe993b9c2, 0x4ac53f6b, 0x9d27bf33, + 0xdeb829fd, 0x095aa9a5, 0xaa0c2f0c, 0x7deeaf54, 0x37d0241f, + 0xe032a447, 0x436422ee, 0x9486a2b6, 0xc45b0f72, 0x13b98f2a, + 0xb0ef0983, 0x670d89db, 0x2d330290, 0xfad182c8, 0x59870461, + 0x8e658439, 0xcdfa12f7, 0x1a1892af, 0xb94e1406, 0x6eac945e, + 0x24921f15, 0xf3709f4d, 0x502619e4, 0x87c499bc, 0xf19d426c, + 0x267fc234, 0x8529449d, 0x52cbc4c5, 0x18f54f8e, 0xcf17cfd6, + 0x6c41497f, 0xbba3c927, 0xf83c5fe9, 0x2fdedfb1, 0x8c885918, + 0x5b6ad940, 0x1154520b, 0xc6b6d253, 0x65e054fa, 0xb202d4a2, + 0xe2df7966, 0x353df93e, 0x966b7f97, 0x4189ffcf, 0x0bb77484, + 0xdc55f4dc, 0x7f037275, 0xa8e1f22d, 0xeb7e64e3, 0x3c9ce4bb, + 0x9fca6212, 0x4828e24a, 0x02166901, 0xd5f4e959, 0x76a26ff0, + 0xa140efa8}, + {0x00000000, 0xef52b6e1, 0x05d46b83, 0xea86dd62, 0x0ba8d706, + 0xe4fa61e7, 0x0e7cbc85, 0xe12e0a64, 0x1751ae0c, 0xf80318ed, + 0x1285c58f, 0xfdd7736e, 0x1cf9790a, 0xf3abcfeb, 0x192d1289, + 0xf67fa468, 0x2ea35c18, 0xc1f1eaf9, 0x2b77379b, 0xc425817a, + 0x250b8b1e, 0xca593dff, 0x20dfe09d, 0xcf8d567c, 0x39f2f214, + 0xd6a044f5, 0x3c269997, 0xd3742f76, 0x325a2512, 0xdd0893f3, + 0x378e4e91, 0xd8dcf870, 0x5d46b830, 0xb2140ed1, 0x5892d3b3, + 0xb7c06552, 0x56ee6f36, 0xb9bcd9d7, 0x533a04b5, 0xbc68b254, + 0x4a17163c, 0xa545a0dd, 0x4fc37dbf, 0xa091cb5e, 0x41bfc13a, + 0xaeed77db, 0x446baab9, 0xab391c58, 0x73e5e428, 0x9cb752c9, + 0x76318fab, 0x9963394a, 0x784d332e, 0x971f85cf, 0x7d9958ad, + 0x92cbee4c, 0x64b44a24, 0x8be6fcc5, 0x616021a7, 0x8e329746, + 0x6f1c9d22, 0x804e2bc3, 0x6ac8f6a1, 0x859a4040, 0xba8d7060, + 0x55dfc681, 0xbf591be3, 0x500bad02, 0xb125a766, 0x5e771187, + 0xb4f1cce5, 0x5ba37a04, 0xaddcde6c, 0x428e688d, 0xa808b5ef, + 0x475a030e, 0xa674096a, 0x4926bf8b, 0xa3a062e9, 0x4cf2d408, + 0x942e2c78, 0x7b7c9a99, 0x91fa47fb, 0x7ea8f11a, 0x9f86fb7e, + 0x70d44d9f, 0x9a5290fd, 0x7500261c, 0x837f8274, 0x6c2d3495, + 0x86abe9f7, 0x69f95f16, 0x88d75572, 0x6785e393, 0x8d033ef1, + 0x62518810, 0xe7cbc850, 0x08997eb1, 0xe21fa3d3, 0x0d4d1532, + 0xec631f56, 0x0331a9b7, 0xe9b774d5, 0x06e5c234, 0xf09a665c, + 0x1fc8d0bd, 0xf54e0ddf, 0x1a1cbb3e, 0xfb32b15a, 0x146007bb, + 0xfee6dad9, 0x11b46c38, 0xc9689448, 0x263a22a9, 0xccbcffcb, + 0x23ee492a, 0xc2c0434e, 0x2d92f5af, 0xc71428cd, 0x28469e2c, + 0xde393a44, 0x316b8ca5, 0xdbed51c7, 0x34bfe726, 0xd591ed42, + 0x3ac35ba3, 0xd04586c1, 0x3f173020, 0xae6be681, 0x41395060, + 0xabbf8d02, 0x44ed3be3, 0xa5c33187, 0x4a918766, 0xa0175a04, + 0x4f45ece5, 0xb93a488d, 0x5668fe6c, 0xbcee230e, 0x53bc95ef, + 0xb2929f8b, 0x5dc0296a, 0xb746f408, 0x581442e9, 0x80c8ba99, + 0x6f9a0c78, 0x851cd11a, 0x6a4e67fb, 0x8b606d9f, 0x6432db7e, + 0x8eb4061c, 0x61e6b0fd, 0x97991495, 0x78cba274, 0x924d7f16, + 0x7d1fc9f7, 0x9c31c393, 0x73637572, 0x99e5a810, 0x76b71ef1, + 0xf32d5eb1, 0x1c7fe850, 0xf6f93532, 0x19ab83d3, 0xf88589b7, + 0x17d73f56, 0xfd51e234, 0x120354d5, 0xe47cf0bd, 0x0b2e465c, + 0xe1a89b3e, 0x0efa2ddf, 0xefd427bb, 0x0086915a, 0xea004c38, + 0x0552fad9, 0xdd8e02a9, 0x32dcb448, 0xd85a692a, 0x3708dfcb, + 0xd626d5af, 0x3974634e, 0xd3f2be2c, 0x3ca008cd, 0xcadfaca5, + 0x258d1a44, 0xcf0bc726, 0x205971c7, 0xc1777ba3, 0x2e25cd42, + 0xc4a31020, 0x2bf1a6c1, 0x14e696e1, 0xfbb42000, 0x1132fd62, + 0xfe604b83, 0x1f4e41e7, 0xf01cf706, 0x1a9a2a64, 0xf5c89c85, + 0x03b738ed, 0xece58e0c, 0x0663536e, 0xe931e58f, 0x081fefeb, + 0xe74d590a, 0x0dcb8468, 0xe2993289, 0x3a45caf9, 0xd5177c18, + 0x3f91a17a, 0xd0c3179b, 0x31ed1dff, 0xdebfab1e, 0x3439767c, + 0xdb6bc09d, 0x2d1464f5, 0xc246d214, 0x28c00f76, 0xc792b997, + 0x26bcb3f3, 0xc9ee0512, 0x2368d870, 0xcc3a6e91, 0x49a02ed1, + 0xa6f29830, 0x4c744552, 0xa326f3b3, 0x4208f9d7, 0xad5a4f36, + 0x47dc9254, 0xa88e24b5, 0x5ef180dd, 0xb1a3363c, 0x5b25eb5e, + 0xb4775dbf, 0x555957db, 0xba0be13a, 0x508d3c58, 0xbfdf8ab9, + 0x670372c9, 0x8851c428, 0x62d7194a, 0x8d85afab, 0x6caba5cf, + 0x83f9132e, 0x697fce4c, 0x862d78ad, 0x7052dcc5, 0x9f006a24, + 0x7586b746, 0x9ad401a7, 0x7bfa0bc3, 0x94a8bd22, 0x7e2e6040, + 0x917cd6a1}, + {0x00000000, 0x87a6cb43, 0xd43c90c7, 0x539a5b84, 0x730827cf, + 0xf4aeec8c, 0xa734b708, 0x20927c4b, 0xe6104f9e, 0x61b684dd, + 0x322cdf59, 0xb58a141a, 0x95186851, 0x12bea312, 0x4124f896, + 0xc68233d5, 0x1751997d, 0x90f7523e, 0xc36d09ba, 0x44cbc2f9, + 0x6459beb2, 0xe3ff75f1, 0xb0652e75, 0x37c3e536, 0xf141d6e3, + 0x76e71da0, 0x257d4624, 0xa2db8d67, 0x8249f12c, 0x05ef3a6f, + 0x567561eb, 0xd1d3aaa8, 0x2ea332fa, 0xa905f9b9, 0xfa9fa23d, + 0x7d39697e, 0x5dab1535, 0xda0dde76, 0x899785f2, 0x0e314eb1, + 0xc8b37d64, 0x4f15b627, 0x1c8feda3, 0x9b2926e0, 0xbbbb5aab, + 0x3c1d91e8, 0x6f87ca6c, 0xe821012f, 0x39f2ab87, 0xbe5460c4, + 0xedce3b40, 0x6a68f003, 0x4afa8c48, 0xcd5c470b, 0x9ec61c8f, + 0x1960d7cc, 0xdfe2e419, 0x58442f5a, 0x0bde74de, 0x8c78bf9d, + 0xaceac3d6, 0x2b4c0895, 0x78d65311, 0xff709852, 0x5d4665f4, + 0xdae0aeb7, 0x897af533, 0x0edc3e70, 0x2e4e423b, 0xa9e88978, + 0xfa72d2fc, 0x7dd419bf, 0xbb562a6a, 0x3cf0e129, 0x6f6abaad, + 0xe8cc71ee, 0xc85e0da5, 0x4ff8c6e6, 0x1c629d62, 0x9bc45621, + 0x4a17fc89, 0xcdb137ca, 0x9e2b6c4e, 0x198da70d, 0x391fdb46, + 0xbeb91005, 0xed234b81, 0x6a8580c2, 0xac07b317, 0x2ba17854, + 0x783b23d0, 0xff9de893, 0xdf0f94d8, 0x58a95f9b, 0x0b33041f, + 0x8c95cf5c, 0x73e5570e, 0xf4439c4d, 0xa7d9c7c9, 0x207f0c8a, + 0x00ed70c1, 0x874bbb82, 0xd4d1e006, 0x53772b45, 0x95f51890, + 0x1253d3d3, 0x41c98857, 0xc66f4314, 0xe6fd3f5f, 0x615bf41c, + 0x32c1af98, 0xb56764db, 0x64b4ce73, 0xe3120530, 0xb0885eb4, + 0x372e95f7, 0x17bce9bc, 0x901a22ff, 0xc380797b, 0x4426b238, + 0x82a481ed, 0x05024aae, 0x5698112a, 0xd13eda69, 0xf1aca622, + 0x760a6d61, 0x259036e5, 0xa236fda6, 0xba8ccbe8, 0x3d2a00ab, + 0x6eb05b2f, 0xe916906c, 0xc984ec27, 0x4e222764, 0x1db87ce0, + 0x9a1eb7a3, 0x5c9c8476, 0xdb3a4f35, 0x88a014b1, 0x0f06dff2, + 0x2f94a3b9, 0xa83268fa, 0xfba8337e, 0x7c0ef83d, 0xaddd5295, + 0x2a7b99d6, 0x79e1c252, 0xfe470911, 0xded5755a, 0x5973be19, + 0x0ae9e59d, 0x8d4f2ede, 0x4bcd1d0b, 0xcc6bd648, 0x9ff18dcc, + 0x1857468f, 0x38c53ac4, 0xbf63f187, 0xecf9aa03, 0x6b5f6140, + 0x942ff912, 0x13893251, 0x401369d5, 0xc7b5a296, 0xe727dedd, + 0x6081159e, 0x331b4e1a, 0xb4bd8559, 0x723fb68c, 0xf5997dcf, + 0xa603264b, 0x21a5ed08, 0x01379143, 0x86915a00, 0xd50b0184, + 0x52adcac7, 0x837e606f, 0x04d8ab2c, 0x5742f0a8, 0xd0e43beb, + 0xf07647a0, 0x77d08ce3, 0x244ad767, 0xa3ec1c24, 0x656e2ff1, + 0xe2c8e4b2, 0xb152bf36, 0x36f47475, 0x1666083e, 0x91c0c37d, + 0xc25a98f9, 0x45fc53ba, 0xe7caae1c, 0x606c655f, 0x33f63edb, + 0xb450f598, 0x94c289d3, 0x13644290, 0x40fe1914, 0xc758d257, + 0x01dae182, 0x867c2ac1, 0xd5e67145, 0x5240ba06, 0x72d2c64d, + 0xf5740d0e, 0xa6ee568a, 0x21489dc9, 0xf09b3761, 0x773dfc22, + 0x24a7a7a6, 0xa3016ce5, 0x839310ae, 0x0435dbed, 0x57af8069, + 0xd0094b2a, 0x168b78ff, 0x912db3bc, 0xc2b7e838, 0x4511237b, + 0x65835f30, 0xe2259473, 0xb1bfcff7, 0x361904b4, 0xc9699ce6, + 0x4ecf57a5, 0x1d550c21, 0x9af3c762, 0xba61bb29, 0x3dc7706a, + 0x6e5d2bee, 0xe9fbe0ad, 0x2f79d378, 0xa8df183b, 0xfb4543bf, + 0x7ce388fc, 0x5c71f4b7, 0xdbd73ff4, 0x884d6470, 0x0febaf33, + 0xde38059b, 0x599eced8, 0x0a04955c, 0x8da25e1f, 0xad302254, + 0x2a96e917, 0x790cb293, 0xfeaa79d0, 0x38284a05, 0xbf8e8146, + 0xec14dac2, 0x6bb21181, 0x4b206dca, 0xcc86a689, 0x9f1cfd0d, + 0x18ba364e}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x43cba68700000000, 0xc7903cd400000000, + 0x845b9a5300000000, 0xcf27087300000000, 0x8cecaef400000000, + 0x08b734a700000000, 0x4b7c922000000000, 0x9e4f10e600000000, + 0xdd84b66100000000, 0x59df2c3200000000, 0x1a148ab500000000, + 0x5168189500000000, 0x12a3be1200000000, 0x96f8244100000000, + 0xd53382c600000000, 0x7d99511700000000, 0x3e52f79000000000, + 0xba096dc300000000, 0xf9c2cb4400000000, 0xb2be596400000000, + 0xf175ffe300000000, 0x752e65b000000000, 0x36e5c33700000000, + 0xe3d641f100000000, 0xa01de77600000000, 0x24467d2500000000, + 0x678ddba200000000, 0x2cf1498200000000, 0x6f3aef0500000000, + 0xeb61755600000000, 0xa8aad3d100000000, 0xfa32a32e00000000, + 0xb9f905a900000000, 0x3da29ffa00000000, 0x7e69397d00000000, + 0x3515ab5d00000000, 0x76de0dda00000000, 0xf285978900000000, + 0xb14e310e00000000, 0x647db3c800000000, 0x27b6154f00000000, + 0xa3ed8f1c00000000, 0xe026299b00000000, 0xab5abbbb00000000, + 0xe8911d3c00000000, 0x6cca876f00000000, 0x2f0121e800000000, + 0x87abf23900000000, 0xc46054be00000000, 0x403bceed00000000, + 0x03f0686a00000000, 0x488cfa4a00000000, 0x0b475ccd00000000, + 0x8f1cc69e00000000, 0xccd7601900000000, 0x19e4e2df00000000, + 0x5a2f445800000000, 0xde74de0b00000000, 0x9dbf788c00000000, + 0xd6c3eaac00000000, 0x95084c2b00000000, 0x1153d67800000000, + 0x529870ff00000000, 0xf465465d00000000, 0xb7aee0da00000000, + 0x33f57a8900000000, 0x703edc0e00000000, 0x3b424e2e00000000, + 0x7889e8a900000000, 0xfcd272fa00000000, 0xbf19d47d00000000, + 0x6a2a56bb00000000, 0x29e1f03c00000000, 0xadba6a6f00000000, + 0xee71cce800000000, 0xa50d5ec800000000, 0xe6c6f84f00000000, + 0x629d621c00000000, 0x2156c49b00000000, 0x89fc174a00000000, + 0xca37b1cd00000000, 0x4e6c2b9e00000000, 0x0da78d1900000000, + 0x46db1f3900000000, 0x0510b9be00000000, 0x814b23ed00000000, + 0xc280856a00000000, 0x17b307ac00000000, 0x5478a12b00000000, + 0xd0233b7800000000, 0x93e89dff00000000, 0xd8940fdf00000000, + 0x9b5fa95800000000, 0x1f04330b00000000, 0x5ccf958c00000000, + 0x0e57e57300000000, 0x4d9c43f400000000, 0xc9c7d9a700000000, + 0x8a0c7f2000000000, 0xc170ed0000000000, 0x82bb4b8700000000, + 0x06e0d1d400000000, 0x452b775300000000, 0x9018f59500000000, + 0xd3d3531200000000, 0x5788c94100000000, 0x14436fc600000000, + 0x5f3ffde600000000, 0x1cf45b6100000000, 0x98afc13200000000, + 0xdb6467b500000000, 0x73ceb46400000000, 0x300512e300000000, + 0xb45e88b000000000, 0xf7952e3700000000, 0xbce9bc1700000000, + 0xff221a9000000000, 0x7b7980c300000000, 0x38b2264400000000, + 0xed81a48200000000, 0xae4a020500000000, 0x2a11985600000000, + 0x69da3ed100000000, 0x22a6acf100000000, 0x616d0a7600000000, + 0xe536902500000000, 0xa6fd36a200000000, 0xe8cb8cba00000000, + 0xab002a3d00000000, 0x2f5bb06e00000000, 0x6c9016e900000000, + 0x27ec84c900000000, 0x6427224e00000000, 0xe07cb81d00000000, + 0xa3b71e9a00000000, 0x76849c5c00000000, 0x354f3adb00000000, + 0xb114a08800000000, 0xf2df060f00000000, 0xb9a3942f00000000, + 0xfa6832a800000000, 0x7e33a8fb00000000, 0x3df80e7c00000000, + 0x9552ddad00000000, 0xd6997b2a00000000, 0x52c2e17900000000, + 0x110947fe00000000, 0x5a75d5de00000000, 0x19be735900000000, + 0x9de5e90a00000000, 0xde2e4f8d00000000, 0x0b1dcd4b00000000, + 0x48d66bcc00000000, 0xcc8df19f00000000, 0x8f46571800000000, + 0xc43ac53800000000, 0x87f163bf00000000, 0x03aaf9ec00000000, + 0x40615f6b00000000, 0x12f92f9400000000, 0x5132891300000000, + 0xd569134000000000, 0x96a2b5c700000000, 0xddde27e700000000, + 0x9e15816000000000, 0x1a4e1b3300000000, 0x5985bdb400000000, + 0x8cb63f7200000000, 0xcf7d99f500000000, 0x4b2603a600000000, + 0x08eda52100000000, 0x4391370100000000, 0x005a918600000000, + 0x84010bd500000000, 0xc7caad5200000000, 0x6f607e8300000000, + 0x2cabd80400000000, 0xa8f0425700000000, 0xeb3be4d000000000, + 0xa04776f000000000, 0xe38cd07700000000, 0x67d74a2400000000, + 0x241ceca300000000, 0xf12f6e6500000000, 0xb2e4c8e200000000, + 0x36bf52b100000000, 0x7574f43600000000, 0x3e08661600000000, + 0x7dc3c09100000000, 0xf9985ac200000000, 0xba53fc4500000000, + 0x1caecae700000000, 0x5f656c6000000000, 0xdb3ef63300000000, + 0x98f550b400000000, 0xd389c29400000000, 0x9042641300000000, + 0x1419fe4000000000, 0x57d258c700000000, 0x82e1da0100000000, + 0xc12a7c8600000000, 0x4571e6d500000000, 0x06ba405200000000, + 0x4dc6d27200000000, 0x0e0d74f500000000, 0x8a56eea600000000, + 0xc99d482100000000, 0x61379bf000000000, 0x22fc3d7700000000, + 0xa6a7a72400000000, 0xe56c01a300000000, 0xae10938300000000, + 0xeddb350400000000, 0x6980af5700000000, 0x2a4b09d000000000, + 0xff788b1600000000, 0xbcb32d9100000000, 0x38e8b7c200000000, + 0x7b23114500000000, 0x305f836500000000, 0x739425e200000000, + 0xf7cfbfb100000000, 0xb404193600000000, 0xe69c69c900000000, + 0xa557cf4e00000000, 0x210c551d00000000, 0x62c7f39a00000000, + 0x29bb61ba00000000, 0x6a70c73d00000000, 0xee2b5d6e00000000, + 0xade0fbe900000000, 0x78d3792f00000000, 0x3b18dfa800000000, + 0xbf4345fb00000000, 0xfc88e37c00000000, 0xb7f4715c00000000, + 0xf43fd7db00000000, 0x70644d8800000000, 0x33afeb0f00000000, + 0x9b0538de00000000, 0xd8ce9e5900000000, 0x5c95040a00000000, + 0x1f5ea28d00000000, 0x542230ad00000000, 0x17e9962a00000000, + 0x93b20c7900000000, 0xd079aafe00000000, 0x054a283800000000, + 0x46818ebf00000000, 0xc2da14ec00000000, 0x8111b26b00000000, + 0xca6d204b00000000, 0x89a686cc00000000, 0x0dfd1c9f00000000, + 0x4e36ba1800000000}, + {0x0000000000000000, 0xe1b652ef00000000, 0x836bd40500000000, + 0x62dd86ea00000000, 0x06d7a80b00000000, 0xe761fae400000000, + 0x85bc7c0e00000000, 0x640a2ee100000000, 0x0cae511700000000, + 0xed1803f800000000, 0x8fc5851200000000, 0x6e73d7fd00000000, + 0x0a79f91c00000000, 0xebcfabf300000000, 0x89122d1900000000, + 0x68a47ff600000000, 0x185ca32e00000000, 0xf9eaf1c100000000, + 0x9b37772b00000000, 0x7a8125c400000000, 0x1e8b0b2500000000, + 0xff3d59ca00000000, 0x9de0df2000000000, 0x7c568dcf00000000, + 0x14f2f23900000000, 0xf544a0d600000000, 0x9799263c00000000, + 0x762f74d300000000, 0x12255a3200000000, 0xf39308dd00000000, + 0x914e8e3700000000, 0x70f8dcd800000000, 0x30b8465d00000000, + 0xd10e14b200000000, 0xb3d3925800000000, 0x5265c0b700000000, + 0x366fee5600000000, 0xd7d9bcb900000000, 0xb5043a5300000000, + 0x54b268bc00000000, 0x3c16174a00000000, 0xdda045a500000000, + 0xbf7dc34f00000000, 0x5ecb91a000000000, 0x3ac1bf4100000000, + 0xdb77edae00000000, 0xb9aa6b4400000000, 0x581c39ab00000000, + 0x28e4e57300000000, 0xc952b79c00000000, 0xab8f317600000000, + 0x4a39639900000000, 0x2e334d7800000000, 0xcf851f9700000000, + 0xad58997d00000000, 0x4ceecb9200000000, 0x244ab46400000000, + 0xc5fce68b00000000, 0xa721606100000000, 0x4697328e00000000, + 0x229d1c6f00000000, 0xc32b4e8000000000, 0xa1f6c86a00000000, + 0x40409a8500000000, 0x60708dba00000000, 0x81c6df5500000000, + 0xe31b59bf00000000, 0x02ad0b5000000000, 0x66a725b100000000, + 0x8711775e00000000, 0xe5ccf1b400000000, 0x047aa35b00000000, + 0x6cdedcad00000000, 0x8d688e4200000000, 0xefb508a800000000, + 0x0e035a4700000000, 0x6a0974a600000000, 0x8bbf264900000000, + 0xe962a0a300000000, 0x08d4f24c00000000, 0x782c2e9400000000, + 0x999a7c7b00000000, 0xfb47fa9100000000, 0x1af1a87e00000000, + 0x7efb869f00000000, 0x9f4dd47000000000, 0xfd90529a00000000, + 0x1c26007500000000, 0x74827f8300000000, 0x95342d6c00000000, + 0xf7e9ab8600000000, 0x165ff96900000000, 0x7255d78800000000, + 0x93e3856700000000, 0xf13e038d00000000, 0x1088516200000000, + 0x50c8cbe700000000, 0xb17e990800000000, 0xd3a31fe200000000, + 0x32154d0d00000000, 0x561f63ec00000000, 0xb7a9310300000000, + 0xd574b7e900000000, 0x34c2e50600000000, 0x5c669af000000000, + 0xbdd0c81f00000000, 0xdf0d4ef500000000, 0x3ebb1c1a00000000, + 0x5ab132fb00000000, 0xbb07601400000000, 0xd9dae6fe00000000, + 0x386cb41100000000, 0x489468c900000000, 0xa9223a2600000000, + 0xcbffbccc00000000, 0x2a49ee2300000000, 0x4e43c0c200000000, + 0xaff5922d00000000, 0xcd2814c700000000, 0x2c9e462800000000, + 0x443a39de00000000, 0xa58c6b3100000000, 0xc751eddb00000000, + 0x26e7bf3400000000, 0x42ed91d500000000, 0xa35bc33a00000000, + 0xc18645d000000000, 0x2030173f00000000, 0x81e66bae00000000, + 0x6050394100000000, 0x028dbfab00000000, 0xe33bed4400000000, + 0x8731c3a500000000, 0x6687914a00000000, 0x045a17a000000000, + 0xe5ec454f00000000, 0x8d483ab900000000, 0x6cfe685600000000, + 0x0e23eebc00000000, 0xef95bc5300000000, 0x8b9f92b200000000, + 0x6a29c05d00000000, 0x08f446b700000000, 0xe942145800000000, + 0x99bac88000000000, 0x780c9a6f00000000, 0x1ad11c8500000000, + 0xfb674e6a00000000, 0x9f6d608b00000000, 0x7edb326400000000, + 0x1c06b48e00000000, 0xfdb0e66100000000, 0x9514999700000000, + 0x74a2cb7800000000, 0x167f4d9200000000, 0xf7c91f7d00000000, + 0x93c3319c00000000, 0x7275637300000000, 0x10a8e59900000000, + 0xf11eb77600000000, 0xb15e2df300000000, 0x50e87f1c00000000, + 0x3235f9f600000000, 0xd383ab1900000000, 0xb78985f800000000, + 0x563fd71700000000, 0x34e251fd00000000, 0xd554031200000000, + 0xbdf07ce400000000, 0x5c462e0b00000000, 0x3e9ba8e100000000, + 0xdf2dfa0e00000000, 0xbb27d4ef00000000, 0x5a91860000000000, + 0x384c00ea00000000, 0xd9fa520500000000, 0xa9028edd00000000, + 0x48b4dc3200000000, 0x2a695ad800000000, 0xcbdf083700000000, + 0xafd526d600000000, 0x4e63743900000000, 0x2cbef2d300000000, + 0xcd08a03c00000000, 0xa5acdfca00000000, 0x441a8d2500000000, + 0x26c70bcf00000000, 0xc771592000000000, 0xa37b77c100000000, + 0x42cd252e00000000, 0x2010a3c400000000, 0xc1a6f12b00000000, + 0xe196e61400000000, 0x0020b4fb00000000, 0x62fd321100000000, + 0x834b60fe00000000, 0xe7414e1f00000000, 0x06f71cf000000000, + 0x642a9a1a00000000, 0x859cc8f500000000, 0xed38b70300000000, + 0x0c8ee5ec00000000, 0x6e53630600000000, 0x8fe531e900000000, + 0xebef1f0800000000, 0x0a594de700000000, 0x6884cb0d00000000, + 0x893299e200000000, 0xf9ca453a00000000, 0x187c17d500000000, + 0x7aa1913f00000000, 0x9b17c3d000000000, 0xff1ded3100000000, + 0x1eabbfde00000000, 0x7c76393400000000, 0x9dc06bdb00000000, + 0xf564142d00000000, 0x14d246c200000000, 0x760fc02800000000, + 0x97b992c700000000, 0xf3b3bc2600000000, 0x1205eec900000000, + 0x70d8682300000000, 0x916e3acc00000000, 0xd12ea04900000000, + 0x3098f2a600000000, 0x5245744c00000000, 0xb3f326a300000000, + 0xd7f9084200000000, 0x364f5aad00000000, 0x5492dc4700000000, + 0xb5248ea800000000, 0xdd80f15e00000000, 0x3c36a3b100000000, + 0x5eeb255b00000000, 0xbf5d77b400000000, 0xdb57595500000000, + 0x3ae10bba00000000, 0x583c8d5000000000, 0xb98adfbf00000000, + 0xc972036700000000, 0x28c4518800000000, 0x4a19d76200000000, + 0xabaf858d00000000, 0xcfa5ab6c00000000, 0x2e13f98300000000, + 0x4cce7f6900000000, 0xad782d8600000000, 0xc5dc527000000000, + 0x246a009f00000000, 0x46b7867500000000, 0xa701d49a00000000, + 0xc30bfa7b00000000, 0x22bda89400000000, 0x40602e7e00000000, + 0xa1d67c9100000000}, + {0x0000000000000000, 0x5880e2d700000000, 0xf106b47400000000, + 0xa98656a300000000, 0xe20d68e900000000, 0xba8d8a3e00000000, + 0x130bdc9d00000000, 0x4b8b3e4a00000000, 0x851da10900000000, + 0xdd9d43de00000000, 0x741b157d00000000, 0x2c9bf7aa00000000, + 0x6710c9e000000000, 0x3f902b3700000000, 0x96167d9400000000, + 0xce969f4300000000, 0x0a3b421300000000, 0x52bba0c400000000, + 0xfb3df66700000000, 0xa3bd14b000000000, 0xe8362afa00000000, + 0xb0b6c82d00000000, 0x19309e8e00000000, 0x41b07c5900000000, + 0x8f26e31a00000000, 0xd7a601cd00000000, 0x7e20576e00000000, + 0x26a0b5b900000000, 0x6d2b8bf300000000, 0x35ab692400000000, + 0x9c2d3f8700000000, 0xc4addd5000000000, 0x1476842600000000, + 0x4cf666f100000000, 0xe570305200000000, 0xbdf0d28500000000, + 0xf67beccf00000000, 0xaefb0e1800000000, 0x077d58bb00000000, + 0x5ffdba6c00000000, 0x916b252f00000000, 0xc9ebc7f800000000, + 0x606d915b00000000, 0x38ed738c00000000, 0x73664dc600000000, + 0x2be6af1100000000, 0x8260f9b200000000, 0xdae01b6500000000, + 0x1e4dc63500000000, 0x46cd24e200000000, 0xef4b724100000000, + 0xb7cb909600000000, 0xfc40aedc00000000, 0xa4c04c0b00000000, + 0x0d461aa800000000, 0x55c6f87f00000000, 0x9b50673c00000000, + 0xc3d085eb00000000, 0x6a56d34800000000, 0x32d6319f00000000, + 0x795d0fd500000000, 0x21dded0200000000, 0x885bbba100000000, + 0xd0db597600000000, 0x28ec084d00000000, 0x706cea9a00000000, + 0xd9eabc3900000000, 0x816a5eee00000000, 0xcae160a400000000, + 0x9261827300000000, 0x3be7d4d000000000, 0x6367360700000000, + 0xadf1a94400000000, 0xf5714b9300000000, 0x5cf71d3000000000, + 0x0477ffe700000000, 0x4ffcc1ad00000000, 0x177c237a00000000, + 0xbefa75d900000000, 0xe67a970e00000000, 0x22d74a5e00000000, + 0x7a57a88900000000, 0xd3d1fe2a00000000, 0x8b511cfd00000000, + 0xc0da22b700000000, 0x985ac06000000000, 0x31dc96c300000000, + 0x695c741400000000, 0xa7caeb5700000000, 0xff4a098000000000, + 0x56cc5f2300000000, 0x0e4cbdf400000000, 0x45c783be00000000, + 0x1d47616900000000, 0xb4c137ca00000000, 0xec41d51d00000000, + 0x3c9a8c6b00000000, 0x641a6ebc00000000, 0xcd9c381f00000000, + 0x951cdac800000000, 0xde97e48200000000, 0x8617065500000000, + 0x2f9150f600000000, 0x7711b22100000000, 0xb9872d6200000000, + 0xe107cfb500000000, 0x4881991600000000, 0x10017bc100000000, + 0x5b8a458b00000000, 0x030aa75c00000000, 0xaa8cf1ff00000000, + 0xf20c132800000000, 0x36a1ce7800000000, 0x6e212caf00000000, + 0xc7a77a0c00000000, 0x9f2798db00000000, 0xd4aca69100000000, + 0x8c2c444600000000, 0x25aa12e500000000, 0x7d2af03200000000, + 0xb3bc6f7100000000, 0xeb3c8da600000000, 0x42badb0500000000, + 0x1a3a39d200000000, 0x51b1079800000000, 0x0931e54f00000000, + 0xa0b7b3ec00000000, 0xf837513b00000000, 0x50d8119a00000000, + 0x0858f34d00000000, 0xa1dea5ee00000000, 0xf95e473900000000, + 0xb2d5797300000000, 0xea559ba400000000, 0x43d3cd0700000000, + 0x1b532fd000000000, 0xd5c5b09300000000, 0x8d45524400000000, + 0x24c304e700000000, 0x7c43e63000000000, 0x37c8d87a00000000, + 0x6f483aad00000000, 0xc6ce6c0e00000000, 0x9e4e8ed900000000, + 0x5ae3538900000000, 0x0263b15e00000000, 0xabe5e7fd00000000, + 0xf365052a00000000, 0xb8ee3b6000000000, 0xe06ed9b700000000, + 0x49e88f1400000000, 0x11686dc300000000, 0xdffef28000000000, + 0x877e105700000000, 0x2ef846f400000000, 0x7678a42300000000, + 0x3df39a6900000000, 0x657378be00000000, 0xccf52e1d00000000, + 0x9475ccca00000000, 0x44ae95bc00000000, 0x1c2e776b00000000, + 0xb5a821c800000000, 0xed28c31f00000000, 0xa6a3fd5500000000, + 0xfe231f8200000000, 0x57a5492100000000, 0x0f25abf600000000, + 0xc1b334b500000000, 0x9933d66200000000, 0x30b580c100000000, + 0x6835621600000000, 0x23be5c5c00000000, 0x7b3ebe8b00000000, + 0xd2b8e82800000000, 0x8a380aff00000000, 0x4e95d7af00000000, + 0x1615357800000000, 0xbf9363db00000000, 0xe713810c00000000, + 0xac98bf4600000000, 0xf4185d9100000000, 0x5d9e0b3200000000, + 0x051ee9e500000000, 0xcb8876a600000000, 0x9308947100000000, + 0x3a8ec2d200000000, 0x620e200500000000, 0x29851e4f00000000, + 0x7105fc9800000000, 0xd883aa3b00000000, 0x800348ec00000000, + 0x783419d700000000, 0x20b4fb0000000000, 0x8932ada300000000, + 0xd1b24f7400000000, 0x9a39713e00000000, 0xc2b993e900000000, + 0x6b3fc54a00000000, 0x33bf279d00000000, 0xfd29b8de00000000, + 0xa5a95a0900000000, 0x0c2f0caa00000000, 0x54afee7d00000000, + 0x1f24d03700000000, 0x47a432e000000000, 0xee22644300000000, + 0xb6a2869400000000, 0x720f5bc400000000, 0x2a8fb91300000000, + 0x8309efb000000000, 0xdb890d6700000000, 0x9002332d00000000, + 0xc882d1fa00000000, 0x6104875900000000, 0x3984658e00000000, + 0xf712facd00000000, 0xaf92181a00000000, 0x06144eb900000000, + 0x5e94ac6e00000000, 0x151f922400000000, 0x4d9f70f300000000, + 0xe419265000000000, 0xbc99c48700000000, 0x6c429df100000000, + 0x34c27f2600000000, 0x9d44298500000000, 0xc5c4cb5200000000, + 0x8e4ff51800000000, 0xd6cf17cf00000000, 0x7f49416c00000000, + 0x27c9a3bb00000000, 0xe95f3cf800000000, 0xb1dfde2f00000000, + 0x1859888c00000000, 0x40d96a5b00000000, 0x0b52541100000000, + 0x53d2b6c600000000, 0xfa54e06500000000, 0xa2d402b200000000, + 0x6679dfe200000000, 0x3ef93d3500000000, 0x977f6b9600000000, + 0xcfff894100000000, 0x8474b70b00000000, 0xdcf455dc00000000, + 0x7572037f00000000, 0x2df2e1a800000000, 0xe3647eeb00000000, + 0xbbe49c3c00000000, 0x1262ca9f00000000, 0x4ae2284800000000, + 0x0169160200000000, 0x59e9f4d500000000, 0xf06fa27600000000, + 0xa8ef40a100000000}, + {0x0000000000000000, 0x463b676500000000, 0x8c76ceca00000000, + 0xca4da9af00000000, 0x59ebed4e00000000, 0x1fd08a2b00000000, + 0xd59d238400000000, 0x93a644e100000000, 0xb2d6db9d00000000, + 0xf4edbcf800000000, 0x3ea0155700000000, 0x789b723200000000, + 0xeb3d36d300000000, 0xad0651b600000000, 0x674bf81900000000, + 0x21709f7c00000000, 0x25abc6e000000000, 0x6390a18500000000, + 0xa9dd082a00000000, 0xefe66f4f00000000, 0x7c402bae00000000, + 0x3a7b4ccb00000000, 0xf036e56400000000, 0xb60d820100000000, + 0x977d1d7d00000000, 0xd1467a1800000000, 0x1b0bd3b700000000, + 0x5d30b4d200000000, 0xce96f03300000000, 0x88ad975600000000, + 0x42e03ef900000000, 0x04db599c00000000, 0x0b50fc1a00000000, + 0x4d6b9b7f00000000, 0x872632d000000000, 0xc11d55b500000000, + 0x52bb115400000000, 0x1480763100000000, 0xdecddf9e00000000, + 0x98f6b8fb00000000, 0xb986278700000000, 0xffbd40e200000000, + 0x35f0e94d00000000, 0x73cb8e2800000000, 0xe06dcac900000000, + 0xa656adac00000000, 0x6c1b040300000000, 0x2a20636600000000, + 0x2efb3afa00000000, 0x68c05d9f00000000, 0xa28df43000000000, + 0xe4b6935500000000, 0x7710d7b400000000, 0x312bb0d100000000, + 0xfb66197e00000000, 0xbd5d7e1b00000000, 0x9c2de16700000000, + 0xda16860200000000, 0x105b2fad00000000, 0x566048c800000000, + 0xc5c60c2900000000, 0x83fd6b4c00000000, 0x49b0c2e300000000, + 0x0f8ba58600000000, 0x16a0f83500000000, 0x509b9f5000000000, + 0x9ad636ff00000000, 0xdced519a00000000, 0x4f4b157b00000000, + 0x0970721e00000000, 0xc33ddbb100000000, 0x8506bcd400000000, + 0xa47623a800000000, 0xe24d44cd00000000, 0x2800ed6200000000, + 0x6e3b8a0700000000, 0xfd9dcee600000000, 0xbba6a98300000000, + 0x71eb002c00000000, 0x37d0674900000000, 0x330b3ed500000000, + 0x753059b000000000, 0xbf7df01f00000000, 0xf946977a00000000, + 0x6ae0d39b00000000, 0x2cdbb4fe00000000, 0xe6961d5100000000, + 0xa0ad7a3400000000, 0x81dde54800000000, 0xc7e6822d00000000, + 0x0dab2b8200000000, 0x4b904ce700000000, 0xd836080600000000, + 0x9e0d6f6300000000, 0x5440c6cc00000000, 0x127ba1a900000000, + 0x1df0042f00000000, 0x5bcb634a00000000, 0x9186cae500000000, + 0xd7bdad8000000000, 0x441be96100000000, 0x02208e0400000000, + 0xc86d27ab00000000, 0x8e5640ce00000000, 0xaf26dfb200000000, + 0xe91db8d700000000, 0x2350117800000000, 0x656b761d00000000, + 0xf6cd32fc00000000, 0xb0f6559900000000, 0x7abbfc3600000000, + 0x3c809b5300000000, 0x385bc2cf00000000, 0x7e60a5aa00000000, + 0xb42d0c0500000000, 0xf2166b6000000000, 0x61b02f8100000000, + 0x278b48e400000000, 0xedc6e14b00000000, 0xabfd862e00000000, + 0x8a8d195200000000, 0xccb67e3700000000, 0x06fbd79800000000, + 0x40c0b0fd00000000, 0xd366f41c00000000, 0x955d937900000000, + 0x5f103ad600000000, 0x192b5db300000000, 0x2c40f16b00000000, + 0x6a7b960e00000000, 0xa0363fa100000000, 0xe60d58c400000000, + 0x75ab1c2500000000, 0x33907b4000000000, 0xf9ddd2ef00000000, + 0xbfe6b58a00000000, 0x9e962af600000000, 0xd8ad4d9300000000, + 0x12e0e43c00000000, 0x54db835900000000, 0xc77dc7b800000000, + 0x8146a0dd00000000, 0x4b0b097200000000, 0x0d306e1700000000, + 0x09eb378b00000000, 0x4fd050ee00000000, 0x859df94100000000, + 0xc3a69e2400000000, 0x5000dac500000000, 0x163bbda000000000, + 0xdc76140f00000000, 0x9a4d736a00000000, 0xbb3dec1600000000, + 0xfd068b7300000000, 0x374b22dc00000000, 0x717045b900000000, + 0xe2d6015800000000, 0xa4ed663d00000000, 0x6ea0cf9200000000, + 0x289ba8f700000000, 0x27100d7100000000, 0x612b6a1400000000, + 0xab66c3bb00000000, 0xed5da4de00000000, 0x7efbe03f00000000, + 0x38c0875a00000000, 0xf28d2ef500000000, 0xb4b6499000000000, + 0x95c6d6ec00000000, 0xd3fdb18900000000, 0x19b0182600000000, + 0x5f8b7f4300000000, 0xcc2d3ba200000000, 0x8a165cc700000000, + 0x405bf56800000000, 0x0660920d00000000, 0x02bbcb9100000000, + 0x4480acf400000000, 0x8ecd055b00000000, 0xc8f6623e00000000, + 0x5b5026df00000000, 0x1d6b41ba00000000, 0xd726e81500000000, + 0x911d8f7000000000, 0xb06d100c00000000, 0xf656776900000000, + 0x3c1bdec600000000, 0x7a20b9a300000000, 0xe986fd4200000000, + 0xafbd9a2700000000, 0x65f0338800000000, 0x23cb54ed00000000, + 0x3ae0095e00000000, 0x7cdb6e3b00000000, 0xb696c79400000000, + 0xf0ada0f100000000, 0x630be41000000000, 0x2530837500000000, + 0xef7d2ada00000000, 0xa9464dbf00000000, 0x8836d2c300000000, + 0xce0db5a600000000, 0x04401c0900000000, 0x427b7b6c00000000, + 0xd1dd3f8d00000000, 0x97e658e800000000, 0x5dabf14700000000, + 0x1b90962200000000, 0x1f4bcfbe00000000, 0x5970a8db00000000, + 0x933d017400000000, 0xd506661100000000, 0x46a022f000000000, + 0x009b459500000000, 0xcad6ec3a00000000, 0x8ced8b5f00000000, + 0xad9d142300000000, 0xeba6734600000000, 0x21ebdae900000000, + 0x67d0bd8c00000000, 0xf476f96d00000000, 0xb24d9e0800000000, + 0x780037a700000000, 0x3e3b50c200000000, 0x31b0f54400000000, + 0x778b922100000000, 0xbdc63b8e00000000, 0xfbfd5ceb00000000, + 0x685b180a00000000, 0x2e607f6f00000000, 0xe42dd6c000000000, + 0xa216b1a500000000, 0x83662ed900000000, 0xc55d49bc00000000, + 0x0f10e01300000000, 0x492b877600000000, 0xda8dc39700000000, + 0x9cb6a4f200000000, 0x56fb0d5d00000000, 0x10c06a3800000000, + 0x141b33a400000000, 0x522054c100000000, 0x986dfd6e00000000, + 0xde569a0b00000000, 0x4df0deea00000000, 0x0bcbb98f00000000, + 0xc186102000000000, 0x87bd774500000000, 0xa6cde83900000000, + 0xe0f68f5c00000000, 0x2abb26f300000000, 0x6c80419600000000, + 0xff26057700000000, 0xb91d621200000000, 0x7350cbbd00000000, + 0x356bacd800000000}, + {0x0000000000000000, 0x9e83da9f00000000, 0x7d01c4e400000000, + 0xe3821e7b00000000, 0xbb04f91200000000, 0x2587238d00000000, + 0xc6053df600000000, 0x5886e76900000000, 0x7609f22500000000, + 0xe88a28ba00000000, 0x0b0836c100000000, 0x958bec5e00000000, + 0xcd0d0b3700000000, 0x538ed1a800000000, 0xb00ccfd300000000, + 0x2e8f154c00000000, 0xec12e44b00000000, 0x72913ed400000000, + 0x911320af00000000, 0x0f90fa3000000000, 0x57161d5900000000, + 0xc995c7c600000000, 0x2a17d9bd00000000, 0xb494032200000000, + 0x9a1b166e00000000, 0x0498ccf100000000, 0xe71ad28a00000000, + 0x7999081500000000, 0x211fef7c00000000, 0xbf9c35e300000000, + 0x5c1e2b9800000000, 0xc29df10700000000, 0xd825c89700000000, + 0x46a6120800000000, 0xa5240c7300000000, 0x3ba7d6ec00000000, + 0x6321318500000000, 0xfda2eb1a00000000, 0x1e20f56100000000, + 0x80a32ffe00000000, 0xae2c3ab200000000, 0x30afe02d00000000, + 0xd32dfe5600000000, 0x4dae24c900000000, 0x1528c3a000000000, + 0x8bab193f00000000, 0x6829074400000000, 0xf6aadddb00000000, + 0x34372cdc00000000, 0xaab4f64300000000, 0x4936e83800000000, + 0xd7b532a700000000, 0x8f33d5ce00000000, 0x11b00f5100000000, + 0xf232112a00000000, 0x6cb1cbb500000000, 0x423edef900000000, + 0xdcbd046600000000, 0x3f3f1a1d00000000, 0xa1bcc08200000000, + 0xf93a27eb00000000, 0x67b9fd7400000000, 0x843be30f00000000, + 0x1ab8399000000000, 0xf14de1f400000000, 0x6fce3b6b00000000, + 0x8c4c251000000000, 0x12cfff8f00000000, 0x4a4918e600000000, + 0xd4cac27900000000, 0x3748dc0200000000, 0xa9cb069d00000000, + 0x874413d100000000, 0x19c7c94e00000000, 0xfa45d73500000000, + 0x64c60daa00000000, 0x3c40eac300000000, 0xa2c3305c00000000, + 0x41412e2700000000, 0xdfc2f4b800000000, 0x1d5f05bf00000000, + 0x83dcdf2000000000, 0x605ec15b00000000, 0xfedd1bc400000000, + 0xa65bfcad00000000, 0x38d8263200000000, 0xdb5a384900000000, + 0x45d9e2d600000000, 0x6b56f79a00000000, 0xf5d52d0500000000, + 0x1657337e00000000, 0x88d4e9e100000000, 0xd0520e8800000000, + 0x4ed1d41700000000, 0xad53ca6c00000000, 0x33d010f300000000, + 0x2968296300000000, 0xb7ebf3fc00000000, 0x5469ed8700000000, + 0xcaea371800000000, 0x926cd07100000000, 0x0cef0aee00000000, + 0xef6d149500000000, 0x71eece0a00000000, 0x5f61db4600000000, + 0xc1e201d900000000, 0x22601fa200000000, 0xbce3c53d00000000, + 0xe465225400000000, 0x7ae6f8cb00000000, 0x9964e6b000000000, + 0x07e73c2f00000000, 0xc57acd2800000000, 0x5bf917b700000000, + 0xb87b09cc00000000, 0x26f8d35300000000, 0x7e7e343a00000000, + 0xe0fdeea500000000, 0x037ff0de00000000, 0x9dfc2a4100000000, + 0xb3733f0d00000000, 0x2df0e59200000000, 0xce72fbe900000000, + 0x50f1217600000000, 0x0877c61f00000000, 0x96f41c8000000000, + 0x757602fb00000000, 0xebf5d86400000000, 0xa39db33200000000, + 0x3d1e69ad00000000, 0xde9c77d600000000, 0x401fad4900000000, + 0x18994a2000000000, 0x861a90bf00000000, 0x65988ec400000000, + 0xfb1b545b00000000, 0xd594411700000000, 0x4b179b8800000000, + 0xa89585f300000000, 0x36165f6c00000000, 0x6e90b80500000000, + 0xf013629a00000000, 0x13917ce100000000, 0x8d12a67e00000000, + 0x4f8f577900000000, 0xd10c8de600000000, 0x328e939d00000000, + 0xac0d490200000000, 0xf48bae6b00000000, 0x6a0874f400000000, + 0x898a6a8f00000000, 0x1709b01000000000, 0x3986a55c00000000, + 0xa7057fc300000000, 0x448761b800000000, 0xda04bb2700000000, + 0x82825c4e00000000, 0x1c0186d100000000, 0xff8398aa00000000, + 0x6100423500000000, 0x7bb87ba500000000, 0xe53ba13a00000000, + 0x06b9bf4100000000, 0x983a65de00000000, 0xc0bc82b700000000, + 0x5e3f582800000000, 0xbdbd465300000000, 0x233e9ccc00000000, + 0x0db1898000000000, 0x9332531f00000000, 0x70b04d6400000000, + 0xee3397fb00000000, 0xb6b5709200000000, 0x2836aa0d00000000, + 0xcbb4b47600000000, 0x55376ee900000000, 0x97aa9fee00000000, + 0x0929457100000000, 0xeaab5b0a00000000, 0x7428819500000000, + 0x2cae66fc00000000, 0xb22dbc6300000000, 0x51afa21800000000, + 0xcf2c788700000000, 0xe1a36dcb00000000, 0x7f20b75400000000, + 0x9ca2a92f00000000, 0x022173b000000000, 0x5aa794d900000000, + 0xc4244e4600000000, 0x27a6503d00000000, 0xb9258aa200000000, + 0x52d052c600000000, 0xcc53885900000000, 0x2fd1962200000000, + 0xb1524cbd00000000, 0xe9d4abd400000000, 0x7757714b00000000, + 0x94d56f3000000000, 0x0a56b5af00000000, 0x24d9a0e300000000, + 0xba5a7a7c00000000, 0x59d8640700000000, 0xc75bbe9800000000, + 0x9fdd59f100000000, 0x015e836e00000000, 0xe2dc9d1500000000, + 0x7c5f478a00000000, 0xbec2b68d00000000, 0x20416c1200000000, + 0xc3c3726900000000, 0x5d40a8f600000000, 0x05c64f9f00000000, + 0x9b45950000000000, 0x78c78b7b00000000, 0xe64451e400000000, + 0xc8cb44a800000000, 0x56489e3700000000, 0xb5ca804c00000000, + 0x2b495ad300000000, 0x73cfbdba00000000, 0xed4c672500000000, + 0x0ece795e00000000, 0x904da3c100000000, 0x8af59a5100000000, + 0x147640ce00000000, 0xf7f45eb500000000, 0x6977842a00000000, + 0x31f1634300000000, 0xaf72b9dc00000000, 0x4cf0a7a700000000, + 0xd2737d3800000000, 0xfcfc687400000000, 0x627fb2eb00000000, + 0x81fdac9000000000, 0x1f7e760f00000000, 0x47f8916600000000, + 0xd97b4bf900000000, 0x3af9558200000000, 0xa47a8f1d00000000, + 0x66e77e1a00000000, 0xf864a48500000000, 0x1be6bafe00000000, + 0x8565606100000000, 0xdde3870800000000, 0x43605d9700000000, + 0xa0e243ec00000000, 0x3e61997300000000, 0x10ee8c3f00000000, + 0x8e6d56a000000000, 0x6def48db00000000, 0xf36c924400000000, + 0xabea752d00000000, 0x3569afb200000000, 0xd6ebb1c900000000, + 0x48686b5600000000}, + {0x0000000000000000, 0xc064281700000000, 0x80c9502e00000000, + 0x40ad783900000000, 0x0093a15c00000000, 0xc0f7894b00000000, + 0x805af17200000000, 0x403ed96500000000, 0x002643b900000000, + 0xc0426bae00000000, 0x80ef139700000000, 0x408b3b8000000000, + 0x00b5e2e500000000, 0xc0d1caf200000000, 0x807cb2cb00000000, + 0x40189adc00000000, 0x414af7a900000000, 0x812edfbe00000000, + 0xc183a78700000000, 0x01e78f9000000000, 0x41d956f500000000, + 0x81bd7ee200000000, 0xc11006db00000000, 0x01742ecc00000000, + 0x416cb41000000000, 0x81089c0700000000, 0xc1a5e43e00000000, + 0x01c1cc2900000000, 0x41ff154c00000000, 0x819b3d5b00000000, + 0xc136456200000000, 0x01526d7500000000, 0xc3929f8800000000, + 0x03f6b79f00000000, 0x435bcfa600000000, 0x833fe7b100000000, + 0xc3013ed400000000, 0x036516c300000000, 0x43c86efa00000000, + 0x83ac46ed00000000, 0xc3b4dc3100000000, 0x03d0f42600000000, + 0x437d8c1f00000000, 0x8319a40800000000, 0xc3277d6d00000000, + 0x0343557a00000000, 0x43ee2d4300000000, 0x838a055400000000, + 0x82d8682100000000, 0x42bc403600000000, 0x0211380f00000000, + 0xc275101800000000, 0x824bc97d00000000, 0x422fe16a00000000, + 0x0282995300000000, 0xc2e6b14400000000, 0x82fe2b9800000000, + 0x429a038f00000000, 0x02377bb600000000, 0xc25353a100000000, + 0x826d8ac400000000, 0x4209a2d300000000, 0x02a4daea00000000, + 0xc2c0f2fd00000000, 0xc7234eca00000000, 0x074766dd00000000, + 0x47ea1ee400000000, 0x878e36f300000000, 0xc7b0ef9600000000, + 0x07d4c78100000000, 0x4779bfb800000000, 0x871d97af00000000, + 0xc7050d7300000000, 0x0761256400000000, 0x47cc5d5d00000000, + 0x87a8754a00000000, 0xc796ac2f00000000, 0x07f2843800000000, + 0x475ffc0100000000, 0x873bd41600000000, 0x8669b96300000000, + 0x460d917400000000, 0x06a0e94d00000000, 0xc6c4c15a00000000, + 0x86fa183f00000000, 0x469e302800000000, 0x0633481100000000, + 0xc657600600000000, 0x864ffada00000000, 0x462bd2cd00000000, + 0x0686aaf400000000, 0xc6e282e300000000, 0x86dc5b8600000000, + 0x46b8739100000000, 0x06150ba800000000, 0xc67123bf00000000, + 0x04b1d14200000000, 0xc4d5f95500000000, 0x8478816c00000000, + 0x441ca97b00000000, 0x0422701e00000000, 0xc446580900000000, + 0x84eb203000000000, 0x448f082700000000, 0x049792fb00000000, + 0xc4f3baec00000000, 0x845ec2d500000000, 0x443aeac200000000, + 0x040433a700000000, 0xc4601bb000000000, 0x84cd638900000000, + 0x44a94b9e00000000, 0x45fb26eb00000000, 0x859f0efc00000000, + 0xc53276c500000000, 0x05565ed200000000, 0x456887b700000000, + 0x850cafa000000000, 0xc5a1d79900000000, 0x05c5ff8e00000000, + 0x45dd655200000000, 0x85b94d4500000000, 0xc514357c00000000, + 0x05701d6b00000000, 0x454ec40e00000000, 0x852aec1900000000, + 0xc587942000000000, 0x05e3bc3700000000, 0xcf41ed4f00000000, + 0x0f25c55800000000, 0x4f88bd6100000000, 0x8fec957600000000, + 0xcfd24c1300000000, 0x0fb6640400000000, 0x4f1b1c3d00000000, + 0x8f7f342a00000000, 0xcf67aef600000000, 0x0f0386e100000000, + 0x4faefed800000000, 0x8fcad6cf00000000, 0xcff40faa00000000, + 0x0f9027bd00000000, 0x4f3d5f8400000000, 0x8f59779300000000, + 0x8e0b1ae600000000, 0x4e6f32f100000000, 0x0ec24ac800000000, + 0xcea662df00000000, 0x8e98bbba00000000, 0x4efc93ad00000000, + 0x0e51eb9400000000, 0xce35c38300000000, 0x8e2d595f00000000, + 0x4e49714800000000, 0x0ee4097100000000, 0xce80216600000000, + 0x8ebef80300000000, 0x4edad01400000000, 0x0e77a82d00000000, + 0xce13803a00000000, 0x0cd372c700000000, 0xccb75ad000000000, + 0x8c1a22e900000000, 0x4c7e0afe00000000, 0x0c40d39b00000000, + 0xcc24fb8c00000000, 0x8c8983b500000000, 0x4cedaba200000000, + 0x0cf5317e00000000, 0xcc91196900000000, 0x8c3c615000000000, + 0x4c58494700000000, 0x0c66902200000000, 0xcc02b83500000000, + 0x8cafc00c00000000, 0x4ccbe81b00000000, 0x4d99856e00000000, + 0x8dfdad7900000000, 0xcd50d54000000000, 0x0d34fd5700000000, + 0x4d0a243200000000, 0x8d6e0c2500000000, 0xcdc3741c00000000, + 0x0da75c0b00000000, 0x4dbfc6d700000000, 0x8ddbeec000000000, + 0xcd7696f900000000, 0x0d12beee00000000, 0x4d2c678b00000000, + 0x8d484f9c00000000, 0xcde537a500000000, 0x0d811fb200000000, + 0x0862a38500000000, 0xc8068b9200000000, 0x88abf3ab00000000, + 0x48cfdbbc00000000, 0x08f102d900000000, 0xc8952ace00000000, + 0x883852f700000000, 0x485c7ae000000000, 0x0844e03c00000000, + 0xc820c82b00000000, 0x888db01200000000, 0x48e9980500000000, + 0x08d7416000000000, 0xc8b3697700000000, 0x881e114e00000000, + 0x487a395900000000, 0x4928542c00000000, 0x894c7c3b00000000, + 0xc9e1040200000000, 0x09852c1500000000, 0x49bbf57000000000, + 0x89dfdd6700000000, 0xc972a55e00000000, 0x09168d4900000000, + 0x490e179500000000, 0x896a3f8200000000, 0xc9c747bb00000000, + 0x09a36fac00000000, 0x499db6c900000000, 0x89f99ede00000000, + 0xc954e6e700000000, 0x0930cef000000000, 0xcbf03c0d00000000, + 0x0b94141a00000000, 0x4b396c2300000000, 0x8b5d443400000000, + 0xcb639d5100000000, 0x0b07b54600000000, 0x4baacd7f00000000, + 0x8bcee56800000000, 0xcbd67fb400000000, 0x0bb257a300000000, + 0x4b1f2f9a00000000, 0x8b7b078d00000000, 0xcb45dee800000000, + 0x0b21f6ff00000000, 0x4b8c8ec600000000, 0x8be8a6d100000000, + 0x8abacba400000000, 0x4adee3b300000000, 0x0a739b8a00000000, + 0xca17b39d00000000, 0x8a296af800000000, 0x4a4d42ef00000000, + 0x0ae03ad600000000, 0xca8412c100000000, 0x8a9c881d00000000, + 0x4af8a00a00000000, 0x0a55d83300000000, 0xca31f02400000000, + 0x8a0f294100000000, 0x4a6b015600000000, 0x0ac6796f00000000, + 0xcaa2517800000000}, + {0x0000000000000000, 0xd4ea739b00000000, 0xe9d396ed00000000, + 0x3d39e57600000000, 0x93a15c0000000000, 0x474b2f9b00000000, + 0x7a72caed00000000, 0xae98b97600000000, 0x2643b90000000000, + 0xf2a9ca9b00000000, 0xcf902fed00000000, 0x1b7a5c7600000000, + 0xb5e2e50000000000, 0x6108969b00000000, 0x5c3173ed00000000, + 0x88db007600000000, 0x4c86720100000000, 0x986c019a00000000, + 0xa555e4ec00000000, 0x71bf977700000000, 0xdf272e0100000000, + 0x0bcd5d9a00000000, 0x36f4b8ec00000000, 0xe21ecb7700000000, + 0x6ac5cb0100000000, 0xbe2fb89a00000000, 0x83165dec00000000, + 0x57fc2e7700000000, 0xf964970100000000, 0x2d8ee49a00000000, + 0x10b701ec00000000, 0xc45d727700000000, 0x980ce50200000000, + 0x4ce6969900000000, 0x71df73ef00000000, 0xa535007400000000, + 0x0badb90200000000, 0xdf47ca9900000000, 0xe27e2fef00000000, + 0x36945c7400000000, 0xbe4f5c0200000000, 0x6aa52f9900000000, + 0x579ccaef00000000, 0x8376b97400000000, 0x2dee000200000000, + 0xf904739900000000, 0xc43d96ef00000000, 0x10d7e57400000000, + 0xd48a970300000000, 0x0060e49800000000, 0x3d5901ee00000000, + 0xe9b3727500000000, 0x472bcb0300000000, 0x93c1b89800000000, + 0xaef85dee00000000, 0x7a122e7500000000, 0xf2c92e0300000000, + 0x26235d9800000000, 0x1b1ab8ee00000000, 0xcff0cb7500000000, + 0x6168720300000000, 0xb582019800000000, 0x88bbe4ee00000000, + 0x5c51977500000000, 0x3019ca0500000000, 0xe4f3b99e00000000, + 0xd9ca5ce800000000, 0x0d202f7300000000, 0xa3b8960500000000, + 0x7752e59e00000000, 0x4a6b00e800000000, 0x9e81737300000000, + 0x165a730500000000, 0xc2b0009e00000000, 0xff89e5e800000000, + 0x2b63967300000000, 0x85fb2f0500000000, 0x51115c9e00000000, + 0x6c28b9e800000000, 0xb8c2ca7300000000, 0x7c9fb80400000000, + 0xa875cb9f00000000, 0x954c2ee900000000, 0x41a65d7200000000, + 0xef3ee40400000000, 0x3bd4979f00000000, 0x06ed72e900000000, + 0xd207017200000000, 0x5adc010400000000, 0x8e36729f00000000, + 0xb30f97e900000000, 0x67e5e47200000000, 0xc97d5d0400000000, + 0x1d972e9f00000000, 0x20aecbe900000000, 0xf444b87200000000, + 0xa8152f0700000000, 0x7cff5c9c00000000, 0x41c6b9ea00000000, + 0x952cca7100000000, 0x3bb4730700000000, 0xef5e009c00000000, + 0xd267e5ea00000000, 0x068d967100000000, 0x8e56960700000000, + 0x5abce59c00000000, 0x678500ea00000000, 0xb36f737100000000, + 0x1df7ca0700000000, 0xc91db99c00000000, 0xf4245cea00000000, + 0x20ce2f7100000000, 0xe4935d0600000000, 0x30792e9d00000000, + 0x0d40cbeb00000000, 0xd9aab87000000000, 0x7732010600000000, + 0xa3d8729d00000000, 0x9ee197eb00000000, 0x4a0be47000000000, + 0xc2d0e40600000000, 0x163a979d00000000, 0x2b0372eb00000000, + 0xffe9017000000000, 0x5171b80600000000, 0x859bcb9d00000000, + 0xb8a22eeb00000000, 0x6c485d7000000000, 0x6032940b00000000, + 0xb4d8e79000000000, 0x89e102e600000000, 0x5d0b717d00000000, + 0xf393c80b00000000, 0x2779bb9000000000, 0x1a405ee600000000, + 0xceaa2d7d00000000, 0x46712d0b00000000, 0x929b5e9000000000, + 0xafa2bbe600000000, 0x7b48c87d00000000, 0xd5d0710b00000000, + 0x013a029000000000, 0x3c03e7e600000000, 0xe8e9947d00000000, + 0x2cb4e60a00000000, 0xf85e959100000000, 0xc56770e700000000, + 0x118d037c00000000, 0xbf15ba0a00000000, 0x6bffc99100000000, + 0x56c62ce700000000, 0x822c5f7c00000000, 0x0af75f0a00000000, + 0xde1d2c9100000000, 0xe324c9e700000000, 0x37ceba7c00000000, + 0x9956030a00000000, 0x4dbc709100000000, 0x708595e700000000, + 0xa46fe67c00000000, 0xf83e710900000000, 0x2cd4029200000000, + 0x11ede7e400000000, 0xc507947f00000000, 0x6b9f2d0900000000, + 0xbf755e9200000000, 0x824cbbe400000000, 0x56a6c87f00000000, + 0xde7dc80900000000, 0x0a97bb9200000000, 0x37ae5ee400000000, + 0xe3442d7f00000000, 0x4ddc940900000000, 0x9936e79200000000, + 0xa40f02e400000000, 0x70e5717f00000000, 0xb4b8030800000000, + 0x6052709300000000, 0x5d6b95e500000000, 0x8981e67e00000000, + 0x27195f0800000000, 0xf3f32c9300000000, 0xcecac9e500000000, + 0x1a20ba7e00000000, 0x92fbba0800000000, 0x4611c99300000000, + 0x7b282ce500000000, 0xafc25f7e00000000, 0x015ae60800000000, + 0xd5b0959300000000, 0xe88970e500000000, 0x3c63037e00000000, + 0x502b5e0e00000000, 0x84c12d9500000000, 0xb9f8c8e300000000, + 0x6d12bb7800000000, 0xc38a020e00000000, 0x1760719500000000, + 0x2a5994e300000000, 0xfeb3e77800000000, 0x7668e70e00000000, + 0xa282949500000000, 0x9fbb71e300000000, 0x4b51027800000000, + 0xe5c9bb0e00000000, 0x3123c89500000000, 0x0c1a2de300000000, + 0xd8f05e7800000000, 0x1cad2c0f00000000, 0xc8475f9400000000, + 0xf57ebae200000000, 0x2194c97900000000, 0x8f0c700f00000000, + 0x5be6039400000000, 0x66dfe6e200000000, 0xb235957900000000, + 0x3aee950f00000000, 0xee04e69400000000, 0xd33d03e200000000, + 0x07d7707900000000, 0xa94fc90f00000000, 0x7da5ba9400000000, + 0x409c5fe200000000, 0x94762c7900000000, 0xc827bb0c00000000, + 0x1ccdc89700000000, 0x21f42de100000000, 0xf51e5e7a00000000, + 0x5b86e70c00000000, 0x8f6c949700000000, 0xb25571e100000000, + 0x66bf027a00000000, 0xee64020c00000000, 0x3a8e719700000000, + 0x07b794e100000000, 0xd35de77a00000000, 0x7dc55e0c00000000, + 0xa92f2d9700000000, 0x9416c8e100000000, 0x40fcbb7a00000000, + 0x84a1c90d00000000, 0x504bba9600000000, 0x6d725fe000000000, + 0xb9982c7b00000000, 0x1700950d00000000, 0xc3eae69600000000, + 0xfed303e000000000, 0x2a39707b00000000, 0xa2e2700d00000000, + 0x7608039600000000, 0x4b31e6e000000000, 0x9fdb957b00000000, + 0x31432c0d00000000, 0xe5a95f9600000000, 0xd890bae000000000, + 0x0c7ac97b00000000}, + {0x0000000000000000, 0x2765258100000000, 0x0fcc3bd900000000, + 0x28a91e5800000000, 0x5f9e066900000000, 0x78fb23e800000000, + 0x50523db000000000, 0x7737183100000000, 0xbe3c0dd200000000, + 0x9959285300000000, 0xb1f0360b00000000, 0x9695138a00000000, + 0xe1a20bbb00000000, 0xc6c72e3a00000000, 0xee6e306200000000, + 0xc90b15e300000000, 0x3d7f6b7f00000000, 0x1a1a4efe00000000, + 0x32b350a600000000, 0x15d6752700000000, 0x62e16d1600000000, + 0x4584489700000000, 0x6d2d56cf00000000, 0x4a48734e00000000, + 0x834366ad00000000, 0xa426432c00000000, 0x8c8f5d7400000000, + 0xabea78f500000000, 0xdcdd60c400000000, 0xfbb8454500000000, + 0xd3115b1d00000000, 0xf4747e9c00000000, 0x7afed6fe00000000, + 0x5d9bf37f00000000, 0x7532ed2700000000, 0x5257c8a600000000, + 0x2560d09700000000, 0x0205f51600000000, 0x2aaceb4e00000000, + 0x0dc9cecf00000000, 0xc4c2db2c00000000, 0xe3a7fead00000000, + 0xcb0ee0f500000000, 0xec6bc57400000000, 0x9b5cdd4500000000, + 0xbc39f8c400000000, 0x9490e69c00000000, 0xb3f5c31d00000000, + 0x4781bd8100000000, 0x60e4980000000000, 0x484d865800000000, + 0x6f28a3d900000000, 0x181fbbe800000000, 0x3f7a9e6900000000, + 0x17d3803100000000, 0x30b6a5b000000000, 0xf9bdb05300000000, + 0xded895d200000000, 0xf6718b8a00000000, 0xd114ae0b00000000, + 0xa623b63a00000000, 0x814693bb00000000, 0xa9ef8de300000000, + 0x8e8aa86200000000, 0xb5fadc2600000000, 0x929ff9a700000000, + 0xba36e7ff00000000, 0x9d53c27e00000000, 0xea64da4f00000000, + 0xcd01ffce00000000, 0xe5a8e19600000000, 0xc2cdc41700000000, + 0x0bc6d1f400000000, 0x2ca3f47500000000, 0x040aea2d00000000, + 0x236fcfac00000000, 0x5458d79d00000000, 0x733df21c00000000, + 0x5b94ec4400000000, 0x7cf1c9c500000000, 0x8885b75900000000, + 0xafe092d800000000, 0x87498c8000000000, 0xa02ca90100000000, + 0xd71bb13000000000, 0xf07e94b100000000, 0xd8d78ae900000000, + 0xffb2af6800000000, 0x36b9ba8b00000000, 0x11dc9f0a00000000, + 0x3975815200000000, 0x1e10a4d300000000, 0x6927bce200000000, + 0x4e42996300000000, 0x66eb873b00000000, 0x418ea2ba00000000, + 0xcf040ad800000000, 0xe8612f5900000000, 0xc0c8310100000000, + 0xe7ad148000000000, 0x909a0cb100000000, 0xb7ff293000000000, + 0x9f56376800000000, 0xb83312e900000000, 0x7138070a00000000, + 0x565d228b00000000, 0x7ef43cd300000000, 0x5991195200000000, + 0x2ea6016300000000, 0x09c324e200000000, 0x216a3aba00000000, + 0x060f1f3b00000000, 0xf27b61a700000000, 0xd51e442600000000, + 0xfdb75a7e00000000, 0xdad27fff00000000, 0xade567ce00000000, + 0x8a80424f00000000, 0xa2295c1700000000, 0x854c799600000000, + 0x4c476c7500000000, 0x6b2249f400000000, 0x438b57ac00000000, + 0x64ee722d00000000, 0x13d96a1c00000000, 0x34bc4f9d00000000, + 0x1c1551c500000000, 0x3b70744400000000, 0x6af5b94d00000000, + 0x4d909ccc00000000, 0x6539829400000000, 0x425ca71500000000, + 0x356bbf2400000000, 0x120e9aa500000000, 0x3aa784fd00000000, + 0x1dc2a17c00000000, 0xd4c9b49f00000000, 0xf3ac911e00000000, + 0xdb058f4600000000, 0xfc60aac700000000, 0x8b57b2f600000000, + 0xac32977700000000, 0x849b892f00000000, 0xa3feacae00000000, + 0x578ad23200000000, 0x70eff7b300000000, 0x5846e9eb00000000, + 0x7f23cc6a00000000, 0x0814d45b00000000, 0x2f71f1da00000000, + 0x07d8ef8200000000, 0x20bdca0300000000, 0xe9b6dfe000000000, + 0xced3fa6100000000, 0xe67ae43900000000, 0xc11fc1b800000000, + 0xb628d98900000000, 0x914dfc0800000000, 0xb9e4e25000000000, + 0x9e81c7d100000000, 0x100b6fb300000000, 0x376e4a3200000000, + 0x1fc7546a00000000, 0x38a271eb00000000, 0x4f9569da00000000, + 0x68f04c5b00000000, 0x4059520300000000, 0x673c778200000000, + 0xae37626100000000, 0x895247e000000000, 0xa1fb59b800000000, + 0x869e7c3900000000, 0xf1a9640800000000, 0xd6cc418900000000, + 0xfe655fd100000000, 0xd9007a5000000000, 0x2d7404cc00000000, + 0x0a11214d00000000, 0x22b83f1500000000, 0x05dd1a9400000000, + 0x72ea02a500000000, 0x558f272400000000, 0x7d26397c00000000, + 0x5a431cfd00000000, 0x9348091e00000000, 0xb42d2c9f00000000, + 0x9c8432c700000000, 0xbbe1174600000000, 0xccd60f7700000000, + 0xebb32af600000000, 0xc31a34ae00000000, 0xe47f112f00000000, + 0xdf0f656b00000000, 0xf86a40ea00000000, 0xd0c35eb200000000, + 0xf7a67b3300000000, 0x8091630200000000, 0xa7f4468300000000, + 0x8f5d58db00000000, 0xa8387d5a00000000, 0x613368b900000000, + 0x46564d3800000000, 0x6eff536000000000, 0x499a76e100000000, + 0x3ead6ed000000000, 0x19c84b5100000000, 0x3161550900000000, + 0x1604708800000000, 0xe2700e1400000000, 0xc5152b9500000000, + 0xedbc35cd00000000, 0xcad9104c00000000, 0xbdee087d00000000, + 0x9a8b2dfc00000000, 0xb22233a400000000, 0x9547162500000000, + 0x5c4c03c600000000, 0x7b29264700000000, 0x5380381f00000000, + 0x74e51d9e00000000, 0x03d205af00000000, 0x24b7202e00000000, + 0x0c1e3e7600000000, 0x2b7b1bf700000000, 0xa5f1b39500000000, + 0x8294961400000000, 0xaa3d884c00000000, 0x8d58adcd00000000, + 0xfa6fb5fc00000000, 0xdd0a907d00000000, 0xf5a38e2500000000, + 0xd2c6aba400000000, 0x1bcdbe4700000000, 0x3ca89bc600000000, + 0x1401859e00000000, 0x3364a01f00000000, 0x4453b82e00000000, + 0x63369daf00000000, 0x4b9f83f700000000, 0x6cfaa67600000000, + 0x988ed8ea00000000, 0xbfebfd6b00000000, 0x9742e33300000000, + 0xb027c6b200000000, 0xc710de8300000000, 0xe075fb0200000000, + 0xc8dce55a00000000, 0xefb9c0db00000000, 0x26b2d53800000000, + 0x01d7f0b900000000, 0x297eeee100000000, 0x0e1bcb6000000000, + 0x792cd35100000000, 0x5e49f6d000000000, 0x76e0e88800000000, + 0x5185cd0900000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x9ba54c6f, 0xec3b9e9f, 0x779ed2f0, 0x03063b7f, + 0x98a37710, 0xef3da5e0, 0x7498e98f, 0x060c76fe, 0x9da93a91, + 0xea37e861, 0x7192a40e, 0x050a4d81, 0x9eaf01ee, 0xe931d31e, + 0x72949f71, 0x0c18edfc, 0x97bda193, 0xe0237363, 0x7b863f0c, + 0x0f1ed683, 0x94bb9aec, 0xe325481c, 0x78800473, 0x0a149b02, + 0x91b1d76d, 0xe62f059d, 0x7d8a49f2, 0x0912a07d, 0x92b7ec12, + 0xe5293ee2, 0x7e8c728d, 0x1831dbf8, 0x83949797, 0xf40a4567, + 0x6faf0908, 0x1b37e087, 0x8092ace8, 0xf70c7e18, 0x6ca93277, + 0x1e3dad06, 0x8598e169, 0xf2063399, 0x69a37ff6, 0x1d3b9679, + 0x869eda16, 0xf10008e6, 0x6aa54489, 0x14293604, 0x8f8c7a6b, + 0xf812a89b, 0x63b7e4f4, 0x172f0d7b, 0x8c8a4114, 0xfb1493e4, + 0x60b1df8b, 0x122540fa, 0x89800c95, 0xfe1ede65, 0x65bb920a, + 0x11237b85, 0x8a8637ea, 0xfd18e51a, 0x66bda975, 0x3063b7f0, + 0xabc6fb9f, 0xdc58296f, 0x47fd6500, 0x33658c8f, 0xa8c0c0e0, + 0xdf5e1210, 0x44fb5e7f, 0x366fc10e, 0xadca8d61, 0xda545f91, + 0x41f113fe, 0x3569fa71, 0xaeccb61e, 0xd95264ee, 0x42f72881, + 0x3c7b5a0c, 0xa7de1663, 0xd040c493, 0x4be588fc, 0x3f7d6173, + 0xa4d82d1c, 0xd346ffec, 0x48e3b383, 0x3a772cf2, 0xa1d2609d, + 0xd64cb26d, 0x4de9fe02, 0x3971178d, 0xa2d45be2, 0xd54a8912, + 0x4eefc57d, 0x28526c08, 0xb3f72067, 0xc469f297, 0x5fccbef8, + 0x2b545777, 0xb0f11b18, 0xc76fc9e8, 0x5cca8587, 0x2e5e1af6, + 0xb5fb5699, 0xc2658469, 0x59c0c806, 0x2d582189, 0xb6fd6de6, + 0xc163bf16, 0x5ac6f379, 0x244a81f4, 0xbfefcd9b, 0xc8711f6b, + 0x53d45304, 0x274cba8b, 0xbce9f6e4, 0xcb772414, 0x50d2687b, + 0x2246f70a, 0xb9e3bb65, 0xce7d6995, 0x55d825fa, 0x2140cc75, + 0xbae5801a, 0xcd7b52ea, 0x56de1e85, 0x60c76fe0, 0xfb62238f, + 0x8cfcf17f, 0x1759bd10, 0x63c1549f, 0xf86418f0, 0x8ffaca00, + 0x145f866f, 0x66cb191e, 0xfd6e5571, 0x8af08781, 0x1155cbee, + 0x65cd2261, 0xfe686e0e, 0x89f6bcfe, 0x1253f091, 0x6cdf821c, + 0xf77ace73, 0x80e41c83, 0x1b4150ec, 0x6fd9b963, 0xf47cf50c, + 0x83e227fc, 0x18476b93, 0x6ad3f4e2, 0xf176b88d, 0x86e86a7d, + 0x1d4d2612, 0x69d5cf9d, 0xf27083f2, 0x85ee5102, 0x1e4b1d6d, + 0x78f6b418, 0xe353f877, 0x94cd2a87, 0x0f6866e8, 0x7bf08f67, + 0xe055c308, 0x97cb11f8, 0x0c6e5d97, 0x7efac2e6, 0xe55f8e89, + 0x92c15c79, 0x09641016, 0x7dfcf999, 0xe659b5f6, 0x91c76706, + 0x0a622b69, 0x74ee59e4, 0xef4b158b, 0x98d5c77b, 0x03708b14, + 0x77e8629b, 0xec4d2ef4, 0x9bd3fc04, 0x0076b06b, 0x72e22f1a, + 0xe9476375, 0x9ed9b185, 0x057cfdea, 0x71e41465, 0xea41580a, + 0x9ddf8afa, 0x067ac695, 0x50a4d810, 0xcb01947f, 0xbc9f468f, + 0x273a0ae0, 0x53a2e36f, 0xc807af00, 0xbf997df0, 0x243c319f, + 0x56a8aeee, 0xcd0de281, 0xba933071, 0x21367c1e, 0x55ae9591, + 0xce0bd9fe, 0xb9950b0e, 0x22304761, 0x5cbc35ec, 0xc7197983, + 0xb087ab73, 0x2b22e71c, 0x5fba0e93, 0xc41f42fc, 0xb381900c, + 0x2824dc63, 0x5ab04312, 0xc1150f7d, 0xb68bdd8d, 0x2d2e91e2, + 0x59b6786d, 0xc2133402, 0xb58de6f2, 0x2e28aa9d, 0x489503e8, + 0xd3304f87, 0xa4ae9d77, 0x3f0bd118, 0x4b933897, 0xd03674f8, + 0xa7a8a608, 0x3c0dea67, 0x4e997516, 0xd53c3979, 0xa2a2eb89, + 0x3907a7e6, 0x4d9f4e69, 0xd63a0206, 0xa1a4d0f6, 0x3a019c99, + 0x448dee14, 0xdf28a27b, 0xa8b6708b, 0x33133ce4, 0x478bd56b, + 0xdc2e9904, 0xabb04bf4, 0x3015079b, 0x428198ea, 0xd924d485, + 0xaeba0675, 0x351f4a1a, 0x4187a395, 0xda22effa, 0xadbc3d0a, + 0x36197165}, + {0x00000000, 0xc18edfc0, 0x586cb9c1, 0x99e26601, 0xb0d97382, + 0x7157ac42, 0xe8b5ca43, 0x293b1583, 0xbac3e145, 0x7b4d3e85, + 0xe2af5884, 0x23218744, 0x0a1a92c7, 0xcb944d07, 0x52762b06, + 0x93f8f4c6, 0xaef6c4cb, 0x6f781b0b, 0xf69a7d0a, 0x3714a2ca, + 0x1e2fb749, 0xdfa16889, 0x46430e88, 0x87cdd148, 0x1435258e, + 0xd5bbfa4e, 0x4c599c4f, 0x8dd7438f, 0xa4ec560c, 0x656289cc, + 0xfc80efcd, 0x3d0e300d, 0x869c8fd7, 0x47125017, 0xdef03616, + 0x1f7ee9d6, 0x3645fc55, 0xf7cb2395, 0x6e294594, 0xafa79a54, + 0x3c5f6e92, 0xfdd1b152, 0x6433d753, 0xa5bd0893, 0x8c861d10, + 0x4d08c2d0, 0xd4eaa4d1, 0x15647b11, 0x286a4b1c, 0xe9e494dc, + 0x7006f2dd, 0xb1882d1d, 0x98b3389e, 0x593de75e, 0xc0df815f, + 0x01515e9f, 0x92a9aa59, 0x53277599, 0xcac51398, 0x0b4bcc58, + 0x2270d9db, 0xe3fe061b, 0x7a1c601a, 0xbb92bfda, 0xd64819ef, + 0x17c6c62f, 0x8e24a02e, 0x4faa7fee, 0x66916a6d, 0xa71fb5ad, + 0x3efdd3ac, 0xff730c6c, 0x6c8bf8aa, 0xad05276a, 0x34e7416b, + 0xf5699eab, 0xdc528b28, 0x1ddc54e8, 0x843e32e9, 0x45b0ed29, + 0x78bedd24, 0xb93002e4, 0x20d264e5, 0xe15cbb25, 0xc867aea6, + 0x09e97166, 0x900b1767, 0x5185c8a7, 0xc27d3c61, 0x03f3e3a1, + 0x9a1185a0, 0x5b9f5a60, 0x72a44fe3, 0xb32a9023, 0x2ac8f622, + 0xeb4629e2, 0x50d49638, 0x915a49f8, 0x08b82ff9, 0xc936f039, + 0xe00de5ba, 0x21833a7a, 0xb8615c7b, 0x79ef83bb, 0xea17777d, + 0x2b99a8bd, 0xb27bcebc, 0x73f5117c, 0x5ace04ff, 0x9b40db3f, + 0x02a2bd3e, 0xc32c62fe, 0xfe2252f3, 0x3fac8d33, 0xa64eeb32, + 0x67c034f2, 0x4efb2171, 0x8f75feb1, 0x169798b0, 0xd7194770, + 0x44e1b3b6, 0x856f6c76, 0x1c8d0a77, 0xdd03d5b7, 0xf438c034, + 0x35b61ff4, 0xac5479f5, 0x6ddaa635, 0x77e1359f, 0xb66fea5f, + 0x2f8d8c5e, 0xee03539e, 0xc738461d, 0x06b699dd, 0x9f54ffdc, + 0x5eda201c, 0xcd22d4da, 0x0cac0b1a, 0x954e6d1b, 0x54c0b2db, + 0x7dfba758, 0xbc757898, 0x25971e99, 0xe419c159, 0xd917f154, + 0x18992e94, 0x817b4895, 0x40f59755, 0x69ce82d6, 0xa8405d16, + 0x31a23b17, 0xf02ce4d7, 0x63d41011, 0xa25acfd1, 0x3bb8a9d0, + 0xfa367610, 0xd30d6393, 0x1283bc53, 0x8b61da52, 0x4aef0592, + 0xf17dba48, 0x30f36588, 0xa9110389, 0x689fdc49, 0x41a4c9ca, + 0x802a160a, 0x19c8700b, 0xd846afcb, 0x4bbe5b0d, 0x8a3084cd, + 0x13d2e2cc, 0xd25c3d0c, 0xfb67288f, 0x3ae9f74f, 0xa30b914e, + 0x62854e8e, 0x5f8b7e83, 0x9e05a143, 0x07e7c742, 0xc6691882, + 0xef520d01, 0x2edcd2c1, 0xb73eb4c0, 0x76b06b00, 0xe5489fc6, + 0x24c64006, 0xbd242607, 0x7caaf9c7, 0x5591ec44, 0x941f3384, + 0x0dfd5585, 0xcc738a45, 0xa1a92c70, 0x6027f3b0, 0xf9c595b1, + 0x384b4a71, 0x11705ff2, 0xd0fe8032, 0x491ce633, 0x889239f3, + 0x1b6acd35, 0xdae412f5, 0x430674f4, 0x8288ab34, 0xabb3beb7, + 0x6a3d6177, 0xf3df0776, 0x3251d8b6, 0x0f5fe8bb, 0xced1377b, + 0x5733517a, 0x96bd8eba, 0xbf869b39, 0x7e0844f9, 0xe7ea22f8, + 0x2664fd38, 0xb59c09fe, 0x7412d63e, 0xedf0b03f, 0x2c7e6fff, + 0x05457a7c, 0xc4cba5bc, 0x5d29c3bd, 0x9ca71c7d, 0x2735a3a7, + 0xe6bb7c67, 0x7f591a66, 0xbed7c5a6, 0x97ecd025, 0x56620fe5, + 0xcf8069e4, 0x0e0eb624, 0x9df642e2, 0x5c789d22, 0xc59afb23, + 0x041424e3, 0x2d2f3160, 0xeca1eea0, 0x754388a1, 0xb4cd5761, + 0x89c3676c, 0x484db8ac, 0xd1afdead, 0x1021016d, 0x391a14ee, + 0xf894cb2e, 0x6176ad2f, 0xa0f872ef, 0x33008629, 0xf28e59e9, + 0x6b6c3fe8, 0xaae2e028, 0x83d9f5ab, 0x42572a6b, 0xdbb54c6a, + 0x1a3b93aa}, + {0x00000000, 0xefc26b3e, 0x04f5d03d, 0xeb37bb03, 0x09eba07a, + 0xe629cb44, 0x0d1e7047, 0xe2dc1b79, 0x13d740f4, 0xfc152bca, + 0x172290c9, 0xf8e0fbf7, 0x1a3ce08e, 0xf5fe8bb0, 0x1ec930b3, + 0xf10b5b8d, 0x27ae81e8, 0xc86cead6, 0x235b51d5, 0xcc993aeb, + 0x2e452192, 0xc1874aac, 0x2ab0f1af, 0xc5729a91, 0x3479c11c, + 0xdbbbaa22, 0x308c1121, 0xdf4e7a1f, 0x3d926166, 0xd2500a58, + 0x3967b15b, 0xd6a5da65, 0x4f5d03d0, 0xa09f68ee, 0x4ba8d3ed, + 0xa46ab8d3, 0x46b6a3aa, 0xa974c894, 0x42437397, 0xad8118a9, + 0x5c8a4324, 0xb348281a, 0x587f9319, 0xb7bdf827, 0x5561e35e, + 0xbaa38860, 0x51943363, 0xbe56585d, 0x68f38238, 0x8731e906, + 0x6c065205, 0x83c4393b, 0x61182242, 0x8eda497c, 0x65edf27f, + 0x8a2f9941, 0x7b24c2cc, 0x94e6a9f2, 0x7fd112f1, 0x901379cf, + 0x72cf62b6, 0x9d0d0988, 0x763ab28b, 0x99f8d9b5, 0x9eba07a0, + 0x71786c9e, 0x9a4fd79d, 0x758dbca3, 0x9751a7da, 0x7893cce4, + 0x93a477e7, 0x7c661cd9, 0x8d6d4754, 0x62af2c6a, 0x89989769, + 0x665afc57, 0x8486e72e, 0x6b448c10, 0x80733713, 0x6fb15c2d, + 0xb9148648, 0x56d6ed76, 0xbde15675, 0x52233d4b, 0xb0ff2632, + 0x5f3d4d0c, 0xb40af60f, 0x5bc89d31, 0xaac3c6bc, 0x4501ad82, + 0xae361681, 0x41f47dbf, 0xa32866c6, 0x4cea0df8, 0xa7ddb6fb, + 0x481fddc5, 0xd1e70470, 0x3e256f4e, 0xd512d44d, 0x3ad0bf73, + 0xd80ca40a, 0x37cecf34, 0xdcf97437, 0x333b1f09, 0xc2304484, + 0x2df22fba, 0xc6c594b9, 0x2907ff87, 0xcbdbe4fe, 0x24198fc0, + 0xcf2e34c3, 0x20ec5ffd, 0xf6498598, 0x198beea6, 0xf2bc55a5, + 0x1d7e3e9b, 0xffa225e2, 0x10604edc, 0xfb57f5df, 0x14959ee1, + 0xe59ec56c, 0x0a5cae52, 0xe16b1551, 0x0ea97e6f, 0xec756516, + 0x03b70e28, 0xe880b52b, 0x0742de15, 0xe6050901, 0x09c7623f, + 0xe2f0d93c, 0x0d32b202, 0xefeea97b, 0x002cc245, 0xeb1b7946, + 0x04d91278, 0xf5d249f5, 0x1a1022cb, 0xf12799c8, 0x1ee5f2f6, + 0xfc39e98f, 0x13fb82b1, 0xf8cc39b2, 0x170e528c, 0xc1ab88e9, + 0x2e69e3d7, 0xc55e58d4, 0x2a9c33ea, 0xc8402893, 0x278243ad, + 0xccb5f8ae, 0x23779390, 0xd27cc81d, 0x3dbea323, 0xd6891820, + 0x394b731e, 0xdb976867, 0x34550359, 0xdf62b85a, 0x30a0d364, + 0xa9580ad1, 0x469a61ef, 0xadaddaec, 0x426fb1d2, 0xa0b3aaab, + 0x4f71c195, 0xa4467a96, 0x4b8411a8, 0xba8f4a25, 0x554d211b, + 0xbe7a9a18, 0x51b8f126, 0xb364ea5f, 0x5ca68161, 0xb7913a62, + 0x5853515c, 0x8ef68b39, 0x6134e007, 0x8a035b04, 0x65c1303a, + 0x871d2b43, 0x68df407d, 0x83e8fb7e, 0x6c2a9040, 0x9d21cbcd, + 0x72e3a0f3, 0x99d41bf0, 0x761670ce, 0x94ca6bb7, 0x7b080089, + 0x903fbb8a, 0x7ffdd0b4, 0x78bf0ea1, 0x977d659f, 0x7c4ade9c, + 0x9388b5a2, 0x7154aedb, 0x9e96c5e5, 0x75a17ee6, 0x9a6315d8, + 0x6b684e55, 0x84aa256b, 0x6f9d9e68, 0x805ff556, 0x6283ee2f, + 0x8d418511, 0x66763e12, 0x89b4552c, 0x5f118f49, 0xb0d3e477, + 0x5be45f74, 0xb426344a, 0x56fa2f33, 0xb938440d, 0x520fff0e, + 0xbdcd9430, 0x4cc6cfbd, 0xa304a483, 0x48331f80, 0xa7f174be, + 0x452d6fc7, 0xaaef04f9, 0x41d8bffa, 0xae1ad4c4, 0x37e20d71, + 0xd820664f, 0x3317dd4c, 0xdcd5b672, 0x3e09ad0b, 0xd1cbc635, + 0x3afc7d36, 0xd53e1608, 0x24354d85, 0xcbf726bb, 0x20c09db8, + 0xcf02f686, 0x2ddeedff, 0xc21c86c1, 0x292b3dc2, 0xc6e956fc, + 0x104c8c99, 0xff8ee7a7, 0x14b95ca4, 0xfb7b379a, 0x19a72ce3, + 0xf66547dd, 0x1d52fcde, 0xf29097e0, 0x039bcc6d, 0xec59a753, + 0x076e1c50, 0xe8ac776e, 0x0a706c17, 0xe5b20729, 0x0e85bc2a, + 0xe147d714}, + {0x00000000, 0x177b1443, 0x2ef62886, 0x398d3cc5, 0x5dec510c, + 0x4a97454f, 0x731a798a, 0x64616dc9, 0xbbd8a218, 0xaca3b65b, + 0x952e8a9e, 0x82559edd, 0xe634f314, 0xf14fe757, 0xc8c2db92, + 0xdfb9cfd1, 0xacc04271, 0xbbbb5632, 0x82366af7, 0x954d7eb4, + 0xf12c137d, 0xe657073e, 0xdfda3bfb, 0xc8a12fb8, 0x1718e069, + 0x0063f42a, 0x39eec8ef, 0x2e95dcac, 0x4af4b165, 0x5d8fa526, + 0x640299e3, 0x73798da0, 0x82f182a3, 0x958a96e0, 0xac07aa25, + 0xbb7cbe66, 0xdf1dd3af, 0xc866c7ec, 0xf1ebfb29, 0xe690ef6a, + 0x392920bb, 0x2e5234f8, 0x17df083d, 0x00a41c7e, 0x64c571b7, + 0x73be65f4, 0x4a335931, 0x5d484d72, 0x2e31c0d2, 0x394ad491, + 0x00c7e854, 0x17bcfc17, 0x73dd91de, 0x64a6859d, 0x5d2bb958, + 0x4a50ad1b, 0x95e962ca, 0x82927689, 0xbb1f4a4c, 0xac645e0f, + 0xc80533c6, 0xdf7e2785, 0xe6f31b40, 0xf1880f03, 0xde920307, + 0xc9e91744, 0xf0642b81, 0xe71f3fc2, 0x837e520b, 0x94054648, + 0xad887a8d, 0xbaf36ece, 0x654aa11f, 0x7231b55c, 0x4bbc8999, + 0x5cc79dda, 0x38a6f013, 0x2fdde450, 0x1650d895, 0x012bccd6, + 0x72524176, 0x65295535, 0x5ca469f0, 0x4bdf7db3, 0x2fbe107a, + 0x38c50439, 0x014838fc, 0x16332cbf, 0xc98ae36e, 0xdef1f72d, + 0xe77ccbe8, 0xf007dfab, 0x9466b262, 0x831da621, 0xba909ae4, + 0xadeb8ea7, 0x5c6381a4, 0x4b1895e7, 0x7295a922, 0x65eebd61, + 0x018fd0a8, 0x16f4c4eb, 0x2f79f82e, 0x3802ec6d, 0xe7bb23bc, + 0xf0c037ff, 0xc94d0b3a, 0xde361f79, 0xba5772b0, 0xad2c66f3, + 0x94a15a36, 0x83da4e75, 0xf0a3c3d5, 0xe7d8d796, 0xde55eb53, + 0xc92eff10, 0xad4f92d9, 0xba34869a, 0x83b9ba5f, 0x94c2ae1c, + 0x4b7b61cd, 0x5c00758e, 0x658d494b, 0x72f65d08, 0x169730c1, + 0x01ec2482, 0x38611847, 0x2f1a0c04, 0x6655004f, 0x712e140c, + 0x48a328c9, 0x5fd83c8a, 0x3bb95143, 0x2cc24500, 0x154f79c5, + 0x02346d86, 0xdd8da257, 0xcaf6b614, 0xf37b8ad1, 0xe4009e92, + 0x8061f35b, 0x971ae718, 0xae97dbdd, 0xb9eccf9e, 0xca95423e, + 0xddee567d, 0xe4636ab8, 0xf3187efb, 0x97791332, 0x80020771, + 0xb98f3bb4, 0xaef42ff7, 0x714de026, 0x6636f465, 0x5fbbc8a0, + 0x48c0dce3, 0x2ca1b12a, 0x3bdaa569, 0x025799ac, 0x152c8def, + 0xe4a482ec, 0xf3df96af, 0xca52aa6a, 0xdd29be29, 0xb948d3e0, + 0xae33c7a3, 0x97befb66, 0x80c5ef25, 0x5f7c20f4, 0x480734b7, + 0x718a0872, 0x66f11c31, 0x029071f8, 0x15eb65bb, 0x2c66597e, + 0x3b1d4d3d, 0x4864c09d, 0x5f1fd4de, 0x6692e81b, 0x71e9fc58, + 0x15889191, 0x02f385d2, 0x3b7eb917, 0x2c05ad54, 0xf3bc6285, + 0xe4c776c6, 0xdd4a4a03, 0xca315e40, 0xae503389, 0xb92b27ca, + 0x80a61b0f, 0x97dd0f4c, 0xb8c70348, 0xafbc170b, 0x96312bce, + 0x814a3f8d, 0xe52b5244, 0xf2504607, 0xcbdd7ac2, 0xdca66e81, + 0x031fa150, 0x1464b513, 0x2de989d6, 0x3a929d95, 0x5ef3f05c, + 0x4988e41f, 0x7005d8da, 0x677ecc99, 0x14074139, 0x037c557a, + 0x3af169bf, 0x2d8a7dfc, 0x49eb1035, 0x5e900476, 0x671d38b3, + 0x70662cf0, 0xafdfe321, 0xb8a4f762, 0x8129cba7, 0x9652dfe4, + 0xf233b22d, 0xe548a66e, 0xdcc59aab, 0xcbbe8ee8, 0x3a3681eb, + 0x2d4d95a8, 0x14c0a96d, 0x03bbbd2e, 0x67dad0e7, 0x70a1c4a4, + 0x492cf861, 0x5e57ec22, 0x81ee23f3, 0x969537b0, 0xaf180b75, + 0xb8631f36, 0xdc0272ff, 0xcb7966bc, 0xf2f45a79, 0xe58f4e3a, + 0x96f6c39a, 0x818dd7d9, 0xb800eb1c, 0xaf7bff5f, 0xcb1a9296, + 0xdc6186d5, 0xe5ecba10, 0xf297ae53, 0x2d2e6182, 0x3a5575c1, + 0x03d84904, 0x14a35d47, 0x70c2308e, 0x67b924cd, 0x5e341808, + 0x494f0c4b}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x43147b17, 0x8628f62e, 0xc53c8d39, 0x0c51ec5d, + 0x4f45974a, 0x8a791a73, 0xc96d6164, 0x18a2d8bb, 0x5bb6a3ac, + 0x9e8a2e95, 0xdd9e5582, 0x14f334e6, 0x57e74ff1, 0x92dbc2c8, + 0xd1cfb9df, 0x7142c0ac, 0x3256bbbb, 0xf76a3682, 0xb47e4d95, + 0x7d132cf1, 0x3e0757e6, 0xfb3bdadf, 0xb82fa1c8, 0x69e01817, + 0x2af46300, 0xefc8ee39, 0xacdc952e, 0x65b1f44a, 0x26a58f5d, + 0xe3990264, 0xa08d7973, 0xa382f182, 0xe0968a95, 0x25aa07ac, + 0x66be7cbb, 0xafd31ddf, 0xecc766c8, 0x29fbebf1, 0x6aef90e6, + 0xbb202939, 0xf834522e, 0x3d08df17, 0x7e1ca400, 0xb771c564, + 0xf465be73, 0x3159334a, 0x724d485d, 0xd2c0312e, 0x91d44a39, + 0x54e8c700, 0x17fcbc17, 0xde91dd73, 0x9d85a664, 0x58b92b5d, + 0x1bad504a, 0xca62e995, 0x89769282, 0x4c4a1fbb, 0x0f5e64ac, + 0xc63305c8, 0x85277edf, 0x401bf3e6, 0x030f88f1, 0x070392de, + 0x4417e9c9, 0x812b64f0, 0xc23f1fe7, 0x0b527e83, 0x48460594, + 0x8d7a88ad, 0xce6ef3ba, 0x1fa14a65, 0x5cb53172, 0x9989bc4b, + 0xda9dc75c, 0x13f0a638, 0x50e4dd2f, 0x95d85016, 0xd6cc2b01, + 0x76415272, 0x35552965, 0xf069a45c, 0xb37ddf4b, 0x7a10be2f, + 0x3904c538, 0xfc384801, 0xbf2c3316, 0x6ee38ac9, 0x2df7f1de, + 0xe8cb7ce7, 0xabdf07f0, 0x62b26694, 0x21a61d83, 0xe49a90ba, + 0xa78eebad, 0xa481635c, 0xe795184b, 0x22a99572, 0x61bdee65, + 0xa8d08f01, 0xebc4f416, 0x2ef8792f, 0x6dec0238, 0xbc23bbe7, + 0xff37c0f0, 0x3a0b4dc9, 0x791f36de, 0xb07257ba, 0xf3662cad, + 0x365aa194, 0x754eda83, 0xd5c3a3f0, 0x96d7d8e7, 0x53eb55de, + 0x10ff2ec9, 0xd9924fad, 0x9a8634ba, 0x5fbab983, 0x1caec294, + 0xcd617b4b, 0x8e75005c, 0x4b498d65, 0x085df672, 0xc1309716, + 0x8224ec01, 0x47186138, 0x040c1a2f, 0x4f005566, 0x0c142e71, + 0xc928a348, 0x8a3cd85f, 0x4351b93b, 0x0045c22c, 0xc5794f15, + 0x866d3402, 0x57a28ddd, 0x14b6f6ca, 0xd18a7bf3, 0x929e00e4, + 0x5bf36180, 0x18e71a97, 0xdddb97ae, 0x9ecfecb9, 0x3e4295ca, + 0x7d56eedd, 0xb86a63e4, 0xfb7e18f3, 0x32137997, 0x71070280, + 0xb43b8fb9, 0xf72ff4ae, 0x26e04d71, 0x65f43666, 0xa0c8bb5f, + 0xe3dcc048, 0x2ab1a12c, 0x69a5da3b, 0xac995702, 0xef8d2c15, + 0xec82a4e4, 0xaf96dff3, 0x6aaa52ca, 0x29be29dd, 0xe0d348b9, + 0xa3c733ae, 0x66fbbe97, 0x25efc580, 0xf4207c5f, 0xb7340748, + 0x72088a71, 0x311cf166, 0xf8719002, 0xbb65eb15, 0x7e59662c, + 0x3d4d1d3b, 0x9dc06448, 0xded41f5f, 0x1be89266, 0x58fce971, + 0x91918815, 0xd285f302, 0x17b97e3b, 0x54ad052c, 0x8562bcf3, + 0xc676c7e4, 0x034a4add, 0x405e31ca, 0x893350ae, 0xca272bb9, + 0x0f1ba680, 0x4c0fdd97, 0x4803c7b8, 0x0b17bcaf, 0xce2b3196, + 0x8d3f4a81, 0x44522be5, 0x074650f2, 0xc27addcb, 0x816ea6dc, + 0x50a11f03, 0x13b56414, 0xd689e92d, 0x959d923a, 0x5cf0f35e, + 0x1fe48849, 0xdad80570, 0x99cc7e67, 0x39410714, 0x7a557c03, + 0xbf69f13a, 0xfc7d8a2d, 0x3510eb49, 0x7604905e, 0xb3381d67, + 0xf02c6670, 0x21e3dfaf, 0x62f7a4b8, 0xa7cb2981, 0xe4df5296, + 0x2db233f2, 0x6ea648e5, 0xab9ac5dc, 0xe88ebecb, 0xeb81363a, + 0xa8954d2d, 0x6da9c014, 0x2ebdbb03, 0xe7d0da67, 0xa4c4a170, + 0x61f82c49, 0x22ec575e, 0xf323ee81, 0xb0379596, 0x750b18af, + 0x361f63b8, 0xff7202dc, 0xbc6679cb, 0x795af4f2, 0x3a4e8fe5, + 0x9ac3f696, 0xd9d78d81, 0x1ceb00b8, 0x5fff7baf, 0x96921acb, + 0xd58661dc, 0x10baece5, 0x53ae97f2, 0x82612e2d, 0xc175553a, + 0x0449d803, 0x475da314, 0x8e30c270, 0xcd24b967, 0x0818345e, + 0x4b0c4f49}, + {0x00000000, 0x3e6bc2ef, 0x3dd0f504, 0x03bb37eb, 0x7aa0eb09, + 0x44cb29e6, 0x47701e0d, 0x791bdce2, 0xf440d713, 0xca2b15fc, + 0xc9902217, 0xf7fbe0f8, 0x8ee03c1a, 0xb08bfef5, 0xb330c91e, + 0x8d5b0bf1, 0xe881ae27, 0xd6ea6cc8, 0xd5515b23, 0xeb3a99cc, + 0x9221452e, 0xac4a87c1, 0xaff1b02a, 0x919a72c5, 0x1cc17934, + 0x22aabbdb, 0x21118c30, 0x1f7a4edf, 0x6661923d, 0x580a50d2, + 0x5bb16739, 0x65daa5d6, 0xd0035d4f, 0xee689fa0, 0xedd3a84b, + 0xd3b86aa4, 0xaaa3b646, 0x94c874a9, 0x97734342, 0xa91881ad, + 0x24438a5c, 0x1a2848b3, 0x19937f58, 0x27f8bdb7, 0x5ee36155, + 0x6088a3ba, 0x63339451, 0x5d5856be, 0x3882f368, 0x06e93187, + 0x0552066c, 0x3b39c483, 0x42221861, 0x7c49da8e, 0x7ff2ed65, + 0x41992f8a, 0xccc2247b, 0xf2a9e694, 0xf112d17f, 0xcf791390, + 0xb662cf72, 0x88090d9d, 0x8bb23a76, 0xb5d9f899, 0xa007ba9e, + 0x9e6c7871, 0x9dd74f9a, 0xa3bc8d75, 0xdaa75197, 0xe4cc9378, + 0xe777a493, 0xd91c667c, 0x54476d8d, 0x6a2caf62, 0x69979889, + 0x57fc5a66, 0x2ee78684, 0x108c446b, 0x13377380, 0x2d5cb16f, + 0x488614b9, 0x76edd656, 0x7556e1bd, 0x4b3d2352, 0x3226ffb0, + 0x0c4d3d5f, 0x0ff60ab4, 0x319dc85b, 0xbcc6c3aa, 0x82ad0145, + 0x811636ae, 0xbf7df441, 0xc66628a3, 0xf80dea4c, 0xfbb6dda7, + 0xc5dd1f48, 0x7004e7d1, 0x4e6f253e, 0x4dd412d5, 0x73bfd03a, + 0x0aa40cd8, 0x34cfce37, 0x3774f9dc, 0x091f3b33, 0x844430c2, + 0xba2ff22d, 0xb994c5c6, 0x87ff0729, 0xfee4dbcb, 0xc08f1924, + 0xc3342ecf, 0xfd5fec20, 0x988549f6, 0xa6ee8b19, 0xa555bcf2, + 0x9b3e7e1d, 0xe225a2ff, 0xdc4e6010, 0xdff557fb, 0xe19e9514, + 0x6cc59ee5, 0x52ae5c0a, 0x51156be1, 0x6f7ea90e, 0x166575ec, + 0x280eb703, 0x2bb580e8, 0x15de4207, 0x010905e6, 0x3f62c709, + 0x3cd9f0e2, 0x02b2320d, 0x7ba9eeef, 0x45c22c00, 0x46791beb, + 0x7812d904, 0xf549d2f5, 0xcb22101a, 0xc89927f1, 0xf6f2e51e, + 0x8fe939fc, 0xb182fb13, 0xb239ccf8, 0x8c520e17, 0xe988abc1, + 0xd7e3692e, 0xd4585ec5, 0xea339c2a, 0x932840c8, 0xad438227, + 0xaef8b5cc, 0x90937723, 0x1dc87cd2, 0x23a3be3d, 0x201889d6, + 0x1e734b39, 0x676897db, 0x59035534, 0x5ab862df, 0x64d3a030, + 0xd10a58a9, 0xef619a46, 0xecdaadad, 0xd2b16f42, 0xabaab3a0, + 0x95c1714f, 0x967a46a4, 0xa811844b, 0x254a8fba, 0x1b214d55, + 0x189a7abe, 0x26f1b851, 0x5fea64b3, 0x6181a65c, 0x623a91b7, + 0x5c515358, 0x398bf68e, 0x07e03461, 0x045b038a, 0x3a30c165, + 0x432b1d87, 0x7d40df68, 0x7efbe883, 0x40902a6c, 0xcdcb219d, + 0xf3a0e372, 0xf01bd499, 0xce701676, 0xb76bca94, 0x8900087b, + 0x8abb3f90, 0xb4d0fd7f, 0xa10ebf78, 0x9f657d97, 0x9cde4a7c, + 0xa2b58893, 0xdbae5471, 0xe5c5969e, 0xe67ea175, 0xd815639a, + 0x554e686b, 0x6b25aa84, 0x689e9d6f, 0x56f55f80, 0x2fee8362, + 0x1185418d, 0x123e7666, 0x2c55b489, 0x498f115f, 0x77e4d3b0, + 0x745fe45b, 0x4a3426b4, 0x332ffa56, 0x0d4438b9, 0x0eff0f52, + 0x3094cdbd, 0xbdcfc64c, 0x83a404a3, 0x801f3348, 0xbe74f1a7, + 0xc76f2d45, 0xf904efaa, 0xfabfd841, 0xc4d41aae, 0x710de237, + 0x4f6620d8, 0x4cdd1733, 0x72b6d5dc, 0x0bad093e, 0x35c6cbd1, + 0x367dfc3a, 0x08163ed5, 0x854d3524, 0xbb26f7cb, 0xb89dc020, + 0x86f602cf, 0xffedde2d, 0xc1861cc2, 0xc23d2b29, 0xfc56e9c6, + 0x998c4c10, 0xa7e78eff, 0xa45cb914, 0x9a377bfb, 0xe32ca719, + 0xdd4765f6, 0xdefc521d, 0xe09790f2, 0x6dcc9b03, 0x53a759ec, + 0x501c6e07, 0x6e77ace8, 0x176c700a, 0x2907b2e5, 0x2abc850e, + 0x14d747e1}, + {0x00000000, 0xc0df8ec1, 0xc1b96c58, 0x0166e299, 0x8273d9b0, + 0x42ac5771, 0x43cab5e8, 0x83153b29, 0x45e1c3ba, 0x853e4d7b, + 0x8458afe2, 0x44872123, 0xc7921a0a, 0x074d94cb, 0x062b7652, + 0xc6f4f893, 0xcbc4f6ae, 0x0b1b786f, 0x0a7d9af6, 0xcaa21437, + 0x49b72f1e, 0x8968a1df, 0x880e4346, 0x48d1cd87, 0x8e253514, + 0x4efabbd5, 0x4f9c594c, 0x8f43d78d, 0x0c56eca4, 0xcc896265, + 0xcdef80fc, 0x0d300e3d, 0xd78f9c86, 0x17501247, 0x1636f0de, + 0xd6e97e1f, 0x55fc4536, 0x9523cbf7, 0x9445296e, 0x549aa7af, + 0x926e5f3c, 0x52b1d1fd, 0x53d73364, 0x9308bda5, 0x101d868c, + 0xd0c2084d, 0xd1a4ead4, 0x117b6415, 0x1c4b6a28, 0xdc94e4e9, + 0xddf20670, 0x1d2d88b1, 0x9e38b398, 0x5ee73d59, 0x5f81dfc0, + 0x9f5e5101, 0x59aaa992, 0x99752753, 0x9813c5ca, 0x58cc4b0b, + 0xdbd97022, 0x1b06fee3, 0x1a601c7a, 0xdabf92bb, 0xef1948d6, + 0x2fc6c617, 0x2ea0248e, 0xee7faa4f, 0x6d6a9166, 0xadb51fa7, + 0xacd3fd3e, 0x6c0c73ff, 0xaaf88b6c, 0x6a2705ad, 0x6b41e734, + 0xab9e69f5, 0x288b52dc, 0xe854dc1d, 0xe9323e84, 0x29edb045, + 0x24ddbe78, 0xe40230b9, 0xe564d220, 0x25bb5ce1, 0xa6ae67c8, + 0x6671e909, 0x67170b90, 0xa7c88551, 0x613c7dc2, 0xa1e3f303, + 0xa085119a, 0x605a9f5b, 0xe34fa472, 0x23902ab3, 0x22f6c82a, + 0xe22946eb, 0x3896d450, 0xf8495a91, 0xf92fb808, 0x39f036c9, + 0xbae50de0, 0x7a3a8321, 0x7b5c61b8, 0xbb83ef79, 0x7d7717ea, + 0xbda8992b, 0xbcce7bb2, 0x7c11f573, 0xff04ce5a, 0x3fdb409b, + 0x3ebda202, 0xfe622cc3, 0xf35222fe, 0x338dac3f, 0x32eb4ea6, + 0xf234c067, 0x7121fb4e, 0xb1fe758f, 0xb0989716, 0x704719d7, + 0xb6b3e144, 0x766c6f85, 0x770a8d1c, 0xb7d503dd, 0x34c038f4, + 0xf41fb635, 0xf57954ac, 0x35a6da6d, 0x9f35e177, 0x5fea6fb6, + 0x5e8c8d2f, 0x9e5303ee, 0x1d4638c7, 0xdd99b606, 0xdcff549f, + 0x1c20da5e, 0xdad422cd, 0x1a0bac0c, 0x1b6d4e95, 0xdbb2c054, + 0x58a7fb7d, 0x987875bc, 0x991e9725, 0x59c119e4, 0x54f117d9, + 0x942e9918, 0x95487b81, 0x5597f540, 0xd682ce69, 0x165d40a8, + 0x173ba231, 0xd7e42cf0, 0x1110d463, 0xd1cf5aa2, 0xd0a9b83b, + 0x107636fa, 0x93630dd3, 0x53bc8312, 0x52da618b, 0x9205ef4a, + 0x48ba7df1, 0x8865f330, 0x890311a9, 0x49dc9f68, 0xcac9a441, + 0x0a162a80, 0x0b70c819, 0xcbaf46d8, 0x0d5bbe4b, 0xcd84308a, + 0xcce2d213, 0x0c3d5cd2, 0x8f2867fb, 0x4ff7e93a, 0x4e910ba3, + 0x8e4e8562, 0x837e8b5f, 0x43a1059e, 0x42c7e707, 0x821869c6, + 0x010d52ef, 0xc1d2dc2e, 0xc0b43eb7, 0x006bb076, 0xc69f48e5, + 0x0640c624, 0x072624bd, 0xc7f9aa7c, 0x44ec9155, 0x84331f94, + 0x8555fd0d, 0x458a73cc, 0x702ca9a1, 0xb0f32760, 0xb195c5f9, + 0x714a4b38, 0xf25f7011, 0x3280fed0, 0x33e61c49, 0xf3399288, + 0x35cd6a1b, 0xf512e4da, 0xf4740643, 0x34ab8882, 0xb7beb3ab, + 0x77613d6a, 0x7607dff3, 0xb6d85132, 0xbbe85f0f, 0x7b37d1ce, + 0x7a513357, 0xba8ebd96, 0x399b86bf, 0xf944087e, 0xf822eae7, + 0x38fd6426, 0xfe099cb5, 0x3ed61274, 0x3fb0f0ed, 0xff6f7e2c, + 0x7c7a4505, 0xbca5cbc4, 0xbdc3295d, 0x7d1ca79c, 0xa7a33527, + 0x677cbbe6, 0x661a597f, 0xa6c5d7be, 0x25d0ec97, 0xe50f6256, + 0xe46980cf, 0x24b60e0e, 0xe242f69d, 0x229d785c, 0x23fb9ac5, + 0xe3241404, 0x60312f2d, 0xa0eea1ec, 0xa1884375, 0x6157cdb4, + 0x6c67c389, 0xacb84d48, 0xaddeafd1, 0x6d012110, 0xee141a39, + 0x2ecb94f8, 0x2fad7661, 0xef72f8a0, 0x29860033, 0xe9598ef2, + 0xe83f6c6b, 0x28e0e2aa, 0xabf5d983, 0x6b2a5742, 0x6a4cb5db, + 0xaa933b1a}, + {0x00000000, 0x6f4ca59b, 0x9f9e3bec, 0xf0d29e77, 0x7f3b0603, + 0x1077a398, 0xe0a53def, 0x8fe99874, 0xfe760c06, 0x913aa99d, + 0x61e837ea, 0x0ea49271, 0x814d0a05, 0xee01af9e, 0x1ed331e9, + 0x719f9472, 0xfced180c, 0x93a1bd97, 0x637323e0, 0x0c3f867b, + 0x83d61e0f, 0xec9abb94, 0x1c4825e3, 0x73048078, 0x029b140a, + 0x6dd7b191, 0x9d052fe6, 0xf2498a7d, 0x7da01209, 0x12ecb792, + 0xe23e29e5, 0x8d728c7e, 0xf8db3118, 0x97979483, 0x67450af4, + 0x0809af6f, 0x87e0371b, 0xe8ac9280, 0x187e0cf7, 0x7732a96c, + 0x06ad3d1e, 0x69e19885, 0x993306f2, 0xf67fa369, 0x79963b1d, + 0x16da9e86, 0xe60800f1, 0x8944a56a, 0x04362914, 0x6b7a8c8f, + 0x9ba812f8, 0xf4e4b763, 0x7b0d2f17, 0x14418a8c, 0xe49314fb, + 0x8bdfb160, 0xfa402512, 0x950c8089, 0x65de1efe, 0x0a92bb65, + 0x857b2311, 0xea37868a, 0x1ae518fd, 0x75a9bd66, 0xf0b76330, + 0x9ffbc6ab, 0x6f2958dc, 0x0065fd47, 0x8f8c6533, 0xe0c0c0a8, + 0x10125edf, 0x7f5efb44, 0x0ec16f36, 0x618dcaad, 0x915f54da, + 0xfe13f141, 0x71fa6935, 0x1eb6ccae, 0xee6452d9, 0x8128f742, + 0x0c5a7b3c, 0x6316dea7, 0x93c440d0, 0xfc88e54b, 0x73617d3f, + 0x1c2dd8a4, 0xecff46d3, 0x83b3e348, 0xf22c773a, 0x9d60d2a1, + 0x6db24cd6, 0x02fee94d, 0x8d177139, 0xe25bd4a2, 0x12894ad5, + 0x7dc5ef4e, 0x086c5228, 0x6720f7b3, 0x97f269c4, 0xf8becc5f, + 0x7757542b, 0x181bf1b0, 0xe8c96fc7, 0x8785ca5c, 0xf61a5e2e, + 0x9956fbb5, 0x698465c2, 0x06c8c059, 0x8921582d, 0xe66dfdb6, + 0x16bf63c1, 0x79f3c65a, 0xf4814a24, 0x9bcdefbf, 0x6b1f71c8, + 0x0453d453, 0x8bba4c27, 0xe4f6e9bc, 0x142477cb, 0x7b68d250, + 0x0af74622, 0x65bbe3b9, 0x95697dce, 0xfa25d855, 0x75cc4021, + 0x1a80e5ba, 0xea527bcd, 0x851ede56, 0xe06fc760, 0x8f2362fb, + 0x7ff1fc8c, 0x10bd5917, 0x9f54c163, 0xf01864f8, 0x00cafa8f, + 0x6f865f14, 0x1e19cb66, 0x71556efd, 0x8187f08a, 0xeecb5511, + 0x6122cd65, 0x0e6e68fe, 0xfebcf689, 0x91f05312, 0x1c82df6c, + 0x73ce7af7, 0x831ce480, 0xec50411b, 0x63b9d96f, 0x0cf57cf4, + 0xfc27e283, 0x936b4718, 0xe2f4d36a, 0x8db876f1, 0x7d6ae886, + 0x12264d1d, 0x9dcfd569, 0xf28370f2, 0x0251ee85, 0x6d1d4b1e, + 0x18b4f678, 0x77f853e3, 0x872acd94, 0xe866680f, 0x678ff07b, + 0x08c355e0, 0xf811cb97, 0x975d6e0c, 0xe6c2fa7e, 0x898e5fe5, + 0x795cc192, 0x16106409, 0x99f9fc7d, 0xf6b559e6, 0x0667c791, + 0x692b620a, 0xe459ee74, 0x8b154bef, 0x7bc7d598, 0x148b7003, + 0x9b62e877, 0xf42e4dec, 0x04fcd39b, 0x6bb07600, 0x1a2fe272, + 0x756347e9, 0x85b1d99e, 0xeafd7c05, 0x6514e471, 0x0a5841ea, + 0xfa8adf9d, 0x95c67a06, 0x10d8a450, 0x7f9401cb, 0x8f469fbc, + 0xe00a3a27, 0x6fe3a253, 0x00af07c8, 0xf07d99bf, 0x9f313c24, + 0xeeaea856, 0x81e20dcd, 0x713093ba, 0x1e7c3621, 0x9195ae55, + 0xfed90bce, 0x0e0b95b9, 0x61473022, 0xec35bc5c, 0x837919c7, + 0x73ab87b0, 0x1ce7222b, 0x930eba5f, 0xfc421fc4, 0x0c9081b3, + 0x63dc2428, 0x1243b05a, 0x7d0f15c1, 0x8ddd8bb6, 0xe2912e2d, + 0x6d78b659, 0x023413c2, 0xf2e68db5, 0x9daa282e, 0xe8039548, + 0x874f30d3, 0x779daea4, 0x18d10b3f, 0x9738934b, 0xf87436d0, + 0x08a6a8a7, 0x67ea0d3c, 0x1675994e, 0x79393cd5, 0x89eba2a2, + 0xe6a70739, 0x694e9f4d, 0x06023ad6, 0xf6d0a4a1, 0x999c013a, + 0x14ee8d44, 0x7ba228df, 0x8b70b6a8, 0xe43c1333, 0x6bd58b47, + 0x04992edc, 0xf44bb0ab, 0x9b071530, 0xea988142, 0x85d424d9, + 0x7506baae, 0x1a4a1f35, 0x95a38741, 0xfaef22da, 0x0a3dbcad, + 0x65711936}}; + +#endif + +#endif + +#if N == 4 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xf1da05aa, 0x38c50d15, 0xc91f08bf, 0x718a1a2a, + 0x80501f80, 0x494f173f, 0xb8951295, 0xe3143454, 0x12ce31fe, + 0xdbd13941, 0x2a0b3ceb, 0x929e2e7e, 0x63442bd4, 0xaa5b236b, + 0x5b8126c1, 0x1d596ee9, 0xec836b43, 0x259c63fc, 0xd4466656, + 0x6cd374c3, 0x9d097169, 0x541679d6, 0xa5cc7c7c, 0xfe4d5abd, + 0x0f975f17, 0xc68857a8, 0x37525202, 0x8fc74097, 0x7e1d453d, + 0xb7024d82, 0x46d84828, 0x3ab2ddd2, 0xcb68d878, 0x0277d0c7, + 0xf3add56d, 0x4b38c7f8, 0xbae2c252, 0x73fdcaed, 0x8227cf47, + 0xd9a6e986, 0x287cec2c, 0xe163e493, 0x10b9e139, 0xa82cf3ac, + 0x59f6f606, 0x90e9feb9, 0x6133fb13, 0x27ebb33b, 0xd631b691, + 0x1f2ebe2e, 0xeef4bb84, 0x5661a911, 0xa7bbacbb, 0x6ea4a404, + 0x9f7ea1ae, 0xc4ff876f, 0x352582c5, 0xfc3a8a7a, 0x0de08fd0, + 0xb5759d45, 0x44af98ef, 0x8db09050, 0x7c6a95fa, 0x7565bba4, + 0x84bfbe0e, 0x4da0b6b1, 0xbc7ab31b, 0x04efa18e, 0xf535a424, + 0x3c2aac9b, 0xcdf0a931, 0x96718ff0, 0x67ab8a5a, 0xaeb482e5, + 0x5f6e874f, 0xe7fb95da, 0x16219070, 0xdf3e98cf, 0x2ee49d65, + 0x683cd54d, 0x99e6d0e7, 0x50f9d858, 0xa123ddf2, 0x19b6cf67, + 0xe86ccacd, 0x2173c272, 0xd0a9c7d8, 0x8b28e119, 0x7af2e4b3, + 0xb3edec0c, 0x4237e9a6, 0xfaa2fb33, 0x0b78fe99, 0xc267f626, + 0x33bdf38c, 0x4fd76676, 0xbe0d63dc, 0x77126b63, 0x86c86ec9, + 0x3e5d7c5c, 0xcf8779f6, 0x06987149, 0xf74274e3, 0xacc35222, + 0x5d195788, 0x94065f37, 0x65dc5a9d, 0xdd494808, 0x2c934da2, + 0xe58c451d, 0x145640b7, 0x528e089f, 0xa3540d35, 0x6a4b058a, + 0x9b910020, 0x230412b5, 0xd2de171f, 0x1bc11fa0, 0xea1b1a0a, + 0xb19a3ccb, 0x40403961, 0x895f31de, 0x78853474, 0xc01026e1, + 0x31ca234b, 0xf8d52bf4, 0x090f2e5e, 0xeacb7748, 0x1b1172e2, + 0xd20e7a5d, 0x23d47ff7, 0x9b416d62, 0x6a9b68c8, 0xa3846077, + 0x525e65dd, 0x09df431c, 0xf80546b6, 0x311a4e09, 0xc0c04ba3, + 0x78555936, 0x898f5c9c, 0x40905423, 0xb14a5189, 0xf79219a1, + 0x06481c0b, 0xcf5714b4, 0x3e8d111e, 0x8618038b, 0x77c20621, + 0xbedd0e9e, 0x4f070b34, 0x14862df5, 0xe55c285f, 0x2c4320e0, + 0xdd99254a, 0x650c37df, 0x94d63275, 0x5dc93aca, 0xac133f60, + 0xd079aa9a, 0x21a3af30, 0xe8bca78f, 0x1966a225, 0xa1f3b0b0, + 0x5029b51a, 0x9936bda5, 0x68ecb80f, 0x336d9ece, 0xc2b79b64, + 0x0ba893db, 0xfa729671, 0x42e784e4, 0xb33d814e, 0x7a2289f1, + 0x8bf88c5b, 0xcd20c473, 0x3cfac1d9, 0xf5e5c966, 0x043fcccc, + 0xbcaade59, 0x4d70dbf3, 0x846fd34c, 0x75b5d6e6, 0x2e34f027, + 0xdfeef58d, 0x16f1fd32, 0xe72bf898, 0x5fbeea0d, 0xae64efa7, + 0x677be718, 0x96a1e2b2, 0x9faeccec, 0x6e74c946, 0xa76bc1f9, + 0x56b1c453, 0xee24d6c6, 0x1ffed36c, 0xd6e1dbd3, 0x273bde79, + 0x7cbaf8b8, 0x8d60fd12, 0x447ff5ad, 0xb5a5f007, 0x0d30e292, + 0xfceae738, 0x35f5ef87, 0xc42fea2d, 0x82f7a205, 0x732da7af, + 0xba32af10, 0x4be8aaba, 0xf37db82f, 0x02a7bd85, 0xcbb8b53a, + 0x3a62b090, 0x61e39651, 0x903993fb, 0x59269b44, 0xa8fc9eee, + 0x10698c7b, 0xe1b389d1, 0x28ac816e, 0xd97684c4, 0xa51c113e, + 0x54c61494, 0x9dd91c2b, 0x6c031981, 0xd4960b14, 0x254c0ebe, + 0xec530601, 0x1d8903ab, 0x4608256a, 0xb7d220c0, 0x7ecd287f, + 0x8f172dd5, 0x37823f40, 0xc6583aea, 0x0f473255, 0xfe9d37ff, + 0xb8457fd7, 0x499f7a7d, 0x808072c2, 0x715a7768, 0xc9cf65fd, + 0x38156057, 0xf10a68e8, 0x00d06d42, 0x5b514b83, 0xaa8b4e29, + 0x63944696, 0x924e433c, 0x2adb51a9, 0xdb015403, 0x121e5cbc, + 0xe3c45916}, + {0x00000000, 0x0ee7e8d1, 0x1dcfd1a2, 0x13283973, 0x3b9fa344, + 0x35784b95, 0x265072e6, 0x28b79a37, 0x773f4688, 0x79d8ae59, + 0x6af0972a, 0x64177ffb, 0x4ca0e5cc, 0x42470d1d, 0x516f346e, + 0x5f88dcbf, 0xee7e8d10, 0xe09965c1, 0xf3b15cb2, 0xfd56b463, + 0xd5e12e54, 0xdb06c685, 0xc82efff6, 0xc6c91727, 0x9941cb98, + 0x97a62349, 0x848e1a3a, 0x8a69f2eb, 0xa2de68dc, 0xac39800d, + 0xbf11b97e, 0xb1f651af, 0x078c1c61, 0x096bf4b0, 0x1a43cdc3, + 0x14a42512, 0x3c13bf25, 0x32f457f4, 0x21dc6e87, 0x2f3b8656, + 0x70b35ae9, 0x7e54b238, 0x6d7c8b4b, 0x639b639a, 0x4b2cf9ad, + 0x45cb117c, 0x56e3280f, 0x5804c0de, 0xe9f29171, 0xe71579a0, + 0xf43d40d3, 0xfadaa802, 0xd26d3235, 0xdc8adae4, 0xcfa2e397, + 0xc1450b46, 0x9ecdd7f9, 0x902a3f28, 0x8302065b, 0x8de5ee8a, + 0xa55274bd, 0xabb59c6c, 0xb89da51f, 0xb67a4dce, 0x0f1838c2, + 0x01ffd013, 0x12d7e960, 0x1c3001b1, 0x34879b86, 0x3a607357, + 0x29484a24, 0x27afa2f5, 0x78277e4a, 0x76c0969b, 0x65e8afe8, + 0x6b0f4739, 0x43b8dd0e, 0x4d5f35df, 0x5e770cac, 0x5090e47d, + 0xe166b5d2, 0xef815d03, 0xfca96470, 0xf24e8ca1, 0xdaf91696, + 0xd41efe47, 0xc736c734, 0xc9d12fe5, 0x9659f35a, 0x98be1b8b, + 0x8b9622f8, 0x8571ca29, 0xadc6501e, 0xa321b8cf, 0xb00981bc, + 0xbeee696d, 0x089424a3, 0x0673cc72, 0x155bf501, 0x1bbc1dd0, + 0x330b87e7, 0x3dec6f36, 0x2ec45645, 0x2023be94, 0x7fab622b, + 0x714c8afa, 0x6264b389, 0x6c835b58, 0x4434c16f, 0x4ad329be, + 0x59fb10cd, 0x571cf81c, 0xe6eaa9b3, 0xe80d4162, 0xfb257811, + 0xf5c290c0, 0xdd750af7, 0xd392e226, 0xc0badb55, 0xce5d3384, + 0x91d5ef3b, 0x9f3207ea, 0x8c1a3e99, 0x82fdd648, 0xaa4a4c7f, + 0xa4ada4ae, 0xb7859ddd, 0xb962750c, 0x1e307184, 0x10d79955, + 0x03ffa026, 0x0d1848f7, 0x25afd2c0, 0x2b483a11, 0x38600362, + 0x3687ebb3, 0x690f370c, 0x67e8dfdd, 0x74c0e6ae, 0x7a270e7f, + 0x52909448, 0x5c777c99, 0x4f5f45ea, 0x41b8ad3b, 0xf04efc94, + 0xfea91445, 0xed812d36, 0xe366c5e7, 0xcbd15fd0, 0xc536b701, + 0xd61e8e72, 0xd8f966a3, 0x8771ba1c, 0x899652cd, 0x9abe6bbe, + 0x9459836f, 0xbcee1958, 0xb209f189, 0xa121c8fa, 0xafc6202b, + 0x19bc6de5, 0x175b8534, 0x0473bc47, 0x0a945496, 0x2223cea1, + 0x2cc42670, 0x3fec1f03, 0x310bf7d2, 0x6e832b6d, 0x6064c3bc, + 0x734cfacf, 0x7dab121e, 0x551c8829, 0x5bfb60f8, 0x48d3598b, + 0x4634b15a, 0xf7c2e0f5, 0xf9250824, 0xea0d3157, 0xe4ead986, + 0xcc5d43b1, 0xc2baab60, 0xd1929213, 0xdf757ac2, 0x80fda67d, + 0x8e1a4eac, 0x9d3277df, 0x93d59f0e, 0xbb620539, 0xb585ede8, + 0xa6add49b, 0xa84a3c4a, 0x11284946, 0x1fcfa197, 0x0ce798e4, + 0x02007035, 0x2ab7ea02, 0x245002d3, 0x37783ba0, 0x399fd371, + 0x66170fce, 0x68f0e71f, 0x7bd8de6c, 0x753f36bd, 0x5d88ac8a, + 0x536f445b, 0x40477d28, 0x4ea095f9, 0xff56c456, 0xf1b12c87, + 0xe29915f4, 0xec7efd25, 0xc4c96712, 0xca2e8fc3, 0xd906b6b0, + 0xd7e15e61, 0x886982de, 0x868e6a0f, 0x95a6537c, 0x9b41bbad, + 0xb3f6219a, 0xbd11c94b, 0xae39f038, 0xa0de18e9, 0x16a45527, + 0x1843bdf6, 0x0b6b8485, 0x058c6c54, 0x2d3bf663, 0x23dc1eb2, + 0x30f427c1, 0x3e13cf10, 0x619b13af, 0x6f7cfb7e, 0x7c54c20d, + 0x72b32adc, 0x5a04b0eb, 0x54e3583a, 0x47cb6149, 0x492c8998, + 0xf8dad837, 0xf63d30e6, 0xe5150995, 0xebf2e144, 0xc3457b73, + 0xcda293a2, 0xde8aaad1, 0xd06d4200, 0x8fe59ebf, 0x8102766e, + 0x922a4f1d, 0x9ccda7cc, 0xb47a3dfb, 0xba9dd52a, 0xa9b5ec59, + 0xa7520488}, + {0x00000000, 0x3c60e308, 0x78c1c610, 0x44a12518, 0xf1838c20, + 0xcde36f28, 0x89424a30, 0xb522a938, 0x38761e01, 0x0416fd09, + 0x40b7d811, 0x7cd73b19, 0xc9f59221, 0xf5957129, 0xb1345431, + 0x8d54b739, 0x70ec3c02, 0x4c8cdf0a, 0x082dfa12, 0x344d191a, + 0x816fb022, 0xbd0f532a, 0xf9ae7632, 0xc5ce953a, 0x489a2203, + 0x74fac10b, 0x305be413, 0x0c3b071b, 0xb919ae23, 0x85794d2b, + 0xc1d86833, 0xfdb88b3b, 0xe1d87804, 0xddb89b0c, 0x9919be14, + 0xa5795d1c, 0x105bf424, 0x2c3b172c, 0x689a3234, 0x54fad13c, + 0xd9ae6605, 0xe5ce850d, 0xa16fa015, 0x9d0f431d, 0x282dea25, + 0x144d092d, 0x50ec2c35, 0x6c8ccf3d, 0x91344406, 0xad54a70e, + 0xe9f58216, 0xd595611e, 0x60b7c826, 0x5cd72b2e, 0x18760e36, + 0x2416ed3e, 0xa9425a07, 0x9522b90f, 0xd1839c17, 0xede37f1f, + 0x58c1d627, 0x64a1352f, 0x20001037, 0x1c60f33f, 0x18c1f649, + 0x24a11541, 0x60003059, 0x5c60d351, 0xe9427a69, 0xd5229961, + 0x9183bc79, 0xade35f71, 0x20b7e848, 0x1cd70b40, 0x58762e58, + 0x6416cd50, 0xd1346468, 0xed548760, 0xa9f5a278, 0x95954170, + 0x682dca4b, 0x544d2943, 0x10ec0c5b, 0x2c8cef53, 0x99ae466b, + 0xa5cea563, 0xe16f807b, 0xdd0f6373, 0x505bd44a, 0x6c3b3742, + 0x289a125a, 0x14faf152, 0xa1d8586a, 0x9db8bb62, 0xd9199e7a, + 0xe5797d72, 0xf9198e4d, 0xc5796d45, 0x81d8485d, 0xbdb8ab55, + 0x089a026d, 0x34fae165, 0x705bc47d, 0x4c3b2775, 0xc16f904c, + 0xfd0f7344, 0xb9ae565c, 0x85ceb554, 0x30ec1c6c, 0x0c8cff64, + 0x482dda7c, 0x744d3974, 0x89f5b24f, 0xb5955147, 0xf134745f, + 0xcd549757, 0x78763e6f, 0x4416dd67, 0x00b7f87f, 0x3cd71b77, + 0xb183ac4e, 0x8de34f46, 0xc9426a5e, 0xf5228956, 0x4000206e, + 0x7c60c366, 0x38c1e67e, 0x04a10576, 0x3183ec92, 0x0de30f9a, + 0x49422a82, 0x7522c98a, 0xc00060b2, 0xfc6083ba, 0xb8c1a6a2, + 0x84a145aa, 0x09f5f293, 0x3595119b, 0x71343483, 0x4d54d78b, + 0xf8767eb3, 0xc4169dbb, 0x80b7b8a3, 0xbcd75bab, 0x416fd090, + 0x7d0f3398, 0x39ae1680, 0x05cef588, 0xb0ec5cb0, 0x8c8cbfb8, + 0xc82d9aa0, 0xf44d79a8, 0x7919ce91, 0x45792d99, 0x01d80881, + 0x3db8eb89, 0x889a42b1, 0xb4faa1b9, 0xf05b84a1, 0xcc3b67a9, + 0xd05b9496, 0xec3b779e, 0xa89a5286, 0x94fab18e, 0x21d818b6, + 0x1db8fbbe, 0x5919dea6, 0x65793dae, 0xe82d8a97, 0xd44d699f, + 0x90ec4c87, 0xac8caf8f, 0x19ae06b7, 0x25cee5bf, 0x616fc0a7, + 0x5d0f23af, 0xa0b7a894, 0x9cd74b9c, 0xd8766e84, 0xe4168d8c, + 0x513424b4, 0x6d54c7bc, 0x29f5e2a4, 0x159501ac, 0x98c1b695, + 0xa4a1559d, 0xe0007085, 0xdc60938d, 0x69423ab5, 0x5522d9bd, + 0x1183fca5, 0x2de31fad, 0x29421adb, 0x1522f9d3, 0x5183dccb, + 0x6de33fc3, 0xd8c196fb, 0xe4a175f3, 0xa00050eb, 0x9c60b3e3, + 0x113404da, 0x2d54e7d2, 0x69f5c2ca, 0x559521c2, 0xe0b788fa, + 0xdcd76bf2, 0x98764eea, 0xa416ade2, 0x59ae26d9, 0x65cec5d1, + 0x216fe0c9, 0x1d0f03c1, 0xa82daaf9, 0x944d49f1, 0xd0ec6ce9, + 0xec8c8fe1, 0x61d838d8, 0x5db8dbd0, 0x1919fec8, 0x25791dc0, + 0x905bb4f8, 0xac3b57f0, 0xe89a72e8, 0xd4fa91e0, 0xc89a62df, + 0xf4fa81d7, 0xb05ba4cf, 0x8c3b47c7, 0x3919eeff, 0x05790df7, + 0x41d828ef, 0x7db8cbe7, 0xf0ec7cde, 0xcc8c9fd6, 0x882dbace, + 0xb44d59c6, 0x016ff0fe, 0x3d0f13f6, 0x79ae36ee, 0x45ced5e6, + 0xb8765edd, 0x8416bdd5, 0xc0b798cd, 0xfcd77bc5, 0x49f5d2fd, + 0x759531f5, 0x313414ed, 0x0d54f7e5, 0x800040dc, 0xbc60a3d4, + 0xf8c186cc, 0xc4a165c4, 0x7183ccfc, 0x4de32ff4, 0x09420aec, + 0x3522e9e4}, + {0x00000000, 0x6307d924, 0xc60fb248, 0xa5086b6c, 0x576e62d1, + 0x3469bbf5, 0x9161d099, 0xf26609bd, 0xaedcc5a2, 0xcddb1c86, + 0x68d377ea, 0x0bd4aece, 0xf9b2a773, 0x9ab57e57, 0x3fbd153b, + 0x5cbacc1f, 0x86c88d05, 0xe5cf5421, 0x40c73f4d, 0x23c0e669, + 0xd1a6efd4, 0xb2a136f0, 0x17a95d9c, 0x74ae84b8, 0x281448a7, + 0x4b139183, 0xee1bfaef, 0x8d1c23cb, 0x7f7a2a76, 0x1c7df352, + 0xb975983e, 0xda72411a, 0xd6e01c4b, 0xb5e7c56f, 0x10efae03, + 0x73e87727, 0x818e7e9a, 0xe289a7be, 0x4781ccd2, 0x248615f6, + 0x783cd9e9, 0x1b3b00cd, 0xbe336ba1, 0xdd34b285, 0x2f52bb38, + 0x4c55621c, 0xe95d0970, 0x8a5ad054, 0x5028914e, 0x332f486a, + 0x96272306, 0xf520fa22, 0x0746f39f, 0x64412abb, 0xc14941d7, + 0xa24e98f3, 0xfef454ec, 0x9df38dc8, 0x38fbe6a4, 0x5bfc3f80, + 0xa99a363d, 0xca9def19, 0x6f958475, 0x0c925d51, 0x76b13ed7, + 0x15b6e7f3, 0xb0be8c9f, 0xd3b955bb, 0x21df5c06, 0x42d88522, + 0xe7d0ee4e, 0x84d7376a, 0xd86dfb75, 0xbb6a2251, 0x1e62493d, + 0x7d659019, 0x8f0399a4, 0xec044080, 0x490c2bec, 0x2a0bf2c8, + 0xf079b3d2, 0x937e6af6, 0x3676019a, 0x5571d8be, 0xa717d103, + 0xc4100827, 0x6118634b, 0x021fba6f, 0x5ea57670, 0x3da2af54, + 0x98aac438, 0xfbad1d1c, 0x09cb14a1, 0x6acccd85, 0xcfc4a6e9, + 0xacc37fcd, 0xa051229c, 0xc356fbb8, 0x665e90d4, 0x055949f0, + 0xf73f404d, 0x94389969, 0x3130f205, 0x52372b21, 0x0e8de73e, + 0x6d8a3e1a, 0xc8825576, 0xab858c52, 0x59e385ef, 0x3ae45ccb, + 0x9fec37a7, 0xfcebee83, 0x2699af99, 0x459e76bd, 0xe0961dd1, + 0x8391c4f5, 0x71f7cd48, 0x12f0146c, 0xb7f87f00, 0xd4ffa624, + 0x88456a3b, 0xeb42b31f, 0x4e4ad873, 0x2d4d0157, 0xdf2b08ea, + 0xbc2cd1ce, 0x1924baa2, 0x7a236386, 0xed627dae, 0x8e65a48a, + 0x2b6dcfe6, 0x486a16c2, 0xba0c1f7f, 0xd90bc65b, 0x7c03ad37, + 0x1f047413, 0x43beb80c, 0x20b96128, 0x85b10a44, 0xe6b6d360, + 0x14d0dadd, 0x77d703f9, 0xd2df6895, 0xb1d8b1b1, 0x6baaf0ab, + 0x08ad298f, 0xada542e3, 0xcea29bc7, 0x3cc4927a, 0x5fc34b5e, + 0xfacb2032, 0x99ccf916, 0xc5763509, 0xa671ec2d, 0x03798741, + 0x607e5e65, 0x921857d8, 0xf11f8efc, 0x5417e590, 0x37103cb4, + 0x3b8261e5, 0x5885b8c1, 0xfd8dd3ad, 0x9e8a0a89, 0x6cec0334, + 0x0febda10, 0xaae3b17c, 0xc9e46858, 0x955ea447, 0xf6597d63, + 0x5351160f, 0x3056cf2b, 0xc230c696, 0xa1371fb2, 0x043f74de, + 0x6738adfa, 0xbd4aece0, 0xde4d35c4, 0x7b455ea8, 0x1842878c, + 0xea248e31, 0x89235715, 0x2c2b3c79, 0x4f2ce55d, 0x13962942, + 0x7091f066, 0xd5999b0a, 0xb69e422e, 0x44f84b93, 0x27ff92b7, + 0x82f7f9db, 0xe1f020ff, 0x9bd34379, 0xf8d49a5d, 0x5ddcf131, + 0x3edb2815, 0xccbd21a8, 0xafbaf88c, 0x0ab293e0, 0x69b54ac4, + 0x350f86db, 0x56085fff, 0xf3003493, 0x9007edb7, 0x6261e40a, + 0x01663d2e, 0xa46e5642, 0xc7698f66, 0x1d1bce7c, 0x7e1c1758, + 0xdb147c34, 0xb813a510, 0x4a75acad, 0x29727589, 0x8c7a1ee5, + 0xef7dc7c1, 0xb3c70bde, 0xd0c0d2fa, 0x75c8b996, 0x16cf60b2, + 0xe4a9690f, 0x87aeb02b, 0x22a6db47, 0x41a10263, 0x4d335f32, + 0x2e348616, 0x8b3ced7a, 0xe83b345e, 0x1a5d3de3, 0x795ae4c7, + 0xdc528fab, 0xbf55568f, 0xe3ef9a90, 0x80e843b4, 0x25e028d8, + 0x46e7f1fc, 0xb481f841, 0xd7862165, 0x728e4a09, 0x1189932d, + 0xcbfbd237, 0xa8fc0b13, 0x0df4607f, 0x6ef3b95b, 0x9c95b0e6, + 0xff9269c2, 0x5a9a02ae, 0x399ddb8a, 0x65271795, 0x0620ceb1, + 0xa328a5dd, 0xc02f7cf9, 0x32497544, 0x514eac60, 0xf446c70c, + 0x97411e28}, + {0x00000000, 0x01b5fd1d, 0x036bfa3a, 0x02de0727, 0x06d7f474, + 0x07620969, 0x05bc0e4e, 0x0409f353, 0x0dafe8e8, 0x0c1a15f5, + 0x0ec412d2, 0x0f71efcf, 0x0b781c9c, 0x0acde181, 0x0813e6a6, + 0x09a61bbb, 0x1b5fd1d0, 0x1aea2ccd, 0x18342bea, 0x1981d6f7, + 0x1d8825a4, 0x1c3dd8b9, 0x1ee3df9e, 0x1f562283, 0x16f03938, + 0x1745c425, 0x159bc302, 0x142e3e1f, 0x1027cd4c, 0x11923051, + 0x134c3776, 0x12f9ca6b, 0x36bfa3a0, 0x370a5ebd, 0x35d4599a, + 0x3461a487, 0x306857d4, 0x31ddaac9, 0x3303adee, 0x32b650f3, + 0x3b104b48, 0x3aa5b655, 0x387bb172, 0x39ce4c6f, 0x3dc7bf3c, + 0x3c724221, 0x3eac4506, 0x3f19b81b, 0x2de07270, 0x2c558f6d, + 0x2e8b884a, 0x2f3e7557, 0x2b378604, 0x2a827b19, 0x285c7c3e, + 0x29e98123, 0x204f9a98, 0x21fa6785, 0x232460a2, 0x22919dbf, + 0x26986eec, 0x272d93f1, 0x25f394d6, 0x244669cb, 0x6d7f4740, + 0x6ccaba5d, 0x6e14bd7a, 0x6fa14067, 0x6ba8b334, 0x6a1d4e29, + 0x68c3490e, 0x6976b413, 0x60d0afa8, 0x616552b5, 0x63bb5592, + 0x620ea88f, 0x66075bdc, 0x67b2a6c1, 0x656ca1e6, 0x64d95cfb, + 0x76209690, 0x77956b8d, 0x754b6caa, 0x74fe91b7, 0x70f762e4, + 0x71429ff9, 0x739c98de, 0x722965c3, 0x7b8f7e78, 0x7a3a8365, + 0x78e48442, 0x7951795f, 0x7d588a0c, 0x7ced7711, 0x7e337036, + 0x7f868d2b, 0x5bc0e4e0, 0x5a7519fd, 0x58ab1eda, 0x591ee3c7, + 0x5d171094, 0x5ca2ed89, 0x5e7ceaae, 0x5fc917b3, 0x566f0c08, + 0x57daf115, 0x5504f632, 0x54b10b2f, 0x50b8f87c, 0x510d0561, + 0x53d30246, 0x5266ff5b, 0x409f3530, 0x412ac82d, 0x43f4cf0a, + 0x42413217, 0x4648c144, 0x47fd3c59, 0x45233b7e, 0x4496c663, + 0x4d30ddd8, 0x4c8520c5, 0x4e5b27e2, 0x4feedaff, 0x4be729ac, + 0x4a52d4b1, 0x488cd396, 0x49392e8b, 0xdafe8e80, 0xdb4b739d, + 0xd99574ba, 0xd82089a7, 0xdc297af4, 0xdd9c87e9, 0xdf4280ce, + 0xdef77dd3, 0xd7516668, 0xd6e49b75, 0xd43a9c52, 0xd58f614f, + 0xd186921c, 0xd0336f01, 0xd2ed6826, 0xd358953b, 0xc1a15f50, + 0xc014a24d, 0xc2caa56a, 0xc37f5877, 0xc776ab24, 0xc6c35639, + 0xc41d511e, 0xc5a8ac03, 0xcc0eb7b8, 0xcdbb4aa5, 0xcf654d82, + 0xced0b09f, 0xcad943cc, 0xcb6cbed1, 0xc9b2b9f6, 0xc80744eb, + 0xec412d20, 0xedf4d03d, 0xef2ad71a, 0xee9f2a07, 0xea96d954, + 0xeb232449, 0xe9fd236e, 0xe848de73, 0xe1eec5c8, 0xe05b38d5, + 0xe2853ff2, 0xe330c2ef, 0xe73931bc, 0xe68ccca1, 0xe452cb86, + 0xe5e7369b, 0xf71efcf0, 0xf6ab01ed, 0xf47506ca, 0xf5c0fbd7, + 0xf1c90884, 0xf07cf599, 0xf2a2f2be, 0xf3170fa3, 0xfab11418, + 0xfb04e905, 0xf9daee22, 0xf86f133f, 0xfc66e06c, 0xfdd31d71, + 0xff0d1a56, 0xfeb8e74b, 0xb781c9c0, 0xb63434dd, 0xb4ea33fa, + 0xb55fcee7, 0xb1563db4, 0xb0e3c0a9, 0xb23dc78e, 0xb3883a93, + 0xba2e2128, 0xbb9bdc35, 0xb945db12, 0xb8f0260f, 0xbcf9d55c, + 0xbd4c2841, 0xbf922f66, 0xbe27d27b, 0xacde1810, 0xad6be50d, + 0xafb5e22a, 0xae001f37, 0xaa09ec64, 0xabbc1179, 0xa962165e, + 0xa8d7eb43, 0xa171f0f8, 0xa0c40de5, 0xa21a0ac2, 0xa3aff7df, + 0xa7a6048c, 0xa613f991, 0xa4cdfeb6, 0xa57803ab, 0x813e6a60, + 0x808b977d, 0x8255905a, 0x83e06d47, 0x87e99e14, 0x865c6309, + 0x8482642e, 0x85379933, 0x8c918288, 0x8d247f95, 0x8ffa78b2, + 0x8e4f85af, 0x8a4676fc, 0x8bf38be1, 0x892d8cc6, 0x889871db, + 0x9a61bbb0, 0x9bd446ad, 0x990a418a, 0x98bfbc97, 0x9cb64fc4, + 0x9d03b2d9, 0x9fddb5fe, 0x9e6848e3, 0x97ce5358, 0x967bae45, + 0x94a5a962, 0x9510547f, 0x9119a72c, 0x90ac5a31, 0x92725d16, + 0x93c7a00b}, + {0x00000000, 0x6e8c1b41, 0xdd183682, 0xb3942dc3, 0x61416b45, + 0x0fcd7004, 0xbc595dc7, 0xd2d54686, 0xc282d68a, 0xac0ecdcb, + 0x1f9ae008, 0x7116fb49, 0xa3c3bdcf, 0xcd4fa68e, 0x7edb8b4d, + 0x1057900c, 0x5e74ab55, 0x30f8b014, 0x836c9dd7, 0xede08696, + 0x3f35c010, 0x51b9db51, 0xe22df692, 0x8ca1edd3, 0x9cf67ddf, + 0xf27a669e, 0x41ee4b5d, 0x2f62501c, 0xfdb7169a, 0x933b0ddb, + 0x20af2018, 0x4e233b59, 0xbce956aa, 0xd2654deb, 0x61f16028, + 0x0f7d7b69, 0xdda83def, 0xb32426ae, 0x00b00b6d, 0x6e3c102c, + 0x7e6b8020, 0x10e79b61, 0xa373b6a2, 0xcdffade3, 0x1f2aeb65, + 0x71a6f024, 0xc232dde7, 0xacbec6a6, 0xe29dfdff, 0x8c11e6be, + 0x3f85cb7d, 0x5109d03c, 0x83dc96ba, 0xed508dfb, 0x5ec4a038, + 0x3048bb79, 0x201f2b75, 0x4e933034, 0xfd071df7, 0x938b06b6, + 0x415e4030, 0x2fd25b71, 0x9c4676b2, 0xf2ca6df3, 0xa2a3ab15, + 0xcc2fb054, 0x7fbb9d97, 0x113786d6, 0xc3e2c050, 0xad6edb11, + 0x1efaf6d2, 0x7076ed93, 0x60217d9f, 0x0ead66de, 0xbd394b1d, + 0xd3b5505c, 0x016016da, 0x6fec0d9b, 0xdc782058, 0xb2f43b19, + 0xfcd70040, 0x925b1b01, 0x21cf36c2, 0x4f432d83, 0x9d966b05, + 0xf31a7044, 0x408e5d87, 0x2e0246c6, 0x3e55d6ca, 0x50d9cd8b, + 0xe34de048, 0x8dc1fb09, 0x5f14bd8f, 0x3198a6ce, 0x820c8b0d, + 0xec80904c, 0x1e4afdbf, 0x70c6e6fe, 0xc352cb3d, 0xadded07c, + 0x7f0b96fa, 0x11878dbb, 0xa213a078, 0xcc9fbb39, 0xdcc82b35, + 0xb2443074, 0x01d01db7, 0x6f5c06f6, 0xbd894070, 0xd3055b31, + 0x609176f2, 0x0e1d6db3, 0x403e56ea, 0x2eb24dab, 0x9d266068, + 0xf3aa7b29, 0x217f3daf, 0x4ff326ee, 0xfc670b2d, 0x92eb106c, + 0x82bc8060, 0xec309b21, 0x5fa4b6e2, 0x3128ada3, 0xe3fdeb25, + 0x8d71f064, 0x3ee5dda7, 0x5069c6e6, 0x9e36506b, 0xf0ba4b2a, + 0x432e66e9, 0x2da27da8, 0xff773b2e, 0x91fb206f, 0x226f0dac, + 0x4ce316ed, 0x5cb486e1, 0x32389da0, 0x81acb063, 0xef20ab22, + 0x3df5eda4, 0x5379f6e5, 0xe0eddb26, 0x8e61c067, 0xc042fb3e, + 0xaecee07f, 0x1d5acdbc, 0x73d6d6fd, 0xa103907b, 0xcf8f8b3a, + 0x7c1ba6f9, 0x1297bdb8, 0x02c02db4, 0x6c4c36f5, 0xdfd81b36, + 0xb1540077, 0x638146f1, 0x0d0d5db0, 0xbe997073, 0xd0156b32, + 0x22df06c1, 0x4c531d80, 0xffc73043, 0x914b2b02, 0x439e6d84, + 0x2d1276c5, 0x9e865b06, 0xf00a4047, 0xe05dd04b, 0x8ed1cb0a, + 0x3d45e6c9, 0x53c9fd88, 0x811cbb0e, 0xef90a04f, 0x5c048d8c, + 0x328896cd, 0x7cabad94, 0x1227b6d5, 0xa1b39b16, 0xcf3f8057, + 0x1deac6d1, 0x7366dd90, 0xc0f2f053, 0xae7eeb12, 0xbe297b1e, + 0xd0a5605f, 0x63314d9c, 0x0dbd56dd, 0xdf68105b, 0xb1e40b1a, + 0x027026d9, 0x6cfc3d98, 0x3c95fb7e, 0x5219e03f, 0xe18dcdfc, + 0x8f01d6bd, 0x5dd4903b, 0x33588b7a, 0x80cca6b9, 0xee40bdf8, + 0xfe172df4, 0x909b36b5, 0x230f1b76, 0x4d830037, 0x9f5646b1, + 0xf1da5df0, 0x424e7033, 0x2cc26b72, 0x62e1502b, 0x0c6d4b6a, + 0xbff966a9, 0xd1757de8, 0x03a03b6e, 0x6d2c202f, 0xdeb80dec, + 0xb03416ad, 0xa06386a1, 0xceef9de0, 0x7d7bb023, 0x13f7ab62, + 0xc122ede4, 0xafaef6a5, 0x1c3adb66, 0x72b6c027, 0x807cadd4, + 0xeef0b695, 0x5d649b56, 0x33e88017, 0xe13dc691, 0x8fb1ddd0, + 0x3c25f013, 0x52a9eb52, 0x42fe7b5e, 0x2c72601f, 0x9fe64ddc, + 0xf16a569d, 0x23bf101b, 0x4d330b5a, 0xfea72699, 0x902b3dd8, + 0xde080681, 0xb0841dc0, 0x03103003, 0x6d9c2b42, 0xbf496dc4, + 0xd1c57685, 0x62515b46, 0x0cdd4007, 0x1c8ad00b, 0x7206cb4a, + 0xc192e689, 0xaf1efdc8, 0x7dcbbb4e, 0x1347a00f, 0xa0d38dcc, + 0xce5f968d}, + {0x00000000, 0xe71da697, 0x154a4b6f, 0xf257edf8, 0x2a9496de, + 0xcd893049, 0x3fdeddb1, 0xd8c37b26, 0x55292dbc, 0xb2348b2b, + 0x406366d3, 0xa77ec044, 0x7fbdbb62, 0x98a01df5, 0x6af7f00d, + 0x8dea569a, 0xaa525b78, 0x4d4ffdef, 0xbf181017, 0x5805b680, + 0x80c6cda6, 0x67db6b31, 0x958c86c9, 0x7291205e, 0xff7b76c4, + 0x1866d053, 0xea313dab, 0x0d2c9b3c, 0xd5efe01a, 0x32f2468d, + 0xc0a5ab75, 0x27b80de2, 0x8fd5b0b1, 0x68c81626, 0x9a9ffbde, + 0x7d825d49, 0xa541266f, 0x425c80f8, 0xb00b6d00, 0x5716cb97, + 0xdafc9d0d, 0x3de13b9a, 0xcfb6d662, 0x28ab70f5, 0xf0680bd3, + 0x1775ad44, 0xe52240bc, 0x023fe62b, 0x2587ebc9, 0xc29a4d5e, + 0x30cda0a6, 0xd7d00631, 0x0f137d17, 0xe80edb80, 0x1a593678, + 0xfd4490ef, 0x70aec675, 0x97b360e2, 0x65e48d1a, 0x82f92b8d, + 0x5a3a50ab, 0xbd27f63c, 0x4f701bc4, 0xa86dbd53, 0xc4da6723, + 0x23c7c1b4, 0xd1902c4c, 0x368d8adb, 0xee4ef1fd, 0x0953576a, + 0xfb04ba92, 0x1c191c05, 0x91f34a9f, 0x76eeec08, 0x84b901f0, + 0x63a4a767, 0xbb67dc41, 0x5c7a7ad6, 0xae2d972e, 0x493031b9, + 0x6e883c5b, 0x89959acc, 0x7bc27734, 0x9cdfd1a3, 0x441caa85, + 0xa3010c12, 0x5156e1ea, 0xb64b477d, 0x3ba111e7, 0xdcbcb770, + 0x2eeb5a88, 0xc9f6fc1f, 0x11358739, 0xf62821ae, 0x047fcc56, + 0xe3626ac1, 0x4b0fd792, 0xac127105, 0x5e459cfd, 0xb9583a6a, + 0x619b414c, 0x8686e7db, 0x74d10a23, 0x93ccacb4, 0x1e26fa2e, + 0xf93b5cb9, 0x0b6cb141, 0xec7117d6, 0x34b26cf0, 0xd3afca67, + 0x21f8279f, 0xc6e58108, 0xe15d8cea, 0x06402a7d, 0xf417c785, + 0x130a6112, 0xcbc91a34, 0x2cd4bca3, 0xde83515b, 0x399ef7cc, + 0xb474a156, 0x536907c1, 0xa13eea39, 0x46234cae, 0x9ee03788, + 0x79fd911f, 0x8baa7ce7, 0x6cb7da70, 0x52c5c807, 0xb5d86e90, + 0x478f8368, 0xa09225ff, 0x78515ed9, 0x9f4cf84e, 0x6d1b15b6, + 0x8a06b321, 0x07ece5bb, 0xe0f1432c, 0x12a6aed4, 0xf5bb0843, + 0x2d787365, 0xca65d5f2, 0x3832380a, 0xdf2f9e9d, 0xf897937f, + 0x1f8a35e8, 0xedddd810, 0x0ac07e87, 0xd20305a1, 0x351ea336, + 0xc7494ece, 0x2054e859, 0xadbebec3, 0x4aa31854, 0xb8f4f5ac, + 0x5fe9533b, 0x872a281d, 0x60378e8a, 0x92606372, 0x757dc5e5, + 0xdd1078b6, 0x3a0dde21, 0xc85a33d9, 0x2f47954e, 0xf784ee68, + 0x109948ff, 0xe2cea507, 0x05d30390, 0x8839550a, 0x6f24f39d, + 0x9d731e65, 0x7a6eb8f2, 0xa2adc3d4, 0x45b06543, 0xb7e788bb, + 0x50fa2e2c, 0x774223ce, 0x905f8559, 0x620868a1, 0x8515ce36, + 0x5dd6b510, 0xbacb1387, 0x489cfe7f, 0xaf8158e8, 0x226b0e72, + 0xc576a8e5, 0x3721451d, 0xd03ce38a, 0x08ff98ac, 0xefe23e3b, + 0x1db5d3c3, 0xfaa87554, 0x961faf24, 0x710209b3, 0x8355e44b, + 0x644842dc, 0xbc8b39fa, 0x5b969f6d, 0xa9c17295, 0x4edcd402, + 0xc3368298, 0x242b240f, 0xd67cc9f7, 0x31616f60, 0xe9a21446, + 0x0ebfb2d1, 0xfce85f29, 0x1bf5f9be, 0x3c4df45c, 0xdb5052cb, + 0x2907bf33, 0xce1a19a4, 0x16d96282, 0xf1c4c415, 0x039329ed, + 0xe48e8f7a, 0x6964d9e0, 0x8e797f77, 0x7c2e928f, 0x9b333418, + 0x43f04f3e, 0xa4ede9a9, 0x56ba0451, 0xb1a7a2c6, 0x19ca1f95, + 0xfed7b902, 0x0c8054fa, 0xeb9df26d, 0x335e894b, 0xd4432fdc, + 0x2614c224, 0xc10964b3, 0x4ce33229, 0xabfe94be, 0x59a97946, + 0xbeb4dfd1, 0x6677a4f7, 0x816a0260, 0x733def98, 0x9420490f, + 0xb39844ed, 0x5485e27a, 0xa6d20f82, 0x41cfa915, 0x990cd233, + 0x7e1174a4, 0x8c46995c, 0x6b5b3fcb, 0xe6b16951, 0x01accfc6, + 0xf3fb223e, 0x14e684a9, 0xcc25ff8f, 0x2b385918, 0xd96fb4e0, + 0x3e721277}, + {0x00000000, 0xa58b900e, 0x9066265d, 0x35edb653, 0xfbbd4afb, + 0x5e36daf5, 0x6bdb6ca6, 0xce50fca8, 0x2c0b93b7, 0x898003b9, + 0xbc6db5ea, 0x19e625e4, 0xd7b6d94c, 0x723d4942, 0x47d0ff11, + 0xe25b6f1f, 0x5817276e, 0xfd9cb760, 0xc8710133, 0x6dfa913d, + 0xa3aa6d95, 0x0621fd9b, 0x33cc4bc8, 0x9647dbc6, 0x741cb4d9, + 0xd19724d7, 0xe47a9284, 0x41f1028a, 0x8fa1fe22, 0x2a2a6e2c, + 0x1fc7d87f, 0xba4c4871, 0xb02e4edc, 0x15a5ded2, 0x20486881, + 0x85c3f88f, 0x4b930427, 0xee189429, 0xdbf5227a, 0x7e7eb274, + 0x9c25dd6b, 0x39ae4d65, 0x0c43fb36, 0xa9c86b38, 0x67989790, + 0xc213079e, 0xf7feb1cd, 0x527521c3, 0xe83969b2, 0x4db2f9bc, + 0x785f4fef, 0xddd4dfe1, 0x13842349, 0xb60fb347, 0x83e20514, + 0x2669951a, 0xc432fa05, 0x61b96a0b, 0x5454dc58, 0xf1df4c56, + 0x3f8fb0fe, 0x9a0420f0, 0xafe996a3, 0x0a6206ad, 0xbb2d9bf9, + 0x1ea60bf7, 0x2b4bbda4, 0x8ec02daa, 0x4090d102, 0xe51b410c, + 0xd0f6f75f, 0x757d6751, 0x9726084e, 0x32ad9840, 0x07402e13, + 0xa2cbbe1d, 0x6c9b42b5, 0xc910d2bb, 0xfcfd64e8, 0x5976f4e6, + 0xe33abc97, 0x46b12c99, 0x735c9aca, 0xd6d70ac4, 0x1887f66c, + 0xbd0c6662, 0x88e1d031, 0x2d6a403f, 0xcf312f20, 0x6ababf2e, + 0x5f57097d, 0xfadc9973, 0x348c65db, 0x9107f5d5, 0xa4ea4386, + 0x0161d388, 0x0b03d525, 0xae88452b, 0x9b65f378, 0x3eee6376, + 0xf0be9fde, 0x55350fd0, 0x60d8b983, 0xc553298d, 0x27084692, + 0x8283d69c, 0xb76e60cf, 0x12e5f0c1, 0xdcb50c69, 0x793e9c67, + 0x4cd32a34, 0xe958ba3a, 0x5314f24b, 0xf69f6245, 0xc372d416, + 0x66f94418, 0xa8a9b8b0, 0x0d2228be, 0x38cf9eed, 0x9d440ee3, + 0x7f1f61fc, 0xda94f1f2, 0xef7947a1, 0x4af2d7af, 0x84a22b07, + 0x2129bb09, 0x14c40d5a, 0xb14f9d54, 0xad2a31b3, 0x08a1a1bd, + 0x3d4c17ee, 0x98c787e0, 0x56977b48, 0xf31ceb46, 0xc6f15d15, + 0x637acd1b, 0x8121a204, 0x24aa320a, 0x11478459, 0xb4cc1457, + 0x7a9ce8ff, 0xdf1778f1, 0xeafacea2, 0x4f715eac, 0xf53d16dd, + 0x50b686d3, 0x655b3080, 0xc0d0a08e, 0x0e805c26, 0xab0bcc28, + 0x9ee67a7b, 0x3b6dea75, 0xd936856a, 0x7cbd1564, 0x4950a337, + 0xecdb3339, 0x228bcf91, 0x87005f9f, 0xb2ede9cc, 0x176679c2, + 0x1d047f6f, 0xb88fef61, 0x8d625932, 0x28e9c93c, 0xe6b93594, + 0x4332a59a, 0x76df13c9, 0xd35483c7, 0x310fecd8, 0x94847cd6, + 0xa169ca85, 0x04e25a8b, 0xcab2a623, 0x6f39362d, 0x5ad4807e, + 0xff5f1070, 0x45135801, 0xe098c80f, 0xd5757e5c, 0x70feee52, + 0xbeae12fa, 0x1b2582f4, 0x2ec834a7, 0x8b43a4a9, 0x6918cbb6, + 0xcc935bb8, 0xf97eedeb, 0x5cf57de5, 0x92a5814d, 0x372e1143, + 0x02c3a710, 0xa748371e, 0x1607aa4a, 0xb38c3a44, 0x86618c17, + 0x23ea1c19, 0xedbae0b1, 0x483170bf, 0x7ddcc6ec, 0xd85756e2, + 0x3a0c39fd, 0x9f87a9f3, 0xaa6a1fa0, 0x0fe18fae, 0xc1b17306, + 0x643ae308, 0x51d7555b, 0xf45cc555, 0x4e108d24, 0xeb9b1d2a, + 0xde76ab79, 0x7bfd3b77, 0xb5adc7df, 0x102657d1, 0x25cbe182, + 0x8040718c, 0x621b1e93, 0xc7908e9d, 0xf27d38ce, 0x57f6a8c0, + 0x99a65468, 0x3c2dc466, 0x09c07235, 0xac4be23b, 0xa629e496, + 0x03a27498, 0x364fc2cb, 0x93c452c5, 0x5d94ae6d, 0xf81f3e63, + 0xcdf28830, 0x6879183e, 0x8a227721, 0x2fa9e72f, 0x1a44517c, + 0xbfcfc172, 0x719f3dda, 0xd414add4, 0xe1f91b87, 0x44728b89, + 0xfe3ec3f8, 0x5bb553f6, 0x6e58e5a5, 0xcbd375ab, 0x05838903, + 0xa008190d, 0x95e5af5e, 0x306e3f50, 0xd235504f, 0x77bec041, + 0x42537612, 0xe7d8e61c, 0x29881ab4, 0x8c038aba, 0xb9ee3ce9, + 0x1c65ace7}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0x0e908ba500000000, 0x5d26669000000000, + 0x53b6ed3500000000, 0xfb4abdfb00000000, 0xf5da365e00000000, + 0xa66cdb6b00000000, 0xa8fc50ce00000000, 0xb7930b2c00000000, + 0xb903808900000000, 0xeab56dbc00000000, 0xe425e61900000000, + 0x4cd9b6d700000000, 0x42493d7200000000, 0x11ffd04700000000, + 0x1f6f5be200000000, 0x6e27175800000000, 0x60b79cfd00000000, + 0x330171c800000000, 0x3d91fa6d00000000, 0x956daaa300000000, + 0x9bfd210600000000, 0xc84bcc3300000000, 0xc6db479600000000, + 0xd9b41c7400000000, 0xd72497d100000000, 0x84927ae400000000, + 0x8a02f14100000000, 0x22fea18f00000000, 0x2c6e2a2a00000000, + 0x7fd8c71f00000000, 0x71484cba00000000, 0xdc4e2eb000000000, + 0xd2dea51500000000, 0x8168482000000000, 0x8ff8c38500000000, + 0x2704934b00000000, 0x299418ee00000000, 0x7a22f5db00000000, + 0x74b27e7e00000000, 0x6bdd259c00000000, 0x654dae3900000000, + 0x36fb430c00000000, 0x386bc8a900000000, 0x9097986700000000, + 0x9e0713c200000000, 0xcdb1fef700000000, 0xc321755200000000, + 0xb26939e800000000, 0xbcf9b24d00000000, 0xef4f5f7800000000, + 0xe1dfd4dd00000000, 0x4923841300000000, 0x47b30fb600000000, + 0x1405e28300000000, 0x1a95692600000000, 0x05fa32c400000000, + 0x0b6ab96100000000, 0x58dc545400000000, 0x564cdff100000000, + 0xfeb08f3f00000000, 0xf020049a00000000, 0xa396e9af00000000, + 0xad06620a00000000, 0xf99b2dbb00000000, 0xf70ba61e00000000, + 0xa4bd4b2b00000000, 0xaa2dc08e00000000, 0x02d1904000000000, + 0x0c411be500000000, 0x5ff7f6d000000000, 0x51677d7500000000, + 0x4e08269700000000, 0x4098ad3200000000, 0x132e400700000000, + 0x1dbecba200000000, 0xb5429b6c00000000, 0xbbd210c900000000, + 0xe864fdfc00000000, 0xe6f4765900000000, 0x97bc3ae300000000, + 0x992cb14600000000, 0xca9a5c7300000000, 0xc40ad7d600000000, + 0x6cf6871800000000, 0x62660cbd00000000, 0x31d0e18800000000, + 0x3f406a2d00000000, 0x202f31cf00000000, 0x2ebfba6a00000000, + 0x7d09575f00000000, 0x7399dcfa00000000, 0xdb658c3400000000, + 0xd5f5079100000000, 0x8643eaa400000000, 0x88d3610100000000, + 0x25d5030b00000000, 0x2b4588ae00000000, 0x78f3659b00000000, + 0x7663ee3e00000000, 0xde9fbef000000000, 0xd00f355500000000, + 0x83b9d86000000000, 0x8d2953c500000000, 0x9246082700000000, + 0x9cd6838200000000, 0xcf606eb700000000, 0xc1f0e51200000000, + 0x690cb5dc00000000, 0x679c3e7900000000, 0x342ad34c00000000, + 0x3aba58e900000000, 0x4bf2145300000000, 0x45629ff600000000, + 0x16d472c300000000, 0x1844f96600000000, 0xb0b8a9a800000000, + 0xbe28220d00000000, 0xed9ecf3800000000, 0xe30e449d00000000, + 0xfc611f7f00000000, 0xf2f194da00000000, 0xa14779ef00000000, + 0xafd7f24a00000000, 0x072ba28400000000, 0x09bb292100000000, + 0x5a0dc41400000000, 0x549d4fb100000000, 0xb3312aad00000000, + 0xbda1a10800000000, 0xee174c3d00000000, 0xe087c79800000000, + 0x487b975600000000, 0x46eb1cf300000000, 0x155df1c600000000, + 0x1bcd7a6300000000, 0x04a2218100000000, 0x0a32aa2400000000, + 0x5984471100000000, 0x5714ccb400000000, 0xffe89c7a00000000, + 0xf17817df00000000, 0xa2cefaea00000000, 0xac5e714f00000000, + 0xdd163df500000000, 0xd386b65000000000, 0x80305b6500000000, + 0x8ea0d0c000000000, 0x265c800e00000000, 0x28cc0bab00000000, + 0x7b7ae69e00000000, 0x75ea6d3b00000000, 0x6a8536d900000000, + 0x6415bd7c00000000, 0x37a3504900000000, 0x3933dbec00000000, + 0x91cf8b2200000000, 0x9f5f008700000000, 0xcce9edb200000000, + 0xc279661700000000, 0x6f7f041d00000000, 0x61ef8fb800000000, + 0x3259628d00000000, 0x3cc9e92800000000, 0x9435b9e600000000, + 0x9aa5324300000000, 0xc913df7600000000, 0xc78354d300000000, + 0xd8ec0f3100000000, 0xd67c849400000000, 0x85ca69a100000000, + 0x8b5ae20400000000, 0x23a6b2ca00000000, 0x2d36396f00000000, + 0x7e80d45a00000000, 0x70105fff00000000, 0x0158134500000000, + 0x0fc898e000000000, 0x5c7e75d500000000, 0x52eefe7000000000, + 0xfa12aebe00000000, 0xf482251b00000000, 0xa734c82e00000000, + 0xa9a4438b00000000, 0xb6cb186900000000, 0xb85b93cc00000000, + 0xebed7ef900000000, 0xe57df55c00000000, 0x4d81a59200000000, + 0x43112e3700000000, 0x10a7c30200000000, 0x1e3748a700000000, + 0x4aaa071600000000, 0x443a8cb300000000, 0x178c618600000000, + 0x191cea2300000000, 0xb1e0baed00000000, 0xbf70314800000000, + 0xecc6dc7d00000000, 0xe25657d800000000, 0xfd390c3a00000000, + 0xf3a9879f00000000, 0xa01f6aaa00000000, 0xae8fe10f00000000, + 0x0673b1c100000000, 0x08e33a6400000000, 0x5b55d75100000000, + 0x55c55cf400000000, 0x248d104e00000000, 0x2a1d9beb00000000, + 0x79ab76de00000000, 0x773bfd7b00000000, 0xdfc7adb500000000, + 0xd157261000000000, 0x82e1cb2500000000, 0x8c71408000000000, + 0x931e1b6200000000, 0x9d8e90c700000000, 0xce387df200000000, + 0xc0a8f65700000000, 0x6854a69900000000, 0x66c42d3c00000000, + 0x3572c00900000000, 0x3be24bac00000000, 0x96e429a600000000, + 0x9874a20300000000, 0xcbc24f3600000000, 0xc552c49300000000, + 0x6dae945d00000000, 0x633e1ff800000000, 0x3088f2cd00000000, + 0x3e18796800000000, 0x2177228a00000000, 0x2fe7a92f00000000, + 0x7c51441a00000000, 0x72c1cfbf00000000, 0xda3d9f7100000000, + 0xd4ad14d400000000, 0x871bf9e100000000, 0x898b724400000000, + 0xf8c33efe00000000, 0xf653b55b00000000, 0xa5e5586e00000000, + 0xab75d3cb00000000, 0x0389830500000000, 0x0d1908a000000000, + 0x5eafe59500000000, 0x503f6e3000000000, 0x4f5035d200000000, + 0x41c0be7700000000, 0x1276534200000000, 0x1ce6d8e700000000, + 0xb41a882900000000, 0xba8a038c00000000, 0xe93ceeb900000000, + 0xe7ac651c00000000}, + {0x0000000000000000, 0x97a61de700000000, 0x6f4b4a1500000000, + 0xf8ed57f200000000, 0xde96942a00000000, 0x493089cd00000000, + 0xb1ddde3f00000000, 0x267bc3d800000000, 0xbc2d295500000000, + 0x2b8b34b200000000, 0xd366634000000000, 0x44c07ea700000000, + 0x62bbbd7f00000000, 0xf51da09800000000, 0x0df0f76a00000000, + 0x9a56ea8d00000000, 0x785b52aa00000000, 0xeffd4f4d00000000, + 0x171018bf00000000, 0x80b6055800000000, 0xa6cdc68000000000, + 0x316bdb6700000000, 0xc9868c9500000000, 0x5e20917200000000, + 0xc4767bff00000000, 0x53d0661800000000, 0xab3d31ea00000000, + 0x3c9b2c0d00000000, 0x1ae0efd500000000, 0x8d46f23200000000, + 0x75aba5c000000000, 0xe20db82700000000, 0xb1b0d58f00000000, + 0x2616c86800000000, 0xdefb9f9a00000000, 0x495d827d00000000, + 0x6f2641a500000000, 0xf8805c4200000000, 0x006d0bb000000000, + 0x97cb165700000000, 0x0d9dfcda00000000, 0x9a3be13d00000000, + 0x62d6b6cf00000000, 0xf570ab2800000000, 0xd30b68f000000000, + 0x44ad751700000000, 0xbc4022e500000000, 0x2be63f0200000000, + 0xc9eb872500000000, 0x5e4d9ac200000000, 0xa6a0cd3000000000, + 0x3106d0d700000000, 0x177d130f00000000, 0x80db0ee800000000, + 0x7836591a00000000, 0xef9044fd00000000, 0x75c6ae7000000000, + 0xe260b39700000000, 0x1a8de46500000000, 0x8d2bf98200000000, + 0xab503a5a00000000, 0x3cf627bd00000000, 0xc41b704f00000000, + 0x53bd6da800000000, 0x2367dac400000000, 0xb4c1c72300000000, + 0x4c2c90d100000000, 0xdb8a8d3600000000, 0xfdf14eee00000000, + 0x6a57530900000000, 0x92ba04fb00000000, 0x051c191c00000000, + 0x9f4af39100000000, 0x08ecee7600000000, 0xf001b98400000000, + 0x67a7a46300000000, 0x41dc67bb00000000, 0xd67a7a5c00000000, + 0x2e972dae00000000, 0xb931304900000000, 0x5b3c886e00000000, + 0xcc9a958900000000, 0x3477c27b00000000, 0xa3d1df9c00000000, + 0x85aa1c4400000000, 0x120c01a300000000, 0xeae1565100000000, + 0x7d474bb600000000, 0xe711a13b00000000, 0x70b7bcdc00000000, + 0x885aeb2e00000000, 0x1ffcf6c900000000, 0x3987351100000000, + 0xae2128f600000000, 0x56cc7f0400000000, 0xc16a62e300000000, + 0x92d70f4b00000000, 0x057112ac00000000, 0xfd9c455e00000000, + 0x6a3a58b900000000, 0x4c419b6100000000, 0xdbe7868600000000, + 0x230ad17400000000, 0xb4accc9300000000, 0x2efa261e00000000, + 0xb95c3bf900000000, 0x41b16c0b00000000, 0xd61771ec00000000, + 0xf06cb23400000000, 0x67caafd300000000, 0x9f27f82100000000, + 0x0881e5c600000000, 0xea8c5de100000000, 0x7d2a400600000000, + 0x85c717f400000000, 0x12610a1300000000, 0x341ac9cb00000000, + 0xa3bcd42c00000000, 0x5b5183de00000000, 0xccf79e3900000000, + 0x56a174b400000000, 0xc107695300000000, 0x39ea3ea100000000, + 0xae4c234600000000, 0x8837e09e00000000, 0x1f91fd7900000000, + 0xe77caa8b00000000, 0x70dab76c00000000, 0x07c8c55200000000, + 0x906ed8b500000000, 0x68838f4700000000, 0xff2592a000000000, + 0xd95e517800000000, 0x4ef84c9f00000000, 0xb6151b6d00000000, + 0x21b3068a00000000, 0xbbe5ec0700000000, 0x2c43f1e000000000, + 0xd4aea61200000000, 0x4308bbf500000000, 0x6573782d00000000, + 0xf2d565ca00000000, 0x0a38323800000000, 0x9d9e2fdf00000000, + 0x7f9397f800000000, 0xe8358a1f00000000, 0x10d8dded00000000, + 0x877ec00a00000000, 0xa10503d200000000, 0x36a31e3500000000, + 0xce4e49c700000000, 0x59e8542000000000, 0xc3bebead00000000, + 0x5418a34a00000000, 0xacf5f4b800000000, 0x3b53e95f00000000, + 0x1d282a8700000000, 0x8a8e376000000000, 0x7263609200000000, + 0xe5c57d7500000000, 0xb67810dd00000000, 0x21de0d3a00000000, + 0xd9335ac800000000, 0x4e95472f00000000, 0x68ee84f700000000, + 0xff48991000000000, 0x07a5cee200000000, 0x9003d30500000000, + 0x0a55398800000000, 0x9df3246f00000000, 0x651e739d00000000, + 0xf2b86e7a00000000, 0xd4c3ada200000000, 0x4365b04500000000, + 0xbb88e7b700000000, 0x2c2efa5000000000, 0xce23427700000000, + 0x59855f9000000000, 0xa168086200000000, 0x36ce158500000000, + 0x10b5d65d00000000, 0x8713cbba00000000, 0x7ffe9c4800000000, + 0xe85881af00000000, 0x720e6b2200000000, 0xe5a876c500000000, + 0x1d45213700000000, 0x8ae33cd000000000, 0xac98ff0800000000, + 0x3b3ee2ef00000000, 0xc3d3b51d00000000, 0x5475a8fa00000000, + 0x24af1f9600000000, 0xb309027100000000, 0x4be4558300000000, + 0xdc42486400000000, 0xfa398bbc00000000, 0x6d9f965b00000000, + 0x9572c1a900000000, 0x02d4dc4e00000000, 0x988236c300000000, + 0x0f242b2400000000, 0xf7c97cd600000000, 0x606f613100000000, + 0x4614a2e900000000, 0xd1b2bf0e00000000, 0x295fe8fc00000000, + 0xbef9f51b00000000, 0x5cf44d3c00000000, 0xcb5250db00000000, + 0x33bf072900000000, 0xa4191ace00000000, 0x8262d91600000000, + 0x15c4c4f100000000, 0xed29930300000000, 0x7a8f8ee400000000, + 0xe0d9646900000000, 0x777f798e00000000, 0x8f922e7c00000000, + 0x1834339b00000000, 0x3e4ff04300000000, 0xa9e9eda400000000, + 0x5104ba5600000000, 0xc6a2a7b100000000, 0x951fca1900000000, + 0x02b9d7fe00000000, 0xfa54800c00000000, 0x6df29deb00000000, + 0x4b895e3300000000, 0xdc2f43d400000000, 0x24c2142600000000, + 0xb36409c100000000, 0x2932e34c00000000, 0xbe94feab00000000, + 0x4679a95900000000, 0xd1dfb4be00000000, 0xf7a4776600000000, + 0x60026a8100000000, 0x98ef3d7300000000, 0x0f49209400000000, + 0xed4498b300000000, 0x7ae2855400000000, 0x820fd2a600000000, + 0x15a9cf4100000000, 0x33d20c9900000000, 0xa474117e00000000, + 0x5c99468c00000000, 0xcb3f5b6b00000000, 0x5169b1e600000000, + 0xc6cfac0100000000, 0x3e22fbf300000000, 0xa984e61400000000, + 0x8fff25cc00000000, 0x1859382b00000000, 0xe0b46fd900000000, + 0x7712723e00000000}, + {0x0000000000000000, 0x411b8c6e00000000, 0x823618dd00000000, + 0xc32d94b300000000, 0x456b416100000000, 0x0470cd0f00000000, + 0xc75d59bc00000000, 0x8646d5d200000000, 0x8ad682c200000000, + 0xcbcd0eac00000000, 0x08e09a1f00000000, 0x49fb167100000000, + 0xcfbdc3a300000000, 0x8ea64fcd00000000, 0x4d8bdb7e00000000, + 0x0c90571000000000, 0x55ab745e00000000, 0x14b0f83000000000, + 0xd79d6c8300000000, 0x9686e0ed00000000, 0x10c0353f00000000, + 0x51dbb95100000000, 0x92f62de200000000, 0xd3eda18c00000000, + 0xdf7df69c00000000, 0x9e667af200000000, 0x5d4bee4100000000, + 0x1c50622f00000000, 0x9a16b7fd00000000, 0xdb0d3b9300000000, + 0x1820af2000000000, 0x593b234e00000000, 0xaa56e9bc00000000, + 0xeb4d65d200000000, 0x2860f16100000000, 0x697b7d0f00000000, + 0xef3da8dd00000000, 0xae2624b300000000, 0x6d0bb00000000000, + 0x2c103c6e00000000, 0x20806b7e00000000, 0x619be71000000000, + 0xa2b673a300000000, 0xe3adffcd00000000, 0x65eb2a1f00000000, + 0x24f0a67100000000, 0xe7dd32c200000000, 0xa6c6beac00000000, + 0xfffd9de200000000, 0xbee6118c00000000, 0x7dcb853f00000000, + 0x3cd0095100000000, 0xba96dc8300000000, 0xfb8d50ed00000000, + 0x38a0c45e00000000, 0x79bb483000000000, 0x752b1f2000000000, + 0x3430934e00000000, 0xf71d07fd00000000, 0xb6068b9300000000, + 0x30405e4100000000, 0x715bd22f00000000, 0xb276469c00000000, + 0xf36dcaf200000000, 0x15aba3a200000000, 0x54b02fcc00000000, + 0x979dbb7f00000000, 0xd686371100000000, 0x50c0e2c300000000, + 0x11db6ead00000000, 0xd2f6fa1e00000000, 0x93ed767000000000, + 0x9f7d216000000000, 0xde66ad0e00000000, 0x1d4b39bd00000000, + 0x5c50b5d300000000, 0xda16600100000000, 0x9b0dec6f00000000, + 0x582078dc00000000, 0x193bf4b200000000, 0x4000d7fc00000000, + 0x011b5b9200000000, 0xc236cf2100000000, 0x832d434f00000000, + 0x056b969d00000000, 0x44701af300000000, 0x875d8e4000000000, + 0xc646022e00000000, 0xcad6553e00000000, 0x8bcdd95000000000, + 0x48e04de300000000, 0x09fbc18d00000000, 0x8fbd145f00000000, + 0xcea6983100000000, 0x0d8b0c8200000000, 0x4c9080ec00000000, + 0xbffd4a1e00000000, 0xfee6c67000000000, 0x3dcb52c300000000, + 0x7cd0dead00000000, 0xfa960b7f00000000, 0xbb8d871100000000, + 0x78a013a200000000, 0x39bb9fcc00000000, 0x352bc8dc00000000, + 0x743044b200000000, 0xb71dd00100000000, 0xf6065c6f00000000, + 0x704089bd00000000, 0x315b05d300000000, 0xf276916000000000, + 0xb36d1d0e00000000, 0xea563e4000000000, 0xab4db22e00000000, + 0x6860269d00000000, 0x297baaf300000000, 0xaf3d7f2100000000, + 0xee26f34f00000000, 0x2d0b67fc00000000, 0x6c10eb9200000000, + 0x6080bc8200000000, 0x219b30ec00000000, 0xe2b6a45f00000000, + 0xa3ad283100000000, 0x25ebfde300000000, 0x64f0718d00000000, + 0xa7dde53e00000000, 0xe6c6695000000000, 0x6b50369e00000000, + 0x2a4bbaf000000000, 0xe9662e4300000000, 0xa87da22d00000000, + 0x2e3b77ff00000000, 0x6f20fb9100000000, 0xac0d6f2200000000, + 0xed16e34c00000000, 0xe186b45c00000000, 0xa09d383200000000, + 0x63b0ac8100000000, 0x22ab20ef00000000, 0xa4edf53d00000000, + 0xe5f6795300000000, 0x26dbede000000000, 0x67c0618e00000000, + 0x3efb42c000000000, 0x7fe0ceae00000000, 0xbccd5a1d00000000, + 0xfdd6d67300000000, 0x7b9003a100000000, 0x3a8b8fcf00000000, + 0xf9a61b7c00000000, 0xb8bd971200000000, 0xb42dc00200000000, + 0xf5364c6c00000000, 0x361bd8df00000000, 0x770054b100000000, + 0xf146816300000000, 0xb05d0d0d00000000, 0x737099be00000000, + 0x326b15d000000000, 0xc106df2200000000, 0x801d534c00000000, + 0x4330c7ff00000000, 0x022b4b9100000000, 0x846d9e4300000000, + 0xc576122d00000000, 0x065b869e00000000, 0x47400af000000000, + 0x4bd05de000000000, 0x0acbd18e00000000, 0xc9e6453d00000000, + 0x88fdc95300000000, 0x0ebb1c8100000000, 0x4fa090ef00000000, + 0x8c8d045c00000000, 0xcd96883200000000, 0x94adab7c00000000, + 0xd5b6271200000000, 0x169bb3a100000000, 0x57803fcf00000000, + 0xd1c6ea1d00000000, 0x90dd667300000000, 0x53f0f2c000000000, + 0x12eb7eae00000000, 0x1e7b29be00000000, 0x5f60a5d000000000, + 0x9c4d316300000000, 0xdd56bd0d00000000, 0x5b1068df00000000, + 0x1a0be4b100000000, 0xd926700200000000, 0x983dfc6c00000000, + 0x7efb953c00000000, 0x3fe0195200000000, 0xfccd8de100000000, + 0xbdd6018f00000000, 0x3b90d45d00000000, 0x7a8b583300000000, + 0xb9a6cc8000000000, 0xf8bd40ee00000000, 0xf42d17fe00000000, + 0xb5369b9000000000, 0x761b0f2300000000, 0x3700834d00000000, + 0xb146569f00000000, 0xf05ddaf100000000, 0x33704e4200000000, + 0x726bc22c00000000, 0x2b50e16200000000, 0x6a4b6d0c00000000, + 0xa966f9bf00000000, 0xe87d75d100000000, 0x6e3ba00300000000, + 0x2f202c6d00000000, 0xec0db8de00000000, 0xad1634b000000000, + 0xa18663a000000000, 0xe09defce00000000, 0x23b07b7d00000000, + 0x62abf71300000000, 0xe4ed22c100000000, 0xa5f6aeaf00000000, + 0x66db3a1c00000000, 0x27c0b67200000000, 0xd4ad7c8000000000, + 0x95b6f0ee00000000, 0x569b645d00000000, 0x1780e83300000000, + 0x91c63de100000000, 0xd0ddb18f00000000, 0x13f0253c00000000, + 0x52eba95200000000, 0x5e7bfe4200000000, 0x1f60722c00000000, + 0xdc4de69f00000000, 0x9d566af100000000, 0x1b10bf2300000000, + 0x5a0b334d00000000, 0x9926a7fe00000000, 0xd83d2b9000000000, + 0x810608de00000000, 0xc01d84b000000000, 0x0330100300000000, + 0x422b9c6d00000000, 0xc46d49bf00000000, 0x8576c5d100000000, + 0x465b516200000000, 0x0740dd0c00000000, 0x0bd08a1c00000000, + 0x4acb067200000000, 0x89e692c100000000, 0xc8fd1eaf00000000, + 0x4ebbcb7d00000000, 0x0fa0471300000000, 0xcc8dd3a000000000, + 0x8d965fce00000000}, + {0x0000000000000000, 0x1dfdb50100000000, 0x3afa6b0300000000, + 0x2707de0200000000, 0x74f4d70600000000, 0x6909620700000000, + 0x4e0ebc0500000000, 0x53f3090400000000, 0xe8e8af0d00000000, + 0xf5151a0c00000000, 0xd212c40e00000000, 0xcfef710f00000000, + 0x9c1c780b00000000, 0x81e1cd0a00000000, 0xa6e6130800000000, + 0xbb1ba60900000000, 0xd0d15f1b00000000, 0xcd2cea1a00000000, + 0xea2b341800000000, 0xf7d6811900000000, 0xa425881d00000000, + 0xb9d83d1c00000000, 0x9edfe31e00000000, 0x8322561f00000000, + 0x3839f01600000000, 0x25c4451700000000, 0x02c39b1500000000, + 0x1f3e2e1400000000, 0x4ccd271000000000, 0x5130921100000000, + 0x76374c1300000000, 0x6bcaf91200000000, 0xa0a3bf3600000000, + 0xbd5e0a3700000000, 0x9a59d43500000000, 0x87a4613400000000, + 0xd457683000000000, 0xc9aadd3100000000, 0xeead033300000000, + 0xf350b63200000000, 0x484b103b00000000, 0x55b6a53a00000000, + 0x72b17b3800000000, 0x6f4cce3900000000, 0x3cbfc73d00000000, + 0x2142723c00000000, 0x0645ac3e00000000, 0x1bb8193f00000000, + 0x7072e02d00000000, 0x6d8f552c00000000, 0x4a888b2e00000000, + 0x57753e2f00000000, 0x0486372b00000000, 0x197b822a00000000, + 0x3e7c5c2800000000, 0x2381e92900000000, 0x989a4f2000000000, + 0x8567fa2100000000, 0xa260242300000000, 0xbf9d912200000000, + 0xec6e982600000000, 0xf1932d2700000000, 0xd694f32500000000, + 0xcb69462400000000, 0x40477f6d00000000, 0x5dbaca6c00000000, + 0x7abd146e00000000, 0x6740a16f00000000, 0x34b3a86b00000000, + 0x294e1d6a00000000, 0x0e49c36800000000, 0x13b4766900000000, + 0xa8afd06000000000, 0xb552656100000000, 0x9255bb6300000000, + 0x8fa80e6200000000, 0xdc5b076600000000, 0xc1a6b26700000000, + 0xe6a16c6500000000, 0xfb5cd96400000000, 0x9096207600000000, + 0x8d6b957700000000, 0xaa6c4b7500000000, 0xb791fe7400000000, + 0xe462f77000000000, 0xf99f427100000000, 0xde989c7300000000, + 0xc365297200000000, 0x787e8f7b00000000, 0x65833a7a00000000, + 0x4284e47800000000, 0x5f79517900000000, 0x0c8a587d00000000, + 0x1177ed7c00000000, 0x3670337e00000000, 0x2b8d867f00000000, + 0xe0e4c05b00000000, 0xfd19755a00000000, 0xda1eab5800000000, + 0xc7e31e5900000000, 0x9410175d00000000, 0x89eda25c00000000, + 0xaeea7c5e00000000, 0xb317c95f00000000, 0x080c6f5600000000, + 0x15f1da5700000000, 0x32f6045500000000, 0x2f0bb15400000000, + 0x7cf8b85000000000, 0x61050d5100000000, 0x4602d35300000000, + 0x5bff665200000000, 0x30359f4000000000, 0x2dc82a4100000000, + 0x0acff44300000000, 0x1732414200000000, 0x44c1484600000000, + 0x593cfd4700000000, 0x7e3b234500000000, 0x63c6964400000000, + 0xd8dd304d00000000, 0xc520854c00000000, 0xe2275b4e00000000, + 0xffdaee4f00000000, 0xac29e74b00000000, 0xb1d4524a00000000, + 0x96d38c4800000000, 0x8b2e394900000000, 0x808efeda00000000, + 0x9d734bdb00000000, 0xba7495d900000000, 0xa78920d800000000, + 0xf47a29dc00000000, 0xe9879cdd00000000, 0xce8042df00000000, + 0xd37df7de00000000, 0x686651d700000000, 0x759be4d600000000, + 0x529c3ad400000000, 0x4f618fd500000000, 0x1c9286d100000000, + 0x016f33d000000000, 0x2668edd200000000, 0x3b9558d300000000, + 0x505fa1c100000000, 0x4da214c000000000, 0x6aa5cac200000000, + 0x77587fc300000000, 0x24ab76c700000000, 0x3956c3c600000000, + 0x1e511dc400000000, 0x03aca8c500000000, 0xb8b70ecc00000000, + 0xa54abbcd00000000, 0x824d65cf00000000, 0x9fb0d0ce00000000, + 0xcc43d9ca00000000, 0xd1be6ccb00000000, 0xf6b9b2c900000000, + 0xeb4407c800000000, 0x202d41ec00000000, 0x3dd0f4ed00000000, + 0x1ad72aef00000000, 0x072a9fee00000000, 0x54d996ea00000000, + 0x492423eb00000000, 0x6e23fde900000000, 0x73de48e800000000, + 0xc8c5eee100000000, 0xd5385be000000000, 0xf23f85e200000000, + 0xefc230e300000000, 0xbc3139e700000000, 0xa1cc8ce600000000, + 0x86cb52e400000000, 0x9b36e7e500000000, 0xf0fc1ef700000000, + 0xed01abf600000000, 0xca0675f400000000, 0xd7fbc0f500000000, + 0x8408c9f100000000, 0x99f57cf000000000, 0xbef2a2f200000000, + 0xa30f17f300000000, 0x1814b1fa00000000, 0x05e904fb00000000, + 0x22eedaf900000000, 0x3f136ff800000000, 0x6ce066fc00000000, + 0x711dd3fd00000000, 0x561a0dff00000000, 0x4be7b8fe00000000, + 0xc0c981b700000000, 0xdd3434b600000000, 0xfa33eab400000000, + 0xe7ce5fb500000000, 0xb43d56b100000000, 0xa9c0e3b000000000, + 0x8ec73db200000000, 0x933a88b300000000, 0x28212eba00000000, + 0x35dc9bbb00000000, 0x12db45b900000000, 0x0f26f0b800000000, + 0x5cd5f9bc00000000, 0x41284cbd00000000, 0x662f92bf00000000, + 0x7bd227be00000000, 0x1018deac00000000, 0x0de56bad00000000, + 0x2ae2b5af00000000, 0x371f00ae00000000, 0x64ec09aa00000000, + 0x7911bcab00000000, 0x5e1662a900000000, 0x43ebd7a800000000, + 0xf8f071a100000000, 0xe50dc4a000000000, 0xc20a1aa200000000, + 0xdff7afa300000000, 0x8c04a6a700000000, 0x91f913a600000000, + 0xb6fecda400000000, 0xab0378a500000000, 0x606a3e8100000000, + 0x7d978b8000000000, 0x5a90558200000000, 0x476de08300000000, + 0x149ee98700000000, 0x09635c8600000000, 0x2e64828400000000, + 0x3399378500000000, 0x8882918c00000000, 0x957f248d00000000, + 0xb278fa8f00000000, 0xaf854f8e00000000, 0xfc76468a00000000, + 0xe18bf38b00000000, 0xc68c2d8900000000, 0xdb71988800000000, + 0xb0bb619a00000000, 0xad46d49b00000000, 0x8a410a9900000000, + 0x97bcbf9800000000, 0xc44fb69c00000000, 0xd9b2039d00000000, + 0xfeb5dd9f00000000, 0xe348689e00000000, 0x5853ce9700000000, + 0x45ae7b9600000000, 0x62a9a59400000000, 0x7f54109500000000, + 0x2ca7199100000000, 0x315aac9000000000, 0x165d729200000000, + 0x0ba0c79300000000}, + {0x0000000000000000, 0x24d9076300000000, 0x48b20fc600000000, + 0x6c6b08a500000000, 0xd1626e5700000000, 0xf5bb693400000000, + 0x99d0619100000000, 0xbd0966f200000000, 0xa2c5dcae00000000, + 0x861cdbcd00000000, 0xea77d36800000000, 0xceaed40b00000000, + 0x73a7b2f900000000, 0x577eb59a00000000, 0x3b15bd3f00000000, + 0x1fccba5c00000000, 0x058dc88600000000, 0x2154cfe500000000, + 0x4d3fc74000000000, 0x69e6c02300000000, 0xd4efa6d100000000, + 0xf036a1b200000000, 0x9c5da91700000000, 0xb884ae7400000000, + 0xa748142800000000, 0x8391134b00000000, 0xeffa1bee00000000, + 0xcb231c8d00000000, 0x762a7a7f00000000, 0x52f37d1c00000000, + 0x3e9875b900000000, 0x1a4172da00000000, 0x4b1ce0d600000000, + 0x6fc5e7b500000000, 0x03aeef1000000000, 0x2777e87300000000, + 0x9a7e8e8100000000, 0xbea789e200000000, 0xd2cc814700000000, + 0xf615862400000000, 0xe9d93c7800000000, 0xcd003b1b00000000, + 0xa16b33be00000000, 0x85b234dd00000000, 0x38bb522f00000000, + 0x1c62554c00000000, 0x70095de900000000, 0x54d05a8a00000000, + 0x4e91285000000000, 0x6a482f3300000000, 0x0623279600000000, + 0x22fa20f500000000, 0x9ff3460700000000, 0xbb2a416400000000, + 0xd74149c100000000, 0xf3984ea200000000, 0xec54f4fe00000000, + 0xc88df39d00000000, 0xa4e6fb3800000000, 0x803ffc5b00000000, + 0x3d369aa900000000, 0x19ef9dca00000000, 0x7584956f00000000, + 0x515d920c00000000, 0xd73eb17600000000, 0xf3e7b61500000000, + 0x9f8cbeb000000000, 0xbb55b9d300000000, 0x065cdf2100000000, + 0x2285d84200000000, 0x4eeed0e700000000, 0x6a37d78400000000, + 0x75fb6dd800000000, 0x51226abb00000000, 0x3d49621e00000000, + 0x1990657d00000000, 0xa499038f00000000, 0x804004ec00000000, + 0xec2b0c4900000000, 0xc8f20b2a00000000, 0xd2b379f000000000, + 0xf66a7e9300000000, 0x9a01763600000000, 0xbed8715500000000, + 0x03d117a700000000, 0x270810c400000000, 0x4b63186100000000, + 0x6fba1f0200000000, 0x7076a55e00000000, 0x54afa23d00000000, + 0x38c4aa9800000000, 0x1c1dadfb00000000, 0xa114cb0900000000, + 0x85cdcc6a00000000, 0xe9a6c4cf00000000, 0xcd7fc3ac00000000, + 0x9c2251a000000000, 0xb8fb56c300000000, 0xd4905e6600000000, + 0xf049590500000000, 0x4d403ff700000000, 0x6999389400000000, + 0x05f2303100000000, 0x212b375200000000, 0x3ee78d0e00000000, + 0x1a3e8a6d00000000, 0x765582c800000000, 0x528c85ab00000000, + 0xef85e35900000000, 0xcb5ce43a00000000, 0xa737ec9f00000000, + 0x83eeebfc00000000, 0x99af992600000000, 0xbd769e4500000000, + 0xd11d96e000000000, 0xf5c4918300000000, 0x48cdf77100000000, + 0x6c14f01200000000, 0x007ff8b700000000, 0x24a6ffd400000000, + 0x3b6a458800000000, 0x1fb342eb00000000, 0x73d84a4e00000000, + 0x57014d2d00000000, 0xea082bdf00000000, 0xced12cbc00000000, + 0xa2ba241900000000, 0x8663237a00000000, 0xae7d62ed00000000, + 0x8aa4658e00000000, 0xe6cf6d2b00000000, 0xc2166a4800000000, + 0x7f1f0cba00000000, 0x5bc60bd900000000, 0x37ad037c00000000, + 0x1374041f00000000, 0x0cb8be4300000000, 0x2861b92000000000, + 0x440ab18500000000, 0x60d3b6e600000000, 0xdddad01400000000, + 0xf903d77700000000, 0x9568dfd200000000, 0xb1b1d8b100000000, + 0xabf0aa6b00000000, 0x8f29ad0800000000, 0xe342a5ad00000000, + 0xc79ba2ce00000000, 0x7a92c43c00000000, 0x5e4bc35f00000000, + 0x3220cbfa00000000, 0x16f9cc9900000000, 0x093576c500000000, + 0x2dec71a600000000, 0x4187790300000000, 0x655e7e6000000000, + 0xd857189200000000, 0xfc8e1ff100000000, 0x90e5175400000000, + 0xb43c103700000000, 0xe561823b00000000, 0xc1b8855800000000, + 0xadd38dfd00000000, 0x890a8a9e00000000, 0x3403ec6c00000000, + 0x10daeb0f00000000, 0x7cb1e3aa00000000, 0x5868e4c900000000, + 0x47a45e9500000000, 0x637d59f600000000, 0x0f16515300000000, + 0x2bcf563000000000, 0x96c630c200000000, 0xb21f37a100000000, + 0xde743f0400000000, 0xfaad386700000000, 0xe0ec4abd00000000, + 0xc4354dde00000000, 0xa85e457b00000000, 0x8c87421800000000, + 0x318e24ea00000000, 0x1557238900000000, 0x793c2b2c00000000, + 0x5de52c4f00000000, 0x4229961300000000, 0x66f0917000000000, + 0x0a9b99d500000000, 0x2e429eb600000000, 0x934bf84400000000, + 0xb792ff2700000000, 0xdbf9f78200000000, 0xff20f0e100000000, + 0x7943d39b00000000, 0x5d9ad4f800000000, 0x31f1dc5d00000000, + 0x1528db3e00000000, 0xa821bdcc00000000, 0x8cf8baaf00000000, + 0xe093b20a00000000, 0xc44ab56900000000, 0xdb860f3500000000, + 0xff5f085600000000, 0x933400f300000000, 0xb7ed079000000000, + 0x0ae4616200000000, 0x2e3d660100000000, 0x42566ea400000000, + 0x668f69c700000000, 0x7cce1b1d00000000, 0x58171c7e00000000, + 0x347c14db00000000, 0x10a513b800000000, 0xadac754a00000000, + 0x8975722900000000, 0xe51e7a8c00000000, 0xc1c77def00000000, + 0xde0bc7b300000000, 0xfad2c0d000000000, 0x96b9c87500000000, + 0xb260cf1600000000, 0x0f69a9e400000000, 0x2bb0ae8700000000, + 0x47dba62200000000, 0x6302a14100000000, 0x325f334d00000000, + 0x1686342e00000000, 0x7aed3c8b00000000, 0x5e343be800000000, + 0xe33d5d1a00000000, 0xc7e45a7900000000, 0xab8f52dc00000000, + 0x8f5655bf00000000, 0x909aefe300000000, 0xb443e88000000000, + 0xd828e02500000000, 0xfcf1e74600000000, 0x41f881b400000000, + 0x652186d700000000, 0x094a8e7200000000, 0x2d93891100000000, + 0x37d2fbcb00000000, 0x130bfca800000000, 0x7f60f40d00000000, + 0x5bb9f36e00000000, 0xe6b0959c00000000, 0xc26992ff00000000, + 0xae029a5a00000000, 0x8adb9d3900000000, 0x9517276500000000, + 0xb1ce200600000000, 0xdda528a300000000, 0xf97c2fc000000000, + 0x4475493200000000, 0x60ac4e5100000000, 0x0cc746f400000000, + 0x281e419700000000}, + {0x0000000000000000, 0x08e3603c00000000, 0x10c6c17800000000, + 0x1825a14400000000, 0x208c83f100000000, 0x286fe3cd00000000, + 0x304a428900000000, 0x38a922b500000000, 0x011e763800000000, + 0x09fd160400000000, 0x11d8b74000000000, 0x193bd77c00000000, + 0x2192f5c900000000, 0x297195f500000000, 0x315434b100000000, + 0x39b7548d00000000, 0x023cec7000000000, 0x0adf8c4c00000000, + 0x12fa2d0800000000, 0x1a194d3400000000, 0x22b06f8100000000, + 0x2a530fbd00000000, 0x3276aef900000000, 0x3a95cec500000000, + 0x03229a4800000000, 0x0bc1fa7400000000, 0x13e45b3000000000, + 0x1b073b0c00000000, 0x23ae19b900000000, 0x2b4d798500000000, + 0x3368d8c100000000, 0x3b8bb8fd00000000, 0x0478d8e100000000, + 0x0c9bb8dd00000000, 0x14be199900000000, 0x1c5d79a500000000, + 0x24f45b1000000000, 0x2c173b2c00000000, 0x34329a6800000000, + 0x3cd1fa5400000000, 0x0566aed900000000, 0x0d85cee500000000, + 0x15a06fa100000000, 0x1d430f9d00000000, 0x25ea2d2800000000, + 0x2d094d1400000000, 0x352cec5000000000, 0x3dcf8c6c00000000, + 0x0644349100000000, 0x0ea754ad00000000, 0x1682f5e900000000, + 0x1e6195d500000000, 0x26c8b76000000000, 0x2e2bd75c00000000, + 0x360e761800000000, 0x3eed162400000000, 0x075a42a900000000, + 0x0fb9229500000000, 0x179c83d100000000, 0x1f7fe3ed00000000, + 0x27d6c15800000000, 0x2f35a16400000000, 0x3710002000000000, + 0x3ff3601c00000000, 0x49f6c11800000000, 0x4115a12400000000, + 0x5930006000000000, 0x51d3605c00000000, 0x697a42e900000000, + 0x619922d500000000, 0x79bc839100000000, 0x715fe3ad00000000, + 0x48e8b72000000000, 0x400bd71c00000000, 0x582e765800000000, + 0x50cd166400000000, 0x686434d100000000, 0x608754ed00000000, + 0x78a2f5a900000000, 0x7041959500000000, 0x4bca2d6800000000, + 0x43294d5400000000, 0x5b0cec1000000000, 0x53ef8c2c00000000, + 0x6b46ae9900000000, 0x63a5cea500000000, 0x7b806fe100000000, + 0x73630fdd00000000, 0x4ad45b5000000000, 0x42373b6c00000000, + 0x5a129a2800000000, 0x52f1fa1400000000, 0x6a58d8a100000000, + 0x62bbb89d00000000, 0x7a9e19d900000000, 0x727d79e500000000, + 0x4d8e19f900000000, 0x456d79c500000000, 0x5d48d88100000000, + 0x55abb8bd00000000, 0x6d029a0800000000, 0x65e1fa3400000000, + 0x7dc45b7000000000, 0x75273b4c00000000, 0x4c906fc100000000, + 0x44730ffd00000000, 0x5c56aeb900000000, 0x54b5ce8500000000, + 0x6c1cec3000000000, 0x64ff8c0c00000000, 0x7cda2d4800000000, + 0x74394d7400000000, 0x4fb2f58900000000, 0x475195b500000000, + 0x5f7434f100000000, 0x579754cd00000000, 0x6f3e767800000000, + 0x67dd164400000000, 0x7ff8b70000000000, 0x771bd73c00000000, + 0x4eac83b100000000, 0x464fe38d00000000, 0x5e6a42c900000000, + 0x568922f500000000, 0x6e20004000000000, 0x66c3607c00000000, + 0x7ee6c13800000000, 0x7605a10400000000, 0x92ec833100000000, + 0x9a0fe30d00000000, 0x822a424900000000, 0x8ac9227500000000, + 0xb26000c000000000, 0xba8360fc00000000, 0xa2a6c1b800000000, + 0xaa45a18400000000, 0x93f2f50900000000, 0x9b11953500000000, + 0x8334347100000000, 0x8bd7544d00000000, 0xb37e76f800000000, + 0xbb9d16c400000000, 0xa3b8b78000000000, 0xab5bd7bc00000000, + 0x90d06f4100000000, 0x98330f7d00000000, 0x8016ae3900000000, + 0x88f5ce0500000000, 0xb05cecb000000000, 0xb8bf8c8c00000000, + 0xa09a2dc800000000, 0xa8794df400000000, 0x91ce197900000000, + 0x992d794500000000, 0x8108d80100000000, 0x89ebb83d00000000, + 0xb1429a8800000000, 0xb9a1fab400000000, 0xa1845bf000000000, + 0xa9673bcc00000000, 0x96945bd000000000, 0x9e773bec00000000, + 0x86529aa800000000, 0x8eb1fa9400000000, 0xb618d82100000000, + 0xbefbb81d00000000, 0xa6de195900000000, 0xae3d796500000000, + 0x978a2de800000000, 0x9f694dd400000000, 0x874cec9000000000, + 0x8faf8cac00000000, 0xb706ae1900000000, 0xbfe5ce2500000000, + 0xa7c06f6100000000, 0xaf230f5d00000000, 0x94a8b7a000000000, + 0x9c4bd79c00000000, 0x846e76d800000000, 0x8c8d16e400000000, + 0xb424345100000000, 0xbcc7546d00000000, 0xa4e2f52900000000, + 0xac01951500000000, 0x95b6c19800000000, 0x9d55a1a400000000, + 0x857000e000000000, 0x8d9360dc00000000, 0xb53a426900000000, + 0xbdd9225500000000, 0xa5fc831100000000, 0xad1fe32d00000000, + 0xdb1a422900000000, 0xd3f9221500000000, 0xcbdc835100000000, + 0xc33fe36d00000000, 0xfb96c1d800000000, 0xf375a1e400000000, + 0xeb5000a000000000, 0xe3b3609c00000000, 0xda04341100000000, + 0xd2e7542d00000000, 0xcac2f56900000000, 0xc221955500000000, + 0xfa88b7e000000000, 0xf26bd7dc00000000, 0xea4e769800000000, + 0xe2ad16a400000000, 0xd926ae5900000000, 0xd1c5ce6500000000, + 0xc9e06f2100000000, 0xc1030f1d00000000, 0xf9aa2da800000000, + 0xf1494d9400000000, 0xe96cecd000000000, 0xe18f8cec00000000, + 0xd838d86100000000, 0xd0dbb85d00000000, 0xc8fe191900000000, + 0xc01d792500000000, 0xf8b45b9000000000, 0xf0573bac00000000, + 0xe8729ae800000000, 0xe091fad400000000, 0xdf629ac800000000, + 0xd781faf400000000, 0xcfa45bb000000000, 0xc7473b8c00000000, + 0xffee193900000000, 0xf70d790500000000, 0xef28d84100000000, + 0xe7cbb87d00000000, 0xde7cecf000000000, 0xd69f8ccc00000000, + 0xceba2d8800000000, 0xc6594db400000000, 0xfef06f0100000000, + 0xf6130f3d00000000, 0xee36ae7900000000, 0xe6d5ce4500000000, + 0xdd5e76b800000000, 0xd5bd168400000000, 0xcd98b7c000000000, + 0xc57bd7fc00000000, 0xfdd2f54900000000, 0xf531957500000000, + 0xed14343100000000, 0xe5f7540d00000000, 0xdc40008000000000, + 0xd4a360bc00000000, 0xcc86c1f800000000, 0xc465a1c400000000, + 0xfccc837100000000, 0xf42fe34d00000000, 0xec0a420900000000, + 0xe4e9223500000000}, + {0x0000000000000000, 0xd1e8e70e00000000, 0xa2d1cf1d00000000, + 0x7339281300000000, 0x44a39f3b00000000, 0x954b783500000000, + 0xe672502600000000, 0x379ab72800000000, 0x88463f7700000000, + 0x59aed87900000000, 0x2a97f06a00000000, 0xfb7f176400000000, + 0xcce5a04c00000000, 0x1d0d474200000000, 0x6e346f5100000000, + 0xbfdc885f00000000, 0x108d7eee00000000, 0xc16599e000000000, + 0xb25cb1f300000000, 0x63b456fd00000000, 0x542ee1d500000000, + 0x85c606db00000000, 0xf6ff2ec800000000, 0x2717c9c600000000, + 0x98cb419900000000, 0x4923a69700000000, 0x3a1a8e8400000000, + 0xebf2698a00000000, 0xdc68dea200000000, 0x0d8039ac00000000, + 0x7eb911bf00000000, 0xaf51f6b100000000, 0x611c8c0700000000, + 0xb0f46b0900000000, 0xc3cd431a00000000, 0x1225a41400000000, + 0x25bf133c00000000, 0xf457f43200000000, 0x876edc2100000000, + 0x56863b2f00000000, 0xe95ab37000000000, 0x38b2547e00000000, + 0x4b8b7c6d00000000, 0x9a639b6300000000, 0xadf92c4b00000000, + 0x7c11cb4500000000, 0x0f28e35600000000, 0xdec0045800000000, + 0x7191f2e900000000, 0xa07915e700000000, 0xd3403df400000000, + 0x02a8dafa00000000, 0x35326dd200000000, 0xe4da8adc00000000, + 0x97e3a2cf00000000, 0x460b45c100000000, 0xf9d7cd9e00000000, + 0x283f2a9000000000, 0x5b06028300000000, 0x8aeee58d00000000, + 0xbd7452a500000000, 0x6c9cb5ab00000000, 0x1fa59db800000000, + 0xce4d7ab600000000, 0xc238180f00000000, 0x13d0ff0100000000, + 0x60e9d71200000000, 0xb101301c00000000, 0x869b873400000000, + 0x5773603a00000000, 0x244a482900000000, 0xf5a2af2700000000, + 0x4a7e277800000000, 0x9b96c07600000000, 0xe8afe86500000000, + 0x39470f6b00000000, 0x0eddb84300000000, 0xdf355f4d00000000, + 0xac0c775e00000000, 0x7de4905000000000, 0xd2b566e100000000, + 0x035d81ef00000000, 0x7064a9fc00000000, 0xa18c4ef200000000, + 0x9616f9da00000000, 0x47fe1ed400000000, 0x34c736c700000000, + 0xe52fd1c900000000, 0x5af3599600000000, 0x8b1bbe9800000000, + 0xf822968b00000000, 0x29ca718500000000, 0x1e50c6ad00000000, + 0xcfb821a300000000, 0xbc8109b000000000, 0x6d69eebe00000000, + 0xa324940800000000, 0x72cc730600000000, 0x01f55b1500000000, + 0xd01dbc1b00000000, 0xe7870b3300000000, 0x366fec3d00000000, + 0x4556c42e00000000, 0x94be232000000000, 0x2b62ab7f00000000, + 0xfa8a4c7100000000, 0x89b3646200000000, 0x585b836c00000000, + 0x6fc1344400000000, 0xbe29d34a00000000, 0xcd10fb5900000000, + 0x1cf81c5700000000, 0xb3a9eae600000000, 0x62410de800000000, + 0x117825fb00000000, 0xc090c2f500000000, 0xf70a75dd00000000, + 0x26e292d300000000, 0x55dbbac000000000, 0x84335dce00000000, + 0x3befd59100000000, 0xea07329f00000000, 0x993e1a8c00000000, + 0x48d6fd8200000000, 0x7f4c4aaa00000000, 0xaea4ada400000000, + 0xdd9d85b700000000, 0x0c7562b900000000, 0x8471301e00000000, + 0x5599d71000000000, 0x26a0ff0300000000, 0xf748180d00000000, + 0xc0d2af2500000000, 0x113a482b00000000, 0x6203603800000000, + 0xb3eb873600000000, 0x0c370f6900000000, 0xdddfe86700000000, + 0xaee6c07400000000, 0x7f0e277a00000000, 0x4894905200000000, + 0x997c775c00000000, 0xea455f4f00000000, 0x3badb84100000000, + 0x94fc4ef000000000, 0x4514a9fe00000000, 0x362d81ed00000000, + 0xe7c566e300000000, 0xd05fd1cb00000000, 0x01b736c500000000, + 0x728e1ed600000000, 0xa366f9d800000000, 0x1cba718700000000, + 0xcd52968900000000, 0xbe6bbe9a00000000, 0x6f83599400000000, + 0x5819eebc00000000, 0x89f109b200000000, 0xfac821a100000000, + 0x2b20c6af00000000, 0xe56dbc1900000000, 0x34855b1700000000, + 0x47bc730400000000, 0x9654940a00000000, 0xa1ce232200000000, + 0x7026c42c00000000, 0x031fec3f00000000, 0xd2f70b3100000000, + 0x6d2b836e00000000, 0xbcc3646000000000, 0xcffa4c7300000000, + 0x1e12ab7d00000000, 0x29881c5500000000, 0xf860fb5b00000000, + 0x8b59d34800000000, 0x5ab1344600000000, 0xf5e0c2f700000000, + 0x240825f900000000, 0x57310dea00000000, 0x86d9eae400000000, + 0xb1435dcc00000000, 0x60abbac200000000, 0x139292d100000000, + 0xc27a75df00000000, 0x7da6fd8000000000, 0xac4e1a8e00000000, + 0xdf77329d00000000, 0x0e9fd59300000000, 0x390562bb00000000, + 0xe8ed85b500000000, 0x9bd4ada600000000, 0x4a3c4aa800000000, + 0x4649281100000000, 0x97a1cf1f00000000, 0xe498e70c00000000, + 0x3570000200000000, 0x02eab72a00000000, 0xd302502400000000, + 0xa03b783700000000, 0x71d39f3900000000, 0xce0f176600000000, + 0x1fe7f06800000000, 0x6cded87b00000000, 0xbd363f7500000000, + 0x8aac885d00000000, 0x5b446f5300000000, 0x287d474000000000, + 0xf995a04e00000000, 0x56c456ff00000000, 0x872cb1f100000000, + 0xf41599e200000000, 0x25fd7eec00000000, 0x1267c9c400000000, + 0xc38f2eca00000000, 0xb0b606d900000000, 0x615ee1d700000000, + 0xde82698800000000, 0x0f6a8e8600000000, 0x7c53a69500000000, + 0xadbb419b00000000, 0x9a21f6b300000000, 0x4bc911bd00000000, + 0x38f039ae00000000, 0xe918dea000000000, 0x2755a41600000000, + 0xf6bd431800000000, 0x85846b0b00000000, 0x546c8c0500000000, + 0x63f63b2d00000000, 0xb21edc2300000000, 0xc127f43000000000, + 0x10cf133e00000000, 0xaf139b6100000000, 0x7efb7c6f00000000, + 0x0dc2547c00000000, 0xdc2ab37200000000, 0xebb0045a00000000, + 0x3a58e35400000000, 0x4961cb4700000000, 0x98892c4900000000, + 0x37d8daf800000000, 0xe6303df600000000, 0x950915e500000000, + 0x44e1f2eb00000000, 0x737b45c300000000, 0xa293a2cd00000000, + 0xd1aa8ade00000000, 0x00426dd000000000, 0xbf9ee58f00000000, + 0x6e76028100000000, 0x1d4f2a9200000000, 0xcca7cd9c00000000, + 0xfb3d7ab400000000, 0x2ad59dba00000000, 0x59ecb5a900000000, + 0x880452a700000000}, + {0x0000000000000000, 0xaa05daf100000000, 0x150dc53800000000, + 0xbf081fc900000000, 0x2a1a8a7100000000, 0x801f508000000000, + 0x3f174f4900000000, 0x951295b800000000, 0x543414e300000000, + 0xfe31ce1200000000, 0x4139d1db00000000, 0xeb3c0b2a00000000, + 0x7e2e9e9200000000, 0xd42b446300000000, 0x6b235baa00000000, + 0xc126815b00000000, 0xe96e591d00000000, 0x436b83ec00000000, + 0xfc639c2500000000, 0x566646d400000000, 0xc374d36c00000000, + 0x6971099d00000000, 0xd679165400000000, 0x7c7ccca500000000, + 0xbd5a4dfe00000000, 0x175f970f00000000, 0xa85788c600000000, + 0x0252523700000000, 0x9740c78f00000000, 0x3d451d7e00000000, + 0x824d02b700000000, 0x2848d84600000000, 0xd2ddb23a00000000, + 0x78d868cb00000000, 0xc7d0770200000000, 0x6dd5adf300000000, + 0xf8c7384b00000000, 0x52c2e2ba00000000, 0xedcafd7300000000, + 0x47cf278200000000, 0x86e9a6d900000000, 0x2cec7c2800000000, + 0x93e463e100000000, 0x39e1b91000000000, 0xacf32ca800000000, + 0x06f6f65900000000, 0xb9fee99000000000, 0x13fb336100000000, + 0x3bb3eb2700000000, 0x91b631d600000000, 0x2ebe2e1f00000000, + 0x84bbf4ee00000000, 0x11a9615600000000, 0xbbacbba700000000, + 0x04a4a46e00000000, 0xaea17e9f00000000, 0x6f87ffc400000000, + 0xc582253500000000, 0x7a8a3afc00000000, 0xd08fe00d00000000, + 0x459d75b500000000, 0xef98af4400000000, 0x5090b08d00000000, + 0xfa956a7c00000000, 0xa4bb657500000000, 0x0ebebf8400000000, + 0xb1b6a04d00000000, 0x1bb37abc00000000, 0x8ea1ef0400000000, + 0x24a435f500000000, 0x9bac2a3c00000000, 0x31a9f0cd00000000, + 0xf08f719600000000, 0x5a8aab6700000000, 0xe582b4ae00000000, + 0x4f876e5f00000000, 0xda95fbe700000000, 0x7090211600000000, + 0xcf983edf00000000, 0x659de42e00000000, 0x4dd53c6800000000, + 0xe7d0e69900000000, 0x58d8f95000000000, 0xf2dd23a100000000, + 0x67cfb61900000000, 0xcdca6ce800000000, 0x72c2732100000000, + 0xd8c7a9d000000000, 0x19e1288b00000000, 0xb3e4f27a00000000, + 0x0cecedb300000000, 0xa6e9374200000000, 0x33fba2fa00000000, + 0x99fe780b00000000, 0x26f667c200000000, 0x8cf3bd3300000000, + 0x7666d74f00000000, 0xdc630dbe00000000, 0x636b127700000000, + 0xc96ec88600000000, 0x5c7c5d3e00000000, 0xf67987cf00000000, + 0x4971980600000000, 0xe37442f700000000, 0x2252c3ac00000000, + 0x8857195d00000000, 0x375f069400000000, 0x9d5adc6500000000, + 0x084849dd00000000, 0xa24d932c00000000, 0x1d458ce500000000, + 0xb740561400000000, 0x9f088e5200000000, 0x350d54a300000000, + 0x8a054b6a00000000, 0x2000919b00000000, 0xb512042300000000, + 0x1f17ded200000000, 0xa01fc11b00000000, 0x0a1a1bea00000000, + 0xcb3c9ab100000000, 0x6139404000000000, 0xde315f8900000000, + 0x7434857800000000, 0xe12610c000000000, 0x4b23ca3100000000, + 0xf42bd5f800000000, 0x5e2e0f0900000000, 0x4877cbea00000000, + 0xe272111b00000000, 0x5d7a0ed200000000, 0xf77fd42300000000, + 0x626d419b00000000, 0xc8689b6a00000000, 0x776084a300000000, + 0xdd655e5200000000, 0x1c43df0900000000, 0xb64605f800000000, + 0x094e1a3100000000, 0xa34bc0c000000000, 0x3659557800000000, + 0x9c5c8f8900000000, 0x2354904000000000, 0x89514ab100000000, + 0xa11992f700000000, 0x0b1c480600000000, 0xb41457cf00000000, + 0x1e118d3e00000000, 0x8b03188600000000, 0x2106c27700000000, + 0x9e0eddbe00000000, 0x340b074f00000000, 0xf52d861400000000, + 0x5f285ce500000000, 0xe020432c00000000, 0x4a2599dd00000000, + 0xdf370c6500000000, 0x7532d69400000000, 0xca3ac95d00000000, + 0x603f13ac00000000, 0x9aaa79d000000000, 0x30afa32100000000, + 0x8fa7bce800000000, 0x25a2661900000000, 0xb0b0f3a100000000, + 0x1ab5295000000000, 0xa5bd369900000000, 0x0fb8ec6800000000, + 0xce9e6d3300000000, 0x649bb7c200000000, 0xdb93a80b00000000, + 0x719672fa00000000, 0xe484e74200000000, 0x4e813db300000000, + 0xf189227a00000000, 0x5b8cf88b00000000, 0x73c420cd00000000, + 0xd9c1fa3c00000000, 0x66c9e5f500000000, 0xcccc3f0400000000, + 0x59deaabc00000000, 0xf3db704d00000000, 0x4cd36f8400000000, + 0xe6d6b57500000000, 0x27f0342e00000000, 0x8df5eedf00000000, + 0x32fdf11600000000, 0x98f82be700000000, 0x0deabe5f00000000, + 0xa7ef64ae00000000, 0x18e77b6700000000, 0xb2e2a19600000000, + 0xecccae9f00000000, 0x46c9746e00000000, 0xf9c16ba700000000, + 0x53c4b15600000000, 0xc6d624ee00000000, 0x6cd3fe1f00000000, + 0xd3dbe1d600000000, 0x79de3b2700000000, 0xb8f8ba7c00000000, + 0x12fd608d00000000, 0xadf57f4400000000, 0x07f0a5b500000000, + 0x92e2300d00000000, 0x38e7eafc00000000, 0x87eff53500000000, + 0x2dea2fc400000000, 0x05a2f78200000000, 0xafa72d7300000000, + 0x10af32ba00000000, 0xbaaae84b00000000, 0x2fb87df300000000, + 0x85bda70200000000, 0x3ab5b8cb00000000, 0x90b0623a00000000, + 0x5196e36100000000, 0xfb93399000000000, 0x449b265900000000, + 0xee9efca800000000, 0x7b8c691000000000, 0xd189b3e100000000, + 0x6e81ac2800000000, 0xc48476d900000000, 0x3e111ca500000000, + 0x9414c65400000000, 0x2b1cd99d00000000, 0x8119036c00000000, + 0x140b96d400000000, 0xbe0e4c2500000000, 0x010653ec00000000, + 0xab03891d00000000, 0x6a25084600000000, 0xc020d2b700000000, + 0x7f28cd7e00000000, 0xd52d178f00000000, 0x403f823700000000, + 0xea3a58c600000000, 0x5532470f00000000, 0xff379dfe00000000, + 0xd77f45b800000000, 0x7d7a9f4900000000, 0xc272808000000000, + 0x68775a7100000000, 0xfd65cfc900000000, 0x5760153800000000, + 0xe8680af100000000, 0x426dd00000000000, 0x834b515b00000000, + 0x294e8baa00000000, 0x9646946300000000, 0x3c434e9200000000, + 0xa951db2a00000000, 0x035401db00000000, 0xbc5c1e1200000000, + 0x1659c4e300000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xae689191, 0x87a02563, 0x29c8b4f2, 0xd4314c87, + 0x7a59dd16, 0x539169e4, 0xfdf9f875, 0x73139f4f, 0xdd7b0ede, + 0xf4b3ba2c, 0x5adb2bbd, 0xa722d3c8, 0x094a4259, 0x2082f6ab, + 0x8eea673a, 0xe6273e9e, 0x484faf0f, 0x61871bfd, 0xcfef8a6c, + 0x32167219, 0x9c7ee388, 0xb5b6577a, 0x1bdec6eb, 0x9534a1d1, + 0x3b5c3040, 0x129484b2, 0xbcfc1523, 0x4105ed56, 0xef6d7cc7, + 0xc6a5c835, 0x68cd59a4, 0x173f7b7d, 0xb957eaec, 0x909f5e1e, + 0x3ef7cf8f, 0xc30e37fa, 0x6d66a66b, 0x44ae1299, 0xeac68308, + 0x642ce432, 0xca4475a3, 0xe38cc151, 0x4de450c0, 0xb01da8b5, + 0x1e753924, 0x37bd8dd6, 0x99d51c47, 0xf11845e3, 0x5f70d472, + 0x76b86080, 0xd8d0f111, 0x25290964, 0x8b4198f5, 0xa2892c07, + 0x0ce1bd96, 0x820bdaac, 0x2c634b3d, 0x05abffcf, 0xabc36e5e, + 0x563a962b, 0xf85207ba, 0xd19ab348, 0x7ff222d9, 0x2e7ef6fa, + 0x8016676b, 0xa9ded399, 0x07b64208, 0xfa4fba7d, 0x54272bec, + 0x7def9f1e, 0xd3870e8f, 0x5d6d69b5, 0xf305f824, 0xdacd4cd6, + 0x74a5dd47, 0x895c2532, 0x2734b4a3, 0x0efc0051, 0xa09491c0, + 0xc859c864, 0x663159f5, 0x4ff9ed07, 0xe1917c96, 0x1c6884e3, + 0xb2001572, 0x9bc8a180, 0x35a03011, 0xbb4a572b, 0x1522c6ba, + 0x3cea7248, 0x9282e3d9, 0x6f7b1bac, 0xc1138a3d, 0xe8db3ecf, + 0x46b3af5e, 0x39418d87, 0x97291c16, 0xbee1a8e4, 0x10893975, + 0xed70c100, 0x43185091, 0x6ad0e463, 0xc4b875f2, 0x4a5212c8, + 0xe43a8359, 0xcdf237ab, 0x639aa63a, 0x9e635e4f, 0x300bcfde, + 0x19c37b2c, 0xb7abeabd, 0xdf66b319, 0x710e2288, 0x58c6967a, + 0xf6ae07eb, 0x0b57ff9e, 0xa53f6e0f, 0x8cf7dafd, 0x229f4b6c, + 0xac752c56, 0x021dbdc7, 0x2bd50935, 0x85bd98a4, 0x784460d1, + 0xd62cf140, 0xffe445b2, 0x518cd423, 0x5cfdedf4, 0xf2957c65, + 0xdb5dc897, 0x75355906, 0x88cca173, 0x26a430e2, 0x0f6c8410, + 0xa1041581, 0x2fee72bb, 0x8186e32a, 0xa84e57d8, 0x0626c649, + 0xfbdf3e3c, 0x55b7afad, 0x7c7f1b5f, 0xd2178ace, 0xbadad36a, + 0x14b242fb, 0x3d7af609, 0x93126798, 0x6eeb9fed, 0xc0830e7c, + 0xe94bba8e, 0x47232b1f, 0xc9c94c25, 0x67a1ddb4, 0x4e696946, + 0xe001f8d7, 0x1df800a2, 0xb3909133, 0x9a5825c1, 0x3430b450, + 0x4bc29689, 0xe5aa0718, 0xcc62b3ea, 0x620a227b, 0x9ff3da0e, + 0x319b4b9f, 0x1853ff6d, 0xb63b6efc, 0x38d109c6, 0x96b99857, + 0xbf712ca5, 0x1119bd34, 0xece04541, 0x4288d4d0, 0x6b406022, + 0xc528f1b3, 0xade5a817, 0x038d3986, 0x2a458d74, 0x842d1ce5, + 0x79d4e490, 0xd7bc7501, 0xfe74c1f3, 0x501c5062, 0xdef63758, + 0x709ea6c9, 0x5956123b, 0xf73e83aa, 0x0ac77bdf, 0xa4afea4e, + 0x8d675ebc, 0x230fcf2d, 0x72831b0e, 0xdceb8a9f, 0xf5233e6d, + 0x5b4baffc, 0xa6b25789, 0x08dac618, 0x211272ea, 0x8f7ae37b, + 0x01908441, 0xaff815d0, 0x8630a122, 0x285830b3, 0xd5a1c8c6, + 0x7bc95957, 0x5201eda5, 0xfc697c34, 0x94a42590, 0x3accb401, + 0x130400f3, 0xbd6c9162, 0x40956917, 0xeefdf886, 0xc7354c74, + 0x695ddde5, 0xe7b7badf, 0x49df2b4e, 0x60179fbc, 0xce7f0e2d, + 0x3386f658, 0x9dee67c9, 0xb426d33b, 0x1a4e42aa, 0x65bc6073, + 0xcbd4f1e2, 0xe21c4510, 0x4c74d481, 0xb18d2cf4, 0x1fe5bd65, + 0x362d0997, 0x98459806, 0x16afff3c, 0xb8c76ead, 0x910fda5f, + 0x3f674bce, 0xc29eb3bb, 0x6cf6222a, 0x453e96d8, 0xeb560749, + 0x839b5eed, 0x2df3cf7c, 0x043b7b8e, 0xaa53ea1f, 0x57aa126a, + 0xf9c283fb, 0xd00a3709, 0x7e62a698, 0xf088c1a2, 0x5ee05033, + 0x7728e4c1, 0xd9407550, 0x24b98d25, 0x8ad11cb4, 0xa319a846, + 0x0d7139d7}, + {0x00000000, 0xb9fbdbe8, 0xa886b191, 0x117d6a79, 0x8a7c6563, + 0x3387be8b, 0x22fad4f2, 0x9b010f1a, 0xcf89cc87, 0x7672176f, + 0x670f7d16, 0xdef4a6fe, 0x45f5a9e4, 0xfc0e720c, 0xed731875, + 0x5488c39d, 0x44629f4f, 0xfd9944a7, 0xece42ede, 0x551ff536, + 0xce1efa2c, 0x77e521c4, 0x66984bbd, 0xdf639055, 0x8beb53c8, + 0x32108820, 0x236de259, 0x9a9639b1, 0x019736ab, 0xb86ced43, + 0xa911873a, 0x10ea5cd2, 0x88c53e9e, 0x313ee576, 0x20438f0f, + 0x99b854e7, 0x02b95bfd, 0xbb428015, 0xaa3fea6c, 0x13c43184, + 0x474cf219, 0xfeb729f1, 0xefca4388, 0x56319860, 0xcd30977a, + 0x74cb4c92, 0x65b626eb, 0xdc4dfd03, 0xcca7a1d1, 0x755c7a39, + 0x64211040, 0xdddacba8, 0x46dbc4b2, 0xff201f5a, 0xee5d7523, + 0x57a6aecb, 0x032e6d56, 0xbad5b6be, 0xaba8dcc7, 0x1253072f, + 0x89520835, 0x30a9d3dd, 0x21d4b9a4, 0x982f624c, 0xcafb7b7d, + 0x7300a095, 0x627dcaec, 0xdb861104, 0x40871e1e, 0xf97cc5f6, + 0xe801af8f, 0x51fa7467, 0x0572b7fa, 0xbc896c12, 0xadf4066b, + 0x140fdd83, 0x8f0ed299, 0x36f50971, 0x27886308, 0x9e73b8e0, + 0x8e99e432, 0x37623fda, 0x261f55a3, 0x9fe48e4b, 0x04e58151, + 0xbd1e5ab9, 0xac6330c0, 0x1598eb28, 0x411028b5, 0xf8ebf35d, + 0xe9969924, 0x506d42cc, 0xcb6c4dd6, 0x7297963e, 0x63eafc47, + 0xda1127af, 0x423e45e3, 0xfbc59e0b, 0xeab8f472, 0x53432f9a, + 0xc8422080, 0x71b9fb68, 0x60c49111, 0xd93f4af9, 0x8db78964, + 0x344c528c, 0x253138f5, 0x9ccae31d, 0x07cbec07, 0xbe3037ef, + 0xaf4d5d96, 0x16b6867e, 0x065cdaac, 0xbfa70144, 0xaeda6b3d, + 0x1721b0d5, 0x8c20bfcf, 0x35db6427, 0x24a60e5e, 0x9d5dd5b6, + 0xc9d5162b, 0x702ecdc3, 0x6153a7ba, 0xd8a87c52, 0x43a97348, + 0xfa52a8a0, 0xeb2fc2d9, 0x52d41931, 0x4e87f0bb, 0xf77c2b53, + 0xe601412a, 0x5ffa9ac2, 0xc4fb95d8, 0x7d004e30, 0x6c7d2449, + 0xd586ffa1, 0x810e3c3c, 0x38f5e7d4, 0x29888dad, 0x90735645, + 0x0b72595f, 0xb28982b7, 0xa3f4e8ce, 0x1a0f3326, 0x0ae56ff4, + 0xb31eb41c, 0xa263de65, 0x1b98058d, 0x80990a97, 0x3962d17f, + 0x281fbb06, 0x91e460ee, 0xc56ca373, 0x7c97789b, 0x6dea12e2, + 0xd411c90a, 0x4f10c610, 0xf6eb1df8, 0xe7967781, 0x5e6dac69, + 0xc642ce25, 0x7fb915cd, 0x6ec47fb4, 0xd73fa45c, 0x4c3eab46, + 0xf5c570ae, 0xe4b81ad7, 0x5d43c13f, 0x09cb02a2, 0xb030d94a, + 0xa14db333, 0x18b668db, 0x83b767c1, 0x3a4cbc29, 0x2b31d650, + 0x92ca0db8, 0x8220516a, 0x3bdb8a82, 0x2aa6e0fb, 0x935d3b13, + 0x085c3409, 0xb1a7efe1, 0xa0da8598, 0x19215e70, 0x4da99ded, + 0xf4524605, 0xe52f2c7c, 0x5cd4f794, 0xc7d5f88e, 0x7e2e2366, + 0x6f53491f, 0xd6a892f7, 0x847c8bc6, 0x3d87502e, 0x2cfa3a57, + 0x9501e1bf, 0x0e00eea5, 0xb7fb354d, 0xa6865f34, 0x1f7d84dc, + 0x4bf54741, 0xf20e9ca9, 0xe373f6d0, 0x5a882d38, 0xc1892222, + 0x7872f9ca, 0x690f93b3, 0xd0f4485b, 0xc01e1489, 0x79e5cf61, + 0x6898a518, 0xd1637ef0, 0x4a6271ea, 0xf399aa02, 0xe2e4c07b, + 0x5b1f1b93, 0x0f97d80e, 0xb66c03e6, 0xa711699f, 0x1eeab277, + 0x85ebbd6d, 0x3c106685, 0x2d6d0cfc, 0x9496d714, 0x0cb9b558, + 0xb5426eb0, 0xa43f04c9, 0x1dc4df21, 0x86c5d03b, 0x3f3e0bd3, + 0x2e4361aa, 0x97b8ba42, 0xc33079df, 0x7acba237, 0x6bb6c84e, + 0xd24d13a6, 0x494c1cbc, 0xf0b7c754, 0xe1caad2d, 0x583176c5, + 0x48db2a17, 0xf120f1ff, 0xe05d9b86, 0x59a6406e, 0xc2a74f74, + 0x7b5c949c, 0x6a21fee5, 0xd3da250d, 0x8752e690, 0x3ea93d78, + 0x2fd45701, 0x962f8ce9, 0x0d2e83f3, 0xb4d5581b, 0xa5a83262, + 0x1c53e98a}, + {0x00000000, 0x9d0fe176, 0xe16ec4ad, 0x7c6125db, 0x19ac8f1b, + 0x84a36e6d, 0xf8c24bb6, 0x65cdaac0, 0x33591e36, 0xae56ff40, + 0xd237da9b, 0x4f383bed, 0x2af5912d, 0xb7fa705b, 0xcb9b5580, + 0x5694b4f6, 0x66b23c6c, 0xfbbddd1a, 0x87dcf8c1, 0x1ad319b7, + 0x7f1eb377, 0xe2115201, 0x9e7077da, 0x037f96ac, 0x55eb225a, + 0xc8e4c32c, 0xb485e6f7, 0x298a0781, 0x4c47ad41, 0xd1484c37, + 0xad2969ec, 0x3026889a, 0xcd6478d8, 0x506b99ae, 0x2c0abc75, + 0xb1055d03, 0xd4c8f7c3, 0x49c716b5, 0x35a6336e, 0xa8a9d218, + 0xfe3d66ee, 0x63328798, 0x1f53a243, 0x825c4335, 0xe791e9f5, + 0x7a9e0883, 0x06ff2d58, 0x9bf0cc2e, 0xabd644b4, 0x36d9a5c2, + 0x4ab88019, 0xd7b7616f, 0xb27acbaf, 0x2f752ad9, 0x53140f02, + 0xce1bee74, 0x988f5a82, 0x0580bbf4, 0x79e19e2f, 0xe4ee7f59, + 0x8123d599, 0x1c2c34ef, 0x604d1134, 0xfd42f042, 0x41b9f7f1, + 0xdcb61687, 0xa0d7335c, 0x3dd8d22a, 0x581578ea, 0xc51a999c, + 0xb97bbc47, 0x24745d31, 0x72e0e9c7, 0xefef08b1, 0x938e2d6a, + 0x0e81cc1c, 0x6b4c66dc, 0xf64387aa, 0x8a22a271, 0x172d4307, + 0x270bcb9d, 0xba042aeb, 0xc6650f30, 0x5b6aee46, 0x3ea74486, + 0xa3a8a5f0, 0xdfc9802b, 0x42c6615d, 0x1452d5ab, 0x895d34dd, + 0xf53c1106, 0x6833f070, 0x0dfe5ab0, 0x90f1bbc6, 0xec909e1d, + 0x719f7f6b, 0x8cdd8f29, 0x11d26e5f, 0x6db34b84, 0xf0bcaaf2, + 0x95710032, 0x087ee144, 0x741fc49f, 0xe91025e9, 0xbf84911f, + 0x228b7069, 0x5eea55b2, 0xc3e5b4c4, 0xa6281e04, 0x3b27ff72, + 0x4746daa9, 0xda493bdf, 0xea6fb345, 0x77605233, 0x0b0177e8, + 0x960e969e, 0xf3c33c5e, 0x6eccdd28, 0x12adf8f3, 0x8fa21985, + 0xd936ad73, 0x44394c05, 0x385869de, 0xa55788a8, 0xc09a2268, + 0x5d95c31e, 0x21f4e6c5, 0xbcfb07b3, 0x8373efe2, 0x1e7c0e94, + 0x621d2b4f, 0xff12ca39, 0x9adf60f9, 0x07d0818f, 0x7bb1a454, + 0xe6be4522, 0xb02af1d4, 0x2d2510a2, 0x51443579, 0xcc4bd40f, + 0xa9867ecf, 0x34899fb9, 0x48e8ba62, 0xd5e75b14, 0xe5c1d38e, + 0x78ce32f8, 0x04af1723, 0x99a0f655, 0xfc6d5c95, 0x6162bde3, + 0x1d039838, 0x800c794e, 0xd698cdb8, 0x4b972cce, 0x37f60915, + 0xaaf9e863, 0xcf3442a3, 0x523ba3d5, 0x2e5a860e, 0xb3556778, + 0x4e17973a, 0xd318764c, 0xaf795397, 0x3276b2e1, 0x57bb1821, + 0xcab4f957, 0xb6d5dc8c, 0x2bda3dfa, 0x7d4e890c, 0xe041687a, + 0x9c204da1, 0x012facd7, 0x64e20617, 0xf9ede761, 0x858cc2ba, + 0x188323cc, 0x28a5ab56, 0xb5aa4a20, 0xc9cb6ffb, 0x54c48e8d, + 0x3109244d, 0xac06c53b, 0xd067e0e0, 0x4d680196, 0x1bfcb560, + 0x86f35416, 0xfa9271cd, 0x679d90bb, 0x02503a7b, 0x9f5fdb0d, + 0xe33efed6, 0x7e311fa0, 0xc2ca1813, 0x5fc5f965, 0x23a4dcbe, + 0xbeab3dc8, 0xdb669708, 0x4669767e, 0x3a0853a5, 0xa707b2d3, + 0xf1930625, 0x6c9ce753, 0x10fdc288, 0x8df223fe, 0xe83f893e, + 0x75306848, 0x09514d93, 0x945eace5, 0xa478247f, 0x3977c509, + 0x4516e0d2, 0xd81901a4, 0xbdd4ab64, 0x20db4a12, 0x5cba6fc9, + 0xc1b58ebf, 0x97213a49, 0x0a2edb3f, 0x764ffee4, 0xeb401f92, + 0x8e8db552, 0x13825424, 0x6fe371ff, 0xf2ec9089, 0x0fae60cb, + 0x92a181bd, 0xeec0a466, 0x73cf4510, 0x1602efd0, 0x8b0d0ea6, + 0xf76c2b7d, 0x6a63ca0b, 0x3cf77efd, 0xa1f89f8b, 0xdd99ba50, + 0x40965b26, 0x255bf1e6, 0xb8541090, 0xc435354b, 0x593ad43d, + 0x691c5ca7, 0xf413bdd1, 0x8872980a, 0x157d797c, 0x70b0d3bc, + 0xedbf32ca, 0x91de1711, 0x0cd1f667, 0x5a454291, 0xc74aa3e7, + 0xbb2b863c, 0x2624674a, 0x43e9cd8a, 0xdee62cfc, 0xa2870927, + 0x3f88e851}, + {0x00000000, 0xdd96d985, 0x605cb54b, 0xbdca6cce, 0xc0b96a96, + 0x1d2fb313, 0xa0e5dfdd, 0x7d730658, 0x5a03d36d, 0x87950ae8, + 0x3a5f6626, 0xe7c9bfa3, 0x9abab9fb, 0x472c607e, 0xfae60cb0, + 0x2770d535, 0xb407a6da, 0x69917f5f, 0xd45b1391, 0x09cdca14, + 0x74becc4c, 0xa92815c9, 0x14e27907, 0xc974a082, 0xee0475b7, + 0x3392ac32, 0x8e58c0fc, 0x53ce1979, 0x2ebd1f21, 0xf32bc6a4, + 0x4ee1aa6a, 0x937773ef, 0xb37e4bf5, 0x6ee89270, 0xd322febe, + 0x0eb4273b, 0x73c72163, 0xae51f8e6, 0x139b9428, 0xce0d4dad, + 0xe97d9898, 0x34eb411d, 0x89212dd3, 0x54b7f456, 0x29c4f20e, + 0xf4522b8b, 0x49984745, 0x940e9ec0, 0x0779ed2f, 0xdaef34aa, + 0x67255864, 0xbab381e1, 0xc7c087b9, 0x1a565e3c, 0xa79c32f2, + 0x7a0aeb77, 0x5d7a3e42, 0x80ece7c7, 0x3d268b09, 0xe0b0528c, + 0x9dc354d4, 0x40558d51, 0xfd9fe19f, 0x2009381a, 0xbd8d91ab, + 0x601b482e, 0xddd124e0, 0x0047fd65, 0x7d34fb3d, 0xa0a222b8, + 0x1d684e76, 0xc0fe97f3, 0xe78e42c6, 0x3a189b43, 0x87d2f78d, + 0x5a442e08, 0x27372850, 0xfaa1f1d5, 0x476b9d1b, 0x9afd449e, + 0x098a3771, 0xd41ceef4, 0x69d6823a, 0xb4405bbf, 0xc9335de7, + 0x14a58462, 0xa96fe8ac, 0x74f93129, 0x5389e41c, 0x8e1f3d99, + 0x33d55157, 0xee4388d2, 0x93308e8a, 0x4ea6570f, 0xf36c3bc1, + 0x2efae244, 0x0ef3da5e, 0xd36503db, 0x6eaf6f15, 0xb339b690, + 0xce4ab0c8, 0x13dc694d, 0xae160583, 0x7380dc06, 0x54f00933, + 0x8966d0b6, 0x34acbc78, 0xe93a65fd, 0x944963a5, 0x49dfba20, + 0xf415d6ee, 0x29830f6b, 0xbaf47c84, 0x6762a501, 0xdaa8c9cf, + 0x073e104a, 0x7a4d1612, 0xa7dbcf97, 0x1a11a359, 0xc7877adc, + 0xe0f7afe9, 0x3d61766c, 0x80ab1aa2, 0x5d3dc327, 0x204ec57f, + 0xfdd81cfa, 0x40127034, 0x9d84a9b1, 0xa06a2517, 0x7dfcfc92, + 0xc036905c, 0x1da049d9, 0x60d34f81, 0xbd459604, 0x008ffaca, + 0xdd19234f, 0xfa69f67a, 0x27ff2fff, 0x9a354331, 0x47a39ab4, + 0x3ad09cec, 0xe7464569, 0x5a8c29a7, 0x871af022, 0x146d83cd, + 0xc9fb5a48, 0x74313686, 0xa9a7ef03, 0xd4d4e95b, 0x094230de, + 0xb4885c10, 0x691e8595, 0x4e6e50a0, 0x93f88925, 0x2e32e5eb, + 0xf3a43c6e, 0x8ed73a36, 0x5341e3b3, 0xee8b8f7d, 0x331d56f8, + 0x13146ee2, 0xce82b767, 0x7348dba9, 0xaede022c, 0xd3ad0474, + 0x0e3bddf1, 0xb3f1b13f, 0x6e6768ba, 0x4917bd8f, 0x9481640a, + 0x294b08c4, 0xf4ddd141, 0x89aed719, 0x54380e9c, 0xe9f26252, + 0x3464bbd7, 0xa713c838, 0x7a8511bd, 0xc74f7d73, 0x1ad9a4f6, + 0x67aaa2ae, 0xba3c7b2b, 0x07f617e5, 0xda60ce60, 0xfd101b55, + 0x2086c2d0, 0x9d4cae1e, 0x40da779b, 0x3da971c3, 0xe03fa846, + 0x5df5c488, 0x80631d0d, 0x1de7b4bc, 0xc0716d39, 0x7dbb01f7, + 0xa02dd872, 0xdd5ede2a, 0x00c807af, 0xbd026b61, 0x6094b2e4, + 0x47e467d1, 0x9a72be54, 0x27b8d29a, 0xfa2e0b1f, 0x875d0d47, + 0x5acbd4c2, 0xe701b80c, 0x3a976189, 0xa9e01266, 0x7476cbe3, + 0xc9bca72d, 0x142a7ea8, 0x695978f0, 0xb4cfa175, 0x0905cdbb, + 0xd493143e, 0xf3e3c10b, 0x2e75188e, 0x93bf7440, 0x4e29adc5, + 0x335aab9d, 0xeecc7218, 0x53061ed6, 0x8e90c753, 0xae99ff49, + 0x730f26cc, 0xcec54a02, 0x13539387, 0x6e2095df, 0xb3b64c5a, + 0x0e7c2094, 0xd3eaf911, 0xf49a2c24, 0x290cf5a1, 0x94c6996f, + 0x495040ea, 0x342346b2, 0xe9b59f37, 0x547ff3f9, 0x89e92a7c, + 0x1a9e5993, 0xc7088016, 0x7ac2ecd8, 0xa754355d, 0xda273305, + 0x07b1ea80, 0xba7b864e, 0x67ed5fcb, 0x409d8afe, 0x9d0b537b, + 0x20c13fb5, 0xfd57e630, 0x8024e068, 0x5db239ed, 0xe0785523, + 0x3dee8ca6}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x85d996dd, 0x4bb55c60, 0xce6ccabd, 0x966ab9c0, + 0x13b32f1d, 0xdddfe5a0, 0x5806737d, 0x6dd3035a, 0xe80a9587, + 0x26665f3a, 0xa3bfc9e7, 0xfbb9ba9a, 0x7e602c47, 0xb00ce6fa, + 0x35d57027, 0xdaa607b4, 0x5f7f9169, 0x91135bd4, 0x14cacd09, + 0x4cccbe74, 0xc91528a9, 0x0779e214, 0x82a074c9, 0xb77504ee, + 0x32ac9233, 0xfcc0588e, 0x7919ce53, 0x211fbd2e, 0xa4c62bf3, + 0x6aaae14e, 0xef737793, 0xf54b7eb3, 0x7092e86e, 0xbefe22d3, + 0x3b27b40e, 0x6321c773, 0xe6f851ae, 0x28949b13, 0xad4d0dce, + 0x98987de9, 0x1d41eb34, 0xd32d2189, 0x56f4b754, 0x0ef2c429, + 0x8b2b52f4, 0x45479849, 0xc09e0e94, 0x2fed7907, 0xaa34efda, + 0x64582567, 0xe181b3ba, 0xb987c0c7, 0x3c5e561a, 0xf2329ca7, + 0x77eb0a7a, 0x423e7a5d, 0xc7e7ec80, 0x098b263d, 0x8c52b0e0, + 0xd454c39d, 0x518d5540, 0x9fe19ffd, 0x1a380920, 0xab918dbd, + 0x2e481b60, 0xe024d1dd, 0x65fd4700, 0x3dfb347d, 0xb822a2a0, + 0x764e681d, 0xf397fec0, 0xc6428ee7, 0x439b183a, 0x8df7d287, + 0x082e445a, 0x50283727, 0xd5f1a1fa, 0x1b9d6b47, 0x9e44fd9a, + 0x71378a09, 0xf4ee1cd4, 0x3a82d669, 0xbf5b40b4, 0xe75d33c9, + 0x6284a514, 0xace86fa9, 0x2931f974, 0x1ce48953, 0x993d1f8e, + 0x5751d533, 0xd28843ee, 0x8a8e3093, 0x0f57a64e, 0xc13b6cf3, + 0x44e2fa2e, 0x5edaf30e, 0xdb0365d3, 0x156faf6e, 0x90b639b3, + 0xc8b04ace, 0x4d69dc13, 0x830516ae, 0x06dc8073, 0x3309f054, + 0xb6d06689, 0x78bcac34, 0xfd653ae9, 0xa5634994, 0x20badf49, + 0xeed615f4, 0x6b0f8329, 0x847cf4ba, 0x01a56267, 0xcfc9a8da, + 0x4a103e07, 0x12164d7a, 0x97cfdba7, 0x59a3111a, 0xdc7a87c7, + 0xe9aff7e0, 0x6c76613d, 0xa21aab80, 0x27c33d5d, 0x7fc54e20, + 0xfa1cd8fd, 0x34701240, 0xb1a9849d, 0x17256aa0, 0x92fcfc7d, + 0x5c9036c0, 0xd949a01d, 0x814fd360, 0x049645bd, 0xcafa8f00, + 0x4f2319dd, 0x7af669fa, 0xff2fff27, 0x3143359a, 0xb49aa347, + 0xec9cd03a, 0x694546e7, 0xa7298c5a, 0x22f01a87, 0xcd836d14, + 0x485afbc9, 0x86363174, 0x03efa7a9, 0x5be9d4d4, 0xde304209, + 0x105c88b4, 0x95851e69, 0xa0506e4e, 0x2589f893, 0xebe5322e, + 0x6e3ca4f3, 0x363ad78e, 0xb3e34153, 0x7d8f8bee, 0xf8561d33, + 0xe26e1413, 0x67b782ce, 0xa9db4873, 0x2c02deae, 0x7404add3, + 0xf1dd3b0e, 0x3fb1f1b3, 0xba68676e, 0x8fbd1749, 0x0a648194, + 0xc4084b29, 0x41d1ddf4, 0x19d7ae89, 0x9c0e3854, 0x5262f2e9, + 0xd7bb6434, 0x38c813a7, 0xbd11857a, 0x737d4fc7, 0xf6a4d91a, + 0xaea2aa67, 0x2b7b3cba, 0xe517f607, 0x60ce60da, 0x551b10fd, + 0xd0c28620, 0x1eae4c9d, 0x9b77da40, 0xc371a93d, 0x46a83fe0, + 0x88c4f55d, 0x0d1d6380, 0xbcb4e71d, 0x396d71c0, 0xf701bb7d, + 0x72d82da0, 0x2ade5edd, 0xaf07c800, 0x616b02bd, 0xe4b29460, + 0xd167e447, 0x54be729a, 0x9ad2b827, 0x1f0b2efa, 0x470d5d87, + 0xc2d4cb5a, 0x0cb801e7, 0x8961973a, 0x6612e0a9, 0xe3cb7674, + 0x2da7bcc9, 0xa87e2a14, 0xf0785969, 0x75a1cfb4, 0xbbcd0509, + 0x3e1493d4, 0x0bc1e3f3, 0x8e18752e, 0x4074bf93, 0xc5ad294e, + 0x9dab5a33, 0x1872ccee, 0xd61e0653, 0x53c7908e, 0x49ff99ae, + 0xcc260f73, 0x024ac5ce, 0x87935313, 0xdf95206e, 0x5a4cb6b3, + 0x94207c0e, 0x11f9ead3, 0x242c9af4, 0xa1f50c29, 0x6f99c694, + 0xea405049, 0xb2462334, 0x379fb5e9, 0xf9f37f54, 0x7c2ae989, + 0x93599e1a, 0x168008c7, 0xd8ecc27a, 0x5d3554a7, 0x053327da, + 0x80eab107, 0x4e867bba, 0xcb5fed67, 0xfe8a9d40, 0x7b530b9d, + 0xb53fc120, 0x30e657fd, 0x68e02480, 0xed39b25d, 0x235578e0, + 0xa68cee3d}, + {0x00000000, 0x76e10f9d, 0xadc46ee1, 0xdb25617c, 0x1b8fac19, + 0x6d6ea384, 0xb64bc2f8, 0xc0aacd65, 0x361e5933, 0x40ff56ae, + 0x9bda37d2, 0xed3b384f, 0x2d91f52a, 0x5b70fab7, 0x80559bcb, + 0xf6b49456, 0x6c3cb266, 0x1addbdfb, 0xc1f8dc87, 0xb719d31a, + 0x77b31e7f, 0x015211e2, 0xda77709e, 0xac967f03, 0x5a22eb55, + 0x2cc3e4c8, 0xf7e685b4, 0x81078a29, 0x41ad474c, 0x374c48d1, + 0xec6929ad, 0x9a882630, 0xd87864cd, 0xae996b50, 0x75bc0a2c, + 0x035d05b1, 0xc3f7c8d4, 0xb516c749, 0x6e33a635, 0x18d2a9a8, + 0xee663dfe, 0x98873263, 0x43a2531f, 0x35435c82, 0xf5e991e7, + 0x83089e7a, 0x582dff06, 0x2eccf09b, 0xb444d6ab, 0xc2a5d936, + 0x1980b84a, 0x6f61b7d7, 0xafcb7ab2, 0xd92a752f, 0x020f1453, + 0x74ee1bce, 0x825a8f98, 0xf4bb8005, 0x2f9ee179, 0x597feee4, + 0x99d52381, 0xef342c1c, 0x34114d60, 0x42f042fd, 0xf1f7b941, + 0x8716b6dc, 0x5c33d7a0, 0x2ad2d83d, 0xea781558, 0x9c991ac5, + 0x47bc7bb9, 0x315d7424, 0xc7e9e072, 0xb108efef, 0x6a2d8e93, + 0x1ccc810e, 0xdc664c6b, 0xaa8743f6, 0x71a2228a, 0x07432d17, + 0x9dcb0b27, 0xeb2a04ba, 0x300f65c6, 0x46ee6a5b, 0x8644a73e, + 0xf0a5a8a3, 0x2b80c9df, 0x5d61c642, 0xabd55214, 0xdd345d89, + 0x06113cf5, 0x70f03368, 0xb05afe0d, 0xc6bbf190, 0x1d9e90ec, + 0x6b7f9f71, 0x298fdd8c, 0x5f6ed211, 0x844bb36d, 0xf2aabcf0, + 0x32007195, 0x44e17e08, 0x9fc41f74, 0xe92510e9, 0x1f9184bf, + 0x69708b22, 0xb255ea5e, 0xc4b4e5c3, 0x041e28a6, 0x72ff273b, + 0xa9da4647, 0xdf3b49da, 0x45b36fea, 0x33526077, 0xe877010b, + 0x9e960e96, 0x5e3cc3f3, 0x28ddcc6e, 0xf3f8ad12, 0x8519a28f, + 0x73ad36d9, 0x054c3944, 0xde695838, 0xa88857a5, 0x68229ac0, + 0x1ec3955d, 0xc5e6f421, 0xb307fbbc, 0xe2ef7383, 0x940e7c1e, + 0x4f2b1d62, 0x39ca12ff, 0xf960df9a, 0x8f81d007, 0x54a4b17b, + 0x2245bee6, 0xd4f12ab0, 0xa210252d, 0x79354451, 0x0fd44bcc, + 0xcf7e86a9, 0xb99f8934, 0x62bae848, 0x145be7d5, 0x8ed3c1e5, + 0xf832ce78, 0x2317af04, 0x55f6a099, 0x955c6dfc, 0xe3bd6261, + 0x3898031d, 0x4e790c80, 0xb8cd98d6, 0xce2c974b, 0x1509f637, + 0x63e8f9aa, 0xa34234cf, 0xd5a33b52, 0x0e865a2e, 0x786755b3, + 0x3a97174e, 0x4c7618d3, 0x975379af, 0xe1b27632, 0x2118bb57, + 0x57f9b4ca, 0x8cdcd5b6, 0xfa3dda2b, 0x0c894e7d, 0x7a6841e0, + 0xa14d209c, 0xd7ac2f01, 0x1706e264, 0x61e7edf9, 0xbac28c85, + 0xcc238318, 0x56aba528, 0x204aaab5, 0xfb6fcbc9, 0x8d8ec454, + 0x4d240931, 0x3bc506ac, 0xe0e067d0, 0x9601684d, 0x60b5fc1b, + 0x1654f386, 0xcd7192fa, 0xbb909d67, 0x7b3a5002, 0x0ddb5f9f, + 0xd6fe3ee3, 0xa01f317e, 0x1318cac2, 0x65f9c55f, 0xbedca423, + 0xc83dabbe, 0x089766db, 0x7e766946, 0xa553083a, 0xd3b207a7, + 0x250693f1, 0x53e79c6c, 0x88c2fd10, 0xfe23f28d, 0x3e893fe8, + 0x48683075, 0x934d5109, 0xe5ac5e94, 0x7f2478a4, 0x09c57739, + 0xd2e01645, 0xa40119d8, 0x64abd4bd, 0x124adb20, 0xc96fba5c, + 0xbf8eb5c1, 0x493a2197, 0x3fdb2e0a, 0xe4fe4f76, 0x921f40eb, + 0x52b58d8e, 0x24548213, 0xff71e36f, 0x8990ecf2, 0xcb60ae0f, + 0xbd81a192, 0x66a4c0ee, 0x1045cf73, 0xd0ef0216, 0xa60e0d8b, + 0x7d2b6cf7, 0x0bca636a, 0xfd7ef73c, 0x8b9ff8a1, 0x50ba99dd, + 0x265b9640, 0xe6f15b25, 0x901054b8, 0x4b3535c4, 0x3dd43a59, + 0xa75c1c69, 0xd1bd13f4, 0x0a987288, 0x7c797d15, 0xbcd3b070, + 0xca32bfed, 0x1117de91, 0x67f6d10c, 0x9142455a, 0xe7a34ac7, + 0x3c862bbb, 0x4a672426, 0x8acde943, 0xfc2ce6de, 0x270987a2, + 0x51e8883f}, + {0x00000000, 0xe8dbfbb9, 0x91b186a8, 0x796a7d11, 0x63657c8a, + 0x8bbe8733, 0xf2d4fa22, 0x1a0f019b, 0x87cc89cf, 0x6f177276, + 0x167d0f67, 0xfea6f4de, 0xe4a9f545, 0x0c720efc, 0x751873ed, + 0x9dc38854, 0x4f9f6244, 0xa74499fd, 0xde2ee4ec, 0x36f51f55, + 0x2cfa1ece, 0xc421e577, 0xbd4b9866, 0x559063df, 0xc853eb8b, + 0x20881032, 0x59e26d23, 0xb139969a, 0xab369701, 0x43ed6cb8, + 0x3a8711a9, 0xd25cea10, 0x9e3ec588, 0x76e53e31, 0x0f8f4320, + 0xe754b899, 0xfd5bb902, 0x158042bb, 0x6cea3faa, 0x8431c413, + 0x19f24c47, 0xf129b7fe, 0x8843caef, 0x60983156, 0x7a9730cd, + 0x924ccb74, 0xeb26b665, 0x03fd4ddc, 0xd1a1a7cc, 0x397a5c75, + 0x40102164, 0xa8cbdadd, 0xb2c4db46, 0x5a1f20ff, 0x23755dee, + 0xcbaea657, 0x566d2e03, 0xbeb6d5ba, 0xc7dca8ab, 0x2f075312, + 0x35085289, 0xddd3a930, 0xa4b9d421, 0x4c622f98, 0x7d7bfbca, + 0x95a00073, 0xecca7d62, 0x041186db, 0x1e1e8740, 0xf6c57cf9, + 0x8faf01e8, 0x6774fa51, 0xfab77205, 0x126c89bc, 0x6b06f4ad, + 0x83dd0f14, 0x99d20e8f, 0x7109f536, 0x08638827, 0xe0b8739e, + 0x32e4998e, 0xda3f6237, 0xa3551f26, 0x4b8ee49f, 0x5181e504, + 0xb95a1ebd, 0xc03063ac, 0x28eb9815, 0xb5281041, 0x5df3ebf8, + 0x249996e9, 0xcc426d50, 0xd64d6ccb, 0x3e969772, 0x47fcea63, + 0xaf2711da, 0xe3453e42, 0x0b9ec5fb, 0x72f4b8ea, 0x9a2f4353, + 0x802042c8, 0x68fbb971, 0x1191c460, 0xf94a3fd9, 0x6489b78d, + 0x8c524c34, 0xf5383125, 0x1de3ca9c, 0x07eccb07, 0xef3730be, + 0x965d4daf, 0x7e86b616, 0xacda5c06, 0x4401a7bf, 0x3d6bdaae, + 0xd5b02117, 0xcfbf208c, 0x2764db35, 0x5e0ea624, 0xb6d55d9d, + 0x2b16d5c9, 0xc3cd2e70, 0xbaa75361, 0x527ca8d8, 0x4873a943, + 0xa0a852fa, 0xd9c22feb, 0x3119d452, 0xbbf0874e, 0x532b7cf7, + 0x2a4101e6, 0xc29afa5f, 0xd895fbc4, 0x304e007d, 0x49247d6c, + 0xa1ff86d5, 0x3c3c0e81, 0xd4e7f538, 0xad8d8829, 0x45567390, + 0x5f59720b, 0xb78289b2, 0xcee8f4a3, 0x26330f1a, 0xf46fe50a, + 0x1cb41eb3, 0x65de63a2, 0x8d05981b, 0x970a9980, 0x7fd16239, + 0x06bb1f28, 0xee60e491, 0x73a36cc5, 0x9b78977c, 0xe212ea6d, + 0x0ac911d4, 0x10c6104f, 0xf81debf6, 0x817796e7, 0x69ac6d5e, + 0x25ce42c6, 0xcd15b97f, 0xb47fc46e, 0x5ca43fd7, 0x46ab3e4c, + 0xae70c5f5, 0xd71ab8e4, 0x3fc1435d, 0xa202cb09, 0x4ad930b0, + 0x33b34da1, 0xdb68b618, 0xc167b783, 0x29bc4c3a, 0x50d6312b, + 0xb80dca92, 0x6a512082, 0x828adb3b, 0xfbe0a62a, 0x133b5d93, + 0x09345c08, 0xe1efa7b1, 0x9885daa0, 0x705e2119, 0xed9da94d, + 0x054652f4, 0x7c2c2fe5, 0x94f7d45c, 0x8ef8d5c7, 0x66232e7e, + 0x1f49536f, 0xf792a8d6, 0xc68b7c84, 0x2e50873d, 0x573afa2c, + 0xbfe10195, 0xa5ee000e, 0x4d35fbb7, 0x345f86a6, 0xdc847d1f, + 0x4147f54b, 0xa99c0ef2, 0xd0f673e3, 0x382d885a, 0x222289c1, + 0xcaf97278, 0xb3930f69, 0x5b48f4d0, 0x89141ec0, 0x61cfe579, + 0x18a59868, 0xf07e63d1, 0xea71624a, 0x02aa99f3, 0x7bc0e4e2, + 0x931b1f5b, 0x0ed8970f, 0xe6036cb6, 0x9f6911a7, 0x77b2ea1e, + 0x6dbdeb85, 0x8566103c, 0xfc0c6d2d, 0x14d79694, 0x58b5b90c, + 0xb06e42b5, 0xc9043fa4, 0x21dfc41d, 0x3bd0c586, 0xd30b3e3f, + 0xaa61432e, 0x42bab897, 0xdf7930c3, 0x37a2cb7a, 0x4ec8b66b, + 0xa6134dd2, 0xbc1c4c49, 0x54c7b7f0, 0x2dadcae1, 0xc5763158, + 0x172adb48, 0xfff120f1, 0x869b5de0, 0x6e40a659, 0x744fa7c2, + 0x9c945c7b, 0xe5fe216a, 0x0d25dad3, 0x90e65287, 0x783da93e, + 0x0157d42f, 0xe98c2f96, 0xf3832e0d, 0x1b58d5b4, 0x6232a8a5, + 0x8ae9531c}, + {0x00000000, 0x919168ae, 0x6325a087, 0xf2b4c829, 0x874c31d4, + 0x16dd597a, 0xe4699153, 0x75f8f9fd, 0x4f9f1373, 0xde0e7bdd, + 0x2cbab3f4, 0xbd2bdb5a, 0xc8d322a7, 0x59424a09, 0xabf68220, + 0x3a67ea8e, 0x9e3e27e6, 0x0faf4f48, 0xfd1b8761, 0x6c8aefcf, + 0x19721632, 0x88e37e9c, 0x7a57b6b5, 0xebc6de1b, 0xd1a13495, + 0x40305c3b, 0xb2849412, 0x2315fcbc, 0x56ed0541, 0xc77c6def, + 0x35c8a5c6, 0xa459cd68, 0x7d7b3f17, 0xecea57b9, 0x1e5e9f90, + 0x8fcff73e, 0xfa370ec3, 0x6ba6666d, 0x9912ae44, 0x0883c6ea, + 0x32e42c64, 0xa37544ca, 0x51c18ce3, 0xc050e44d, 0xb5a81db0, + 0x2439751e, 0xd68dbd37, 0x471cd599, 0xe34518f1, 0x72d4705f, + 0x8060b876, 0x11f1d0d8, 0x64092925, 0xf598418b, 0x072c89a2, + 0x96bde10c, 0xacda0b82, 0x3d4b632c, 0xcfffab05, 0x5e6ec3ab, + 0x2b963a56, 0xba0752f8, 0x48b39ad1, 0xd922f27f, 0xfaf67e2e, + 0x6b671680, 0x99d3dea9, 0x0842b607, 0x7dba4ffa, 0xec2b2754, + 0x1e9fef7d, 0x8f0e87d3, 0xb5696d5d, 0x24f805f3, 0xd64ccdda, + 0x47dda574, 0x32255c89, 0xa3b43427, 0x5100fc0e, 0xc09194a0, + 0x64c859c8, 0xf5593166, 0x07edf94f, 0x967c91e1, 0xe384681c, + 0x721500b2, 0x80a1c89b, 0x1130a035, 0x2b574abb, 0xbac62215, + 0x4872ea3c, 0xd9e38292, 0xac1b7b6f, 0x3d8a13c1, 0xcf3edbe8, + 0x5eafb346, 0x878d4139, 0x161c2997, 0xe4a8e1be, 0x75398910, + 0x00c170ed, 0x91501843, 0x63e4d06a, 0xf275b8c4, 0xc812524a, + 0x59833ae4, 0xab37f2cd, 0x3aa69a63, 0x4f5e639e, 0xdecf0b30, + 0x2c7bc319, 0xbdeaabb7, 0x19b366df, 0x88220e71, 0x7a96c658, + 0xeb07aef6, 0x9eff570b, 0x0f6e3fa5, 0xfddaf78c, 0x6c4b9f22, + 0x562c75ac, 0xc7bd1d02, 0x3509d52b, 0xa498bd85, 0xd1604478, + 0x40f12cd6, 0xb245e4ff, 0x23d48c51, 0xf4edfd5c, 0x657c95f2, + 0x97c85ddb, 0x06593575, 0x73a1cc88, 0xe230a426, 0x10846c0f, + 0x811504a1, 0xbb72ee2f, 0x2ae38681, 0xd8574ea8, 0x49c62606, + 0x3c3edffb, 0xadafb755, 0x5f1b7f7c, 0xce8a17d2, 0x6ad3daba, + 0xfb42b214, 0x09f67a3d, 0x98671293, 0xed9feb6e, 0x7c0e83c0, + 0x8eba4be9, 0x1f2b2347, 0x254cc9c9, 0xb4dda167, 0x4669694e, + 0xd7f801e0, 0xa200f81d, 0x339190b3, 0xc125589a, 0x50b43034, + 0x8996c24b, 0x1807aae5, 0xeab362cc, 0x7b220a62, 0x0edaf39f, + 0x9f4b9b31, 0x6dff5318, 0xfc6e3bb6, 0xc609d138, 0x5798b996, + 0xa52c71bf, 0x34bd1911, 0x4145e0ec, 0xd0d48842, 0x2260406b, + 0xb3f128c5, 0x17a8e5ad, 0x86398d03, 0x748d452a, 0xe51c2d84, + 0x90e4d479, 0x0175bcd7, 0xf3c174fe, 0x62501c50, 0x5837f6de, + 0xc9a69e70, 0x3b125659, 0xaa833ef7, 0xdf7bc70a, 0x4eeaafa4, + 0xbc5e678d, 0x2dcf0f23, 0x0e1b8372, 0x9f8aebdc, 0x6d3e23f5, + 0xfcaf4b5b, 0x8957b2a6, 0x18c6da08, 0xea721221, 0x7be37a8f, + 0x41849001, 0xd015f8af, 0x22a13086, 0xb3305828, 0xc6c8a1d5, + 0x5759c97b, 0xa5ed0152, 0x347c69fc, 0x9025a494, 0x01b4cc3a, + 0xf3000413, 0x62916cbd, 0x17699540, 0x86f8fdee, 0x744c35c7, + 0xe5dd5d69, 0xdfbab7e7, 0x4e2bdf49, 0xbc9f1760, 0x2d0e7fce, + 0x58f68633, 0xc967ee9d, 0x3bd326b4, 0xaa424e1a, 0x7360bc65, + 0xe2f1d4cb, 0x10451ce2, 0x81d4744c, 0xf42c8db1, 0x65bde51f, + 0x97092d36, 0x06984598, 0x3cffaf16, 0xad6ec7b8, 0x5fda0f91, + 0xce4b673f, 0xbbb39ec2, 0x2a22f66c, 0xd8963e45, 0x490756eb, + 0xed5e9b83, 0x7ccff32d, 0x8e7b3b04, 0x1fea53aa, 0x6a12aa57, + 0xfb83c2f9, 0x09370ad0, 0x98a6627e, 0xa2c188f0, 0x3350e05e, + 0xc1e42877, 0x507540d9, 0x258db924, 0xb41cd18a, 0x46a819a3, + 0xd739710d}}; + +#endif + +#endif + +#if N == 5 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0xaf449247, 0x85f822cf, 0x2abcb088, 0xd08143df, + 0x7fc5d198, 0x55796110, 0xfa3df357, 0x7a7381ff, 0xd53713b8, + 0xff8ba330, 0x50cf3177, 0xaaf2c220, 0x05b65067, 0x2f0ae0ef, + 0x804e72a8, 0xf4e703fe, 0x5ba391b9, 0x711f2131, 0xde5bb376, + 0x24664021, 0x8b22d266, 0xa19e62ee, 0x0edaf0a9, 0x8e948201, + 0x21d01046, 0x0b6ca0ce, 0xa4283289, 0x5e15c1de, 0xf1515399, + 0xdbede311, 0x74a97156, 0x32bf01bd, 0x9dfb93fa, 0xb7472372, + 0x1803b135, 0xe23e4262, 0x4d7ad025, 0x67c660ad, 0xc882f2ea, + 0x48cc8042, 0xe7881205, 0xcd34a28d, 0x627030ca, 0x984dc39d, + 0x370951da, 0x1db5e152, 0xb2f17315, 0xc6580243, 0x691c9004, + 0x43a0208c, 0xece4b2cb, 0x16d9419c, 0xb99dd3db, 0x93216353, + 0x3c65f114, 0xbc2b83bc, 0x136f11fb, 0x39d3a173, 0x96973334, + 0x6caac063, 0xc3ee5224, 0xe952e2ac, 0x461670eb, 0x657e037a, + 0xca3a913d, 0xe08621b5, 0x4fc2b3f2, 0xb5ff40a5, 0x1abbd2e2, + 0x3007626a, 0x9f43f02d, 0x1f0d8285, 0xb04910c2, 0x9af5a04a, + 0x35b1320d, 0xcf8cc15a, 0x60c8531d, 0x4a74e395, 0xe53071d2, + 0x91990084, 0x3edd92c3, 0x1461224b, 0xbb25b00c, 0x4118435b, + 0xee5cd11c, 0xc4e06194, 0x6ba4f3d3, 0xebea817b, 0x44ae133c, + 0x6e12a3b4, 0xc15631f3, 0x3b6bc2a4, 0x942f50e3, 0xbe93e06b, + 0x11d7722c, 0x57c102c7, 0xf8859080, 0xd2392008, 0x7d7db24f, + 0x87404118, 0x2804d35f, 0x02b863d7, 0xadfcf190, 0x2db28338, + 0x82f6117f, 0xa84aa1f7, 0x070e33b0, 0xfd33c0e7, 0x527752a0, + 0x78cbe228, 0xd78f706f, 0xa3260139, 0x0c62937e, 0x26de23f6, + 0x899ab1b1, 0x73a742e6, 0xdce3d0a1, 0xf65f6029, 0x591bf26e, + 0xd95580c6, 0x76111281, 0x5cada209, 0xf3e9304e, 0x09d4c319, + 0xa690515e, 0x8c2ce1d6, 0x23687391, 0xcafc06f4, 0x65b894b3, + 0x4f04243b, 0xe040b67c, 0x1a7d452b, 0xb539d76c, 0x9f8567e4, + 0x30c1f5a3, 0xb08f870b, 0x1fcb154c, 0x3577a5c4, 0x9a333783, + 0x600ec4d4, 0xcf4a5693, 0xe5f6e61b, 0x4ab2745c, 0x3e1b050a, + 0x915f974d, 0xbbe327c5, 0x14a7b582, 0xee9a46d5, 0x41ded492, + 0x6b62641a, 0xc426f65d, 0x446884f5, 0xeb2c16b2, 0xc190a63a, + 0x6ed4347d, 0x94e9c72a, 0x3bad556d, 0x1111e5e5, 0xbe5577a2, + 0xf8430749, 0x5707950e, 0x7dbb2586, 0xd2ffb7c1, 0x28c24496, + 0x8786d6d1, 0xad3a6659, 0x027ef41e, 0x823086b6, 0x2d7414f1, + 0x07c8a479, 0xa88c363e, 0x52b1c569, 0xfdf5572e, 0xd749e7a6, + 0x780d75e1, 0x0ca404b7, 0xa3e096f0, 0x895c2678, 0x2618b43f, + 0xdc254768, 0x7361d52f, 0x59dd65a7, 0xf699f7e0, 0x76d78548, + 0xd993170f, 0xf32fa787, 0x5c6b35c0, 0xa656c697, 0x091254d0, + 0x23aee458, 0x8cea761f, 0xaf82058e, 0x00c697c9, 0x2a7a2741, + 0x853eb506, 0x7f034651, 0xd047d416, 0xfafb649e, 0x55bff6d9, + 0xd5f18471, 0x7ab51636, 0x5009a6be, 0xff4d34f9, 0x0570c7ae, + 0xaa3455e9, 0x8088e561, 0x2fcc7726, 0x5b650670, 0xf4219437, + 0xde9d24bf, 0x71d9b6f8, 0x8be445af, 0x24a0d7e8, 0x0e1c6760, + 0xa158f527, 0x2116878f, 0x8e5215c8, 0xa4eea540, 0x0baa3707, + 0xf197c450, 0x5ed35617, 0x746fe69f, 0xdb2b74d8, 0x9d3d0433, + 0x32799674, 0x18c526fc, 0xb781b4bb, 0x4dbc47ec, 0xe2f8d5ab, + 0xc8446523, 0x6700f764, 0xe74e85cc, 0x480a178b, 0x62b6a703, + 0xcdf23544, 0x37cfc613, 0x988b5454, 0xb237e4dc, 0x1d73769b, + 0x69da07cd, 0xc69e958a, 0xec222502, 0x4366b745, 0xb95b4412, + 0x161fd655, 0x3ca366dd, 0x93e7f49a, 0x13a98632, 0xbced1475, + 0x9651a4fd, 0x391536ba, 0xc328c5ed, 0x6c6c57aa, 0x46d0e722, + 0xe9947565}, + {0x00000000, 0x4e890ba9, 0x9d121752, 0xd39b1cfb, 0xe15528e5, + 0xafdc234c, 0x7c473fb7, 0x32ce341e, 0x19db578b, 0x57525c22, + 0x84c940d9, 0xca404b70, 0xf88e7f6e, 0xb60774c7, 0x659c683c, + 0x2b156395, 0x33b6af16, 0x7d3fa4bf, 0xaea4b844, 0xe02db3ed, + 0xd2e387f3, 0x9c6a8c5a, 0x4ff190a1, 0x01789b08, 0x2a6df89d, + 0x64e4f334, 0xb77fefcf, 0xf9f6e466, 0xcb38d078, 0x85b1dbd1, + 0x562ac72a, 0x18a3cc83, 0x676d5e2c, 0x29e45585, 0xfa7f497e, + 0xb4f642d7, 0x863876c9, 0xc8b17d60, 0x1b2a619b, 0x55a36a32, + 0x7eb609a7, 0x303f020e, 0xe3a41ef5, 0xad2d155c, 0x9fe32142, + 0xd16a2aeb, 0x02f13610, 0x4c783db9, 0x54dbf13a, 0x1a52fa93, + 0xc9c9e668, 0x8740edc1, 0xb58ed9df, 0xfb07d276, 0x289cce8d, + 0x6615c524, 0x4d00a6b1, 0x0389ad18, 0xd012b1e3, 0x9e9bba4a, + 0xac558e54, 0xe2dc85fd, 0x31479906, 0x7fce92af, 0xcedabc58, + 0x8053b7f1, 0x53c8ab0a, 0x1d41a0a3, 0x2f8f94bd, 0x61069f14, + 0xb29d83ef, 0xfc148846, 0xd701ebd3, 0x9988e07a, 0x4a13fc81, + 0x049af728, 0x3654c336, 0x78ddc89f, 0xab46d464, 0xe5cfdfcd, + 0xfd6c134e, 0xb3e518e7, 0x607e041c, 0x2ef70fb5, 0x1c393bab, + 0x52b03002, 0x812b2cf9, 0xcfa22750, 0xe4b744c5, 0xaa3e4f6c, + 0x79a55397, 0x372c583e, 0x05e26c20, 0x4b6b6789, 0x98f07b72, + 0xd67970db, 0xa9b7e274, 0xe73ee9dd, 0x34a5f526, 0x7a2cfe8f, + 0x48e2ca91, 0x066bc138, 0xd5f0ddc3, 0x9b79d66a, 0xb06cb5ff, + 0xfee5be56, 0x2d7ea2ad, 0x63f7a904, 0x51399d1a, 0x1fb096b3, + 0xcc2b8a48, 0x82a281e1, 0x9a014d62, 0xd48846cb, 0x07135a30, + 0x499a5199, 0x7b546587, 0x35dd6e2e, 0xe64672d5, 0xa8cf797c, + 0x83da1ae9, 0xcd531140, 0x1ec80dbb, 0x50410612, 0x628f320c, + 0x2c0639a5, 0xff9d255e, 0xb1142ef7, 0x46c47ef1, 0x084d7558, + 0xdbd669a3, 0x955f620a, 0xa7915614, 0xe9185dbd, 0x3a834146, + 0x740a4aef, 0x5f1f297a, 0x119622d3, 0xc20d3e28, 0x8c843581, + 0xbe4a019f, 0xf0c30a36, 0x235816cd, 0x6dd11d64, 0x7572d1e7, + 0x3bfbda4e, 0xe860c6b5, 0xa6e9cd1c, 0x9427f902, 0xdaaef2ab, + 0x0935ee50, 0x47bce5f9, 0x6ca9866c, 0x22208dc5, 0xf1bb913e, + 0xbf329a97, 0x8dfcae89, 0xc375a520, 0x10eeb9db, 0x5e67b272, + 0x21a920dd, 0x6f202b74, 0xbcbb378f, 0xf2323c26, 0xc0fc0838, + 0x8e750391, 0x5dee1f6a, 0x136714c3, 0x38727756, 0x76fb7cff, + 0xa5606004, 0xebe96bad, 0xd9275fb3, 0x97ae541a, 0x443548e1, + 0x0abc4348, 0x121f8fcb, 0x5c968462, 0x8f0d9899, 0xc1849330, + 0xf34aa72e, 0xbdc3ac87, 0x6e58b07c, 0x20d1bbd5, 0x0bc4d840, + 0x454dd3e9, 0x96d6cf12, 0xd85fc4bb, 0xea91f0a5, 0xa418fb0c, + 0x7783e7f7, 0x390aec5e, 0x881ec2a9, 0xc697c900, 0x150cd5fb, + 0x5b85de52, 0x694bea4c, 0x27c2e1e5, 0xf459fd1e, 0xbad0f6b7, + 0x91c59522, 0xdf4c9e8b, 0x0cd78270, 0x425e89d9, 0x7090bdc7, + 0x3e19b66e, 0xed82aa95, 0xa30ba13c, 0xbba86dbf, 0xf5216616, + 0x26ba7aed, 0x68337144, 0x5afd455a, 0x14744ef3, 0xc7ef5208, + 0x896659a1, 0xa2733a34, 0xecfa319d, 0x3f612d66, 0x71e826cf, + 0x432612d1, 0x0daf1978, 0xde340583, 0x90bd0e2a, 0xef739c85, + 0xa1fa972c, 0x72618bd7, 0x3ce8807e, 0x0e26b460, 0x40afbfc9, + 0x9334a332, 0xddbda89b, 0xf6a8cb0e, 0xb821c0a7, 0x6bbadc5c, + 0x2533d7f5, 0x17fde3eb, 0x5974e842, 0x8aeff4b9, 0xc466ff10, + 0xdcc53393, 0x924c383a, 0x41d724c1, 0x0f5e2f68, 0x3d901b76, + 0x731910df, 0xa0820c24, 0xee0b078d, 0xc51e6418, 0x8b976fb1, + 0x580c734a, 0x168578e3, 0x244b4cfd, 0x6ac24754, 0xb9595baf, + 0xf7d05006}, + {0x00000000, 0x8d88fde2, 0xc060fd85, 0x4de80067, 0x5bb0fd4b, + 0xd63800a9, 0x9bd000ce, 0x1658fd2c, 0xb761fa96, 0x3ae90774, + 0x77010713, 0xfa89faf1, 0xecd107dd, 0x6159fa3f, 0x2cb1fa58, + 0xa13907ba, 0xb5b2f36d, 0x383a0e8f, 0x75d20ee8, 0xf85af30a, + 0xee020e26, 0x638af3c4, 0x2e62f3a3, 0xa3ea0e41, 0x02d309fb, + 0x8f5bf419, 0xc2b3f47e, 0x4f3b099c, 0x5963f4b0, 0xd4eb0952, + 0x99030935, 0x148bf4d7, 0xb014e09b, 0x3d9c1d79, 0x70741d1e, + 0xfdfce0fc, 0xeba41dd0, 0x662ce032, 0x2bc4e055, 0xa64c1db7, + 0x07751a0d, 0x8afde7ef, 0xc715e788, 0x4a9d1a6a, 0x5cc5e746, + 0xd14d1aa4, 0x9ca51ac3, 0x112de721, 0x05a613f6, 0x882eee14, + 0xc5c6ee73, 0x484e1391, 0x5e16eebd, 0xd39e135f, 0x9e761338, + 0x13feeeda, 0xb2c7e960, 0x3f4f1482, 0x72a714e5, 0xff2fe907, + 0xe977142b, 0x64ffe9c9, 0x2917e9ae, 0xa49f144c, 0xbb58c777, + 0x36d03a95, 0x7b383af2, 0xf6b0c710, 0xe0e83a3c, 0x6d60c7de, + 0x2088c7b9, 0xad003a5b, 0x0c393de1, 0x81b1c003, 0xcc59c064, + 0x41d13d86, 0x5789c0aa, 0xda013d48, 0x97e93d2f, 0x1a61c0cd, + 0x0eea341a, 0x8362c9f8, 0xce8ac99f, 0x4302347d, 0x555ac951, + 0xd8d234b3, 0x953a34d4, 0x18b2c936, 0xb98bce8c, 0x3403336e, + 0x79eb3309, 0xf463ceeb, 0xe23b33c7, 0x6fb3ce25, 0x225bce42, + 0xafd333a0, 0x0b4c27ec, 0x86c4da0e, 0xcb2cda69, 0x46a4278b, + 0x50fcdaa7, 0xdd742745, 0x909c2722, 0x1d14dac0, 0xbc2ddd7a, + 0x31a52098, 0x7c4d20ff, 0xf1c5dd1d, 0xe79d2031, 0x6a15ddd3, + 0x27fdddb4, 0xaa752056, 0xbefed481, 0x33762963, 0x7e9e2904, + 0xf316d4e6, 0xe54e29ca, 0x68c6d428, 0x252ed44f, 0xa8a629ad, + 0x099f2e17, 0x8417d3f5, 0xc9ffd392, 0x44772e70, 0x522fd35c, + 0xdfa72ebe, 0x924f2ed9, 0x1fc7d33b, 0xadc088af, 0x2048754d, + 0x6da0752a, 0xe02888c8, 0xf67075e4, 0x7bf88806, 0x36108861, + 0xbb987583, 0x1aa17239, 0x97298fdb, 0xdac18fbc, 0x5749725e, + 0x41118f72, 0xcc997290, 0x817172f7, 0x0cf98f15, 0x18727bc2, + 0x95fa8620, 0xd8128647, 0x559a7ba5, 0x43c28689, 0xce4a7b6b, + 0x83a27b0c, 0x0e2a86ee, 0xaf138154, 0x229b7cb6, 0x6f737cd1, + 0xe2fb8133, 0xf4a37c1f, 0x792b81fd, 0x34c3819a, 0xb94b7c78, + 0x1dd46834, 0x905c95d6, 0xddb495b1, 0x503c6853, 0x4664957f, + 0xcbec689d, 0x860468fa, 0x0b8c9518, 0xaab592a2, 0x273d6f40, + 0x6ad56f27, 0xe75d92c5, 0xf1056fe9, 0x7c8d920b, 0x3165926c, + 0xbced6f8e, 0xa8669b59, 0x25ee66bb, 0x680666dc, 0xe58e9b3e, + 0xf3d66612, 0x7e5e9bf0, 0x33b69b97, 0xbe3e6675, 0x1f0761cf, + 0x928f9c2d, 0xdf679c4a, 0x52ef61a8, 0x44b79c84, 0xc93f6166, + 0x84d76101, 0x095f9ce3, 0x16984fd8, 0x9b10b23a, 0xd6f8b25d, + 0x5b704fbf, 0x4d28b293, 0xc0a04f71, 0x8d484f16, 0x00c0b2f4, + 0xa1f9b54e, 0x2c7148ac, 0x619948cb, 0xec11b529, 0xfa494805, + 0x77c1b5e7, 0x3a29b580, 0xb7a14862, 0xa32abcb5, 0x2ea24157, + 0x634a4130, 0xeec2bcd2, 0xf89a41fe, 0x7512bc1c, 0x38fabc7b, + 0xb5724199, 0x144b4623, 0x99c3bbc1, 0xd42bbba6, 0x59a34644, + 0x4ffbbb68, 0xc273468a, 0x8f9b46ed, 0x0213bb0f, 0xa68caf43, + 0x2b0452a1, 0x66ec52c6, 0xeb64af24, 0xfd3c5208, 0x70b4afea, + 0x3d5caf8d, 0xb0d4526f, 0x11ed55d5, 0x9c65a837, 0xd18da850, + 0x5c0555b2, 0x4a5da89e, 0xc7d5557c, 0x8a3d551b, 0x07b5a8f9, + 0x133e5c2e, 0x9eb6a1cc, 0xd35ea1ab, 0x5ed65c49, 0x488ea165, + 0xc5065c87, 0x88ee5ce0, 0x0566a102, 0xa45fa6b8, 0x29d75b5a, + 0x643f5b3d, 0xe9b7a6df, 0xffef5bf3, 0x7267a611, 0x3f8fa676, + 0xb2075b94}, + {0x00000000, 0x80f0171f, 0xda91287f, 0x5a613f60, 0x6e5356bf, + 0xeea341a0, 0xb4c27ec0, 0x343269df, 0xdca6ad7e, 0x5c56ba61, + 0x06378501, 0x86c7921e, 0xb2f5fbc1, 0x3205ecde, 0x6864d3be, + 0xe894c4a1, 0x623c5cbd, 0xe2cc4ba2, 0xb8ad74c2, 0x385d63dd, + 0x0c6f0a02, 0x8c9f1d1d, 0xd6fe227d, 0x560e3562, 0xbe9af1c3, + 0x3e6ae6dc, 0x640bd9bc, 0xe4fbcea3, 0xd0c9a77c, 0x5039b063, + 0x0a588f03, 0x8aa8981c, 0xc478b97a, 0x4488ae65, 0x1ee99105, + 0x9e19861a, 0xaa2befc5, 0x2adbf8da, 0x70bac7ba, 0xf04ad0a5, + 0x18de1404, 0x982e031b, 0xc24f3c7b, 0x42bf2b64, 0x768d42bb, + 0xf67d55a4, 0xac1c6ac4, 0x2cec7ddb, 0xa644e5c7, 0x26b4f2d8, + 0x7cd5cdb8, 0xfc25daa7, 0xc817b378, 0x48e7a467, 0x12869b07, + 0x92768c18, 0x7ae248b9, 0xfa125fa6, 0xa07360c6, 0x208377d9, + 0x14b11e06, 0x94410919, 0xce203679, 0x4ed02166, 0x538074b5, + 0xd37063aa, 0x89115cca, 0x09e14bd5, 0x3dd3220a, 0xbd233515, + 0xe7420a75, 0x67b21d6a, 0x8f26d9cb, 0x0fd6ced4, 0x55b7f1b4, + 0xd547e6ab, 0xe1758f74, 0x6185986b, 0x3be4a70b, 0xbb14b014, + 0x31bc2808, 0xb14c3f17, 0xeb2d0077, 0x6bdd1768, 0x5fef7eb7, + 0xdf1f69a8, 0x857e56c8, 0x058e41d7, 0xed1a8576, 0x6dea9269, + 0x378bad09, 0xb77bba16, 0x8349d3c9, 0x03b9c4d6, 0x59d8fbb6, + 0xd928eca9, 0x97f8cdcf, 0x1708dad0, 0x4d69e5b0, 0xcd99f2af, + 0xf9ab9b70, 0x795b8c6f, 0x233ab30f, 0xa3caa410, 0x4b5e60b1, + 0xcbae77ae, 0x91cf48ce, 0x113f5fd1, 0x250d360e, 0xa5fd2111, + 0xff9c1e71, 0x7f6c096e, 0xf5c49172, 0x7534866d, 0x2f55b90d, + 0xafa5ae12, 0x9b97c7cd, 0x1b67d0d2, 0x4106efb2, 0xc1f6f8ad, + 0x29623c0c, 0xa9922b13, 0xf3f31473, 0x7303036c, 0x47316ab3, + 0xc7c17dac, 0x9da042cc, 0x1d5055d3, 0xa700e96a, 0x27f0fe75, + 0x7d91c115, 0xfd61d60a, 0xc953bfd5, 0x49a3a8ca, 0x13c297aa, + 0x933280b5, 0x7ba64414, 0xfb56530b, 0xa1376c6b, 0x21c77b74, + 0x15f512ab, 0x950505b4, 0xcf643ad4, 0x4f942dcb, 0xc53cb5d7, + 0x45cca2c8, 0x1fad9da8, 0x9f5d8ab7, 0xab6fe368, 0x2b9ff477, + 0x71fecb17, 0xf10edc08, 0x199a18a9, 0x996a0fb6, 0xc30b30d6, + 0x43fb27c9, 0x77c94e16, 0xf7395909, 0xad586669, 0x2da87176, + 0x63785010, 0xe388470f, 0xb9e9786f, 0x39196f70, 0x0d2b06af, + 0x8ddb11b0, 0xd7ba2ed0, 0x574a39cf, 0xbfdefd6e, 0x3f2eea71, + 0x654fd511, 0xe5bfc20e, 0xd18dabd1, 0x517dbcce, 0x0b1c83ae, + 0x8bec94b1, 0x01440cad, 0x81b41bb2, 0xdbd524d2, 0x5b2533cd, + 0x6f175a12, 0xefe74d0d, 0xb586726d, 0x35766572, 0xdde2a1d3, + 0x5d12b6cc, 0x077389ac, 0x87839eb3, 0xb3b1f76c, 0x3341e073, + 0x6920df13, 0xe9d0c80c, 0xf4809ddf, 0x74708ac0, 0x2e11b5a0, + 0xaee1a2bf, 0x9ad3cb60, 0x1a23dc7f, 0x4042e31f, 0xc0b2f400, + 0x282630a1, 0xa8d627be, 0xf2b718de, 0x72470fc1, 0x4675661e, + 0xc6857101, 0x9ce44e61, 0x1c14597e, 0x96bcc162, 0x164cd67d, + 0x4c2de91d, 0xccddfe02, 0xf8ef97dd, 0x781f80c2, 0x227ebfa2, + 0xa28ea8bd, 0x4a1a6c1c, 0xcaea7b03, 0x908b4463, 0x107b537c, + 0x24493aa3, 0xa4b92dbc, 0xfed812dc, 0x7e2805c3, 0x30f824a5, + 0xb00833ba, 0xea690cda, 0x6a991bc5, 0x5eab721a, 0xde5b6505, + 0x843a5a65, 0x04ca4d7a, 0xec5e89db, 0x6cae9ec4, 0x36cfa1a4, + 0xb63fb6bb, 0x820ddf64, 0x02fdc87b, 0x589cf71b, 0xd86ce004, + 0x52c47818, 0xd2346f07, 0x88555067, 0x08a54778, 0x3c972ea7, + 0xbc6739b8, 0xe60606d8, 0x66f611c7, 0x8e62d566, 0x0e92c279, + 0x54f3fd19, 0xd403ea06, 0xe03183d9, 0x60c194c6, 0x3aa0aba6, + 0xba50bcb9}, + {0x00000000, 0x9570d495, 0xf190af6b, 0x64e07bfe, 0x38505897, + 0xad208c02, 0xc9c0f7fc, 0x5cb02369, 0x70a0b12e, 0xe5d065bb, + 0x81301e45, 0x1440cad0, 0x48f0e9b9, 0xdd803d2c, 0xb96046d2, + 0x2c109247, 0xe141625c, 0x7431b6c9, 0x10d1cd37, 0x85a119a2, + 0xd9113acb, 0x4c61ee5e, 0x288195a0, 0xbdf14135, 0x91e1d372, + 0x049107e7, 0x60717c19, 0xf501a88c, 0xa9b18be5, 0x3cc15f70, + 0x5821248e, 0xcd51f01b, 0x19f3c2f9, 0x8c83166c, 0xe8636d92, + 0x7d13b907, 0x21a39a6e, 0xb4d34efb, 0xd0333505, 0x4543e190, + 0x695373d7, 0xfc23a742, 0x98c3dcbc, 0x0db30829, 0x51032b40, + 0xc473ffd5, 0xa093842b, 0x35e350be, 0xf8b2a0a5, 0x6dc27430, + 0x09220fce, 0x9c52db5b, 0xc0e2f832, 0x55922ca7, 0x31725759, + 0xa40283cc, 0x8812118b, 0x1d62c51e, 0x7982bee0, 0xecf26a75, + 0xb042491c, 0x25329d89, 0x41d2e677, 0xd4a232e2, 0x33e785f2, + 0xa6975167, 0xc2772a99, 0x5707fe0c, 0x0bb7dd65, 0x9ec709f0, + 0xfa27720e, 0x6f57a69b, 0x434734dc, 0xd637e049, 0xb2d79bb7, + 0x27a74f22, 0x7b176c4b, 0xee67b8de, 0x8a87c320, 0x1ff717b5, + 0xd2a6e7ae, 0x47d6333b, 0x233648c5, 0xb6469c50, 0xeaf6bf39, + 0x7f866bac, 0x1b661052, 0x8e16c4c7, 0xa2065680, 0x37768215, + 0x5396f9eb, 0xc6e62d7e, 0x9a560e17, 0x0f26da82, 0x6bc6a17c, + 0xfeb675e9, 0x2a14470b, 0xbf64939e, 0xdb84e860, 0x4ef43cf5, + 0x12441f9c, 0x8734cb09, 0xe3d4b0f7, 0x76a46462, 0x5ab4f625, + 0xcfc422b0, 0xab24594e, 0x3e548ddb, 0x62e4aeb2, 0xf7947a27, + 0x937401d9, 0x0604d54c, 0xcb552557, 0x5e25f1c2, 0x3ac58a3c, + 0xafb55ea9, 0xf3057dc0, 0x6675a955, 0x0295d2ab, 0x97e5063e, + 0xbbf59479, 0x2e8540ec, 0x4a653b12, 0xdf15ef87, 0x83a5ccee, + 0x16d5187b, 0x72356385, 0xe745b710, 0x67cf0be4, 0xf2bfdf71, + 0x965fa48f, 0x032f701a, 0x5f9f5373, 0xcaef87e6, 0xae0ffc18, + 0x3b7f288d, 0x176fbaca, 0x821f6e5f, 0xe6ff15a1, 0x738fc134, + 0x2f3fe25d, 0xba4f36c8, 0xdeaf4d36, 0x4bdf99a3, 0x868e69b8, + 0x13febd2d, 0x771ec6d3, 0xe26e1246, 0xbede312f, 0x2baee5ba, + 0x4f4e9e44, 0xda3e4ad1, 0xf62ed896, 0x635e0c03, 0x07be77fd, + 0x92cea368, 0xce7e8001, 0x5b0e5494, 0x3fee2f6a, 0xaa9efbff, + 0x7e3cc91d, 0xeb4c1d88, 0x8fac6676, 0x1adcb2e3, 0x466c918a, + 0xd31c451f, 0xb7fc3ee1, 0x228cea74, 0x0e9c7833, 0x9becaca6, + 0xff0cd758, 0x6a7c03cd, 0x36cc20a4, 0xa3bcf431, 0xc75c8fcf, + 0x522c5b5a, 0x9f7dab41, 0x0a0d7fd4, 0x6eed042a, 0xfb9dd0bf, + 0xa72df3d6, 0x325d2743, 0x56bd5cbd, 0xc3cd8828, 0xefdd1a6f, + 0x7aadcefa, 0x1e4db504, 0x8b3d6191, 0xd78d42f8, 0x42fd966d, + 0x261ded93, 0xb36d3906, 0x54288e16, 0xc1585a83, 0xa5b8217d, + 0x30c8f5e8, 0x6c78d681, 0xf9080214, 0x9de879ea, 0x0898ad7f, + 0x24883f38, 0xb1f8ebad, 0xd5189053, 0x406844c6, 0x1cd867af, + 0x89a8b33a, 0xed48c8c4, 0x78381c51, 0xb569ec4a, 0x201938df, + 0x44f94321, 0xd18997b4, 0x8d39b4dd, 0x18496048, 0x7ca91bb6, + 0xe9d9cf23, 0xc5c95d64, 0x50b989f1, 0x3459f20f, 0xa129269a, + 0xfd9905f3, 0x68e9d166, 0x0c09aa98, 0x99797e0d, 0x4ddb4cef, + 0xd8ab987a, 0xbc4be384, 0x293b3711, 0x758b1478, 0xe0fbc0ed, + 0x841bbb13, 0x116b6f86, 0x3d7bfdc1, 0xa80b2954, 0xcceb52aa, + 0x599b863f, 0x052ba556, 0x905b71c3, 0xf4bb0a3d, 0x61cbdea8, + 0xac9a2eb3, 0x39eafa26, 0x5d0a81d8, 0xc87a554d, 0x94ca7624, + 0x01baa2b1, 0x655ad94f, 0xf02a0dda, 0xdc3a9f9d, 0x494a4b08, + 0x2daa30f6, 0xb8dae463, 0xe46ac70a, 0x711a139f, 0x15fa6861, + 0x808abcf4}, + {0x00000000, 0xcf9e17c8, 0x444d29d1, 0x8bd33e19, 0x889a53a2, + 0x4704446a, 0xccd77a73, 0x03496dbb, 0xca45a105, 0x05dbb6cd, + 0x8e0888d4, 0x41969f1c, 0x42dff2a7, 0x8d41e56f, 0x0692db76, + 0xc90cccbe, 0x4ffa444b, 0x80645383, 0x0bb76d9a, 0xc4297a52, + 0xc76017e9, 0x08fe0021, 0x832d3e38, 0x4cb329f0, 0x85bfe54e, + 0x4a21f286, 0xc1f2cc9f, 0x0e6cdb57, 0x0d25b6ec, 0xc2bba124, + 0x49689f3d, 0x86f688f5, 0x9ff48896, 0x506a9f5e, 0xdbb9a147, + 0x1427b68f, 0x176edb34, 0xd8f0ccfc, 0x5323f2e5, 0x9cbde52d, + 0x55b12993, 0x9a2f3e5b, 0x11fc0042, 0xde62178a, 0xdd2b7a31, + 0x12b56df9, 0x996653e0, 0x56f84428, 0xd00eccdd, 0x1f90db15, + 0x9443e50c, 0x5bddf2c4, 0x58949f7f, 0x970a88b7, 0x1cd9b6ae, + 0xd347a166, 0x1a4b6dd8, 0xd5d57a10, 0x5e064409, 0x919853c1, + 0x92d13e7a, 0x5d4f29b2, 0xd69c17ab, 0x19020063, 0xe498176d, + 0x2b0600a5, 0xa0d53ebc, 0x6f4b2974, 0x6c0244cf, 0xa39c5307, + 0x284f6d1e, 0xe7d17ad6, 0x2eddb668, 0xe143a1a0, 0x6a909fb9, + 0xa50e8871, 0xa647e5ca, 0x69d9f202, 0xe20acc1b, 0x2d94dbd3, + 0xab625326, 0x64fc44ee, 0xef2f7af7, 0x20b16d3f, 0x23f80084, + 0xec66174c, 0x67b52955, 0xa82b3e9d, 0x6127f223, 0xaeb9e5eb, + 0x256adbf2, 0xeaf4cc3a, 0xe9bda181, 0x2623b649, 0xadf08850, + 0x626e9f98, 0x7b6c9ffb, 0xb4f28833, 0x3f21b62a, 0xf0bfa1e2, + 0xf3f6cc59, 0x3c68db91, 0xb7bbe588, 0x7825f240, 0xb1293efe, + 0x7eb72936, 0xf564172f, 0x3afa00e7, 0x39b36d5c, 0xf62d7a94, + 0x7dfe448d, 0xb2605345, 0x3496dbb0, 0xfb08cc78, 0x70dbf261, + 0xbf45e5a9, 0xbc0c8812, 0x73929fda, 0xf841a1c3, 0x37dfb60b, + 0xfed37ab5, 0x314d6d7d, 0xba9e5364, 0x750044ac, 0x76492917, + 0xb9d73edf, 0x320400c6, 0xfd9a170e, 0x1241289b, 0xdddf3f53, + 0x560c014a, 0x99921682, 0x9adb7b39, 0x55456cf1, 0xde9652e8, + 0x11084520, 0xd804899e, 0x179a9e56, 0x9c49a04f, 0x53d7b787, + 0x509eda3c, 0x9f00cdf4, 0x14d3f3ed, 0xdb4de425, 0x5dbb6cd0, + 0x92257b18, 0x19f64501, 0xd66852c9, 0xd5213f72, 0x1abf28ba, + 0x916c16a3, 0x5ef2016b, 0x97fecdd5, 0x5860da1d, 0xd3b3e404, + 0x1c2df3cc, 0x1f649e77, 0xd0fa89bf, 0x5b29b7a6, 0x94b7a06e, + 0x8db5a00d, 0x422bb7c5, 0xc9f889dc, 0x06669e14, 0x052ff3af, + 0xcab1e467, 0x4162da7e, 0x8efccdb6, 0x47f00108, 0x886e16c0, + 0x03bd28d9, 0xcc233f11, 0xcf6a52aa, 0x00f44562, 0x8b277b7b, + 0x44b96cb3, 0xc24fe446, 0x0dd1f38e, 0x8602cd97, 0x499cda5f, + 0x4ad5b7e4, 0x854ba02c, 0x0e989e35, 0xc10689fd, 0x080a4543, + 0xc794528b, 0x4c476c92, 0x83d97b5a, 0x809016e1, 0x4f0e0129, + 0xc4dd3f30, 0x0b4328f8, 0xf6d93ff6, 0x3947283e, 0xb2941627, + 0x7d0a01ef, 0x7e436c54, 0xb1dd7b9c, 0x3a0e4585, 0xf590524d, + 0x3c9c9ef3, 0xf302893b, 0x78d1b722, 0xb74fa0ea, 0xb406cd51, + 0x7b98da99, 0xf04be480, 0x3fd5f348, 0xb9237bbd, 0x76bd6c75, + 0xfd6e526c, 0x32f045a4, 0x31b9281f, 0xfe273fd7, 0x75f401ce, + 0xba6a1606, 0x7366dab8, 0xbcf8cd70, 0x372bf369, 0xf8b5e4a1, + 0xfbfc891a, 0x34629ed2, 0xbfb1a0cb, 0x702fb703, 0x692db760, + 0xa6b3a0a8, 0x2d609eb1, 0xe2fe8979, 0xe1b7e4c2, 0x2e29f30a, + 0xa5facd13, 0x6a64dadb, 0xa3681665, 0x6cf601ad, 0xe7253fb4, + 0x28bb287c, 0x2bf245c7, 0xe46c520f, 0x6fbf6c16, 0xa0217bde, + 0x26d7f32b, 0xe949e4e3, 0x629adafa, 0xad04cd32, 0xae4da089, + 0x61d3b741, 0xea008958, 0x259e9e90, 0xec92522e, 0x230c45e6, + 0xa8df7bff, 0x67416c37, 0x6408018c, 0xab961644, 0x2045285d, + 0xefdb3f95}, + {0x00000000, 0x24825136, 0x4904a26c, 0x6d86f35a, 0x920944d8, + 0xb68b15ee, 0xdb0de6b4, 0xff8fb782, 0xff638ff1, 0xdbe1dec7, + 0xb6672d9d, 0x92e57cab, 0x6d6acb29, 0x49e89a1f, 0x246e6945, + 0x00ec3873, 0x25b619a3, 0x01344895, 0x6cb2bbcf, 0x4830eaf9, + 0xb7bf5d7b, 0x933d0c4d, 0xfebbff17, 0xda39ae21, 0xdad59652, + 0xfe57c764, 0x93d1343e, 0xb7536508, 0x48dcd28a, 0x6c5e83bc, + 0x01d870e6, 0x255a21d0, 0x4b6c3346, 0x6fee6270, 0x0268912a, + 0x26eac01c, 0xd965779e, 0xfde726a8, 0x9061d5f2, 0xb4e384c4, + 0xb40fbcb7, 0x908ded81, 0xfd0b1edb, 0xd9894fed, 0x2606f86f, + 0x0284a959, 0x6f025a03, 0x4b800b35, 0x6eda2ae5, 0x4a587bd3, + 0x27de8889, 0x035cd9bf, 0xfcd36e3d, 0xd8513f0b, 0xb5d7cc51, + 0x91559d67, 0x91b9a514, 0xb53bf422, 0xd8bd0778, 0xfc3f564e, + 0x03b0e1cc, 0x2732b0fa, 0x4ab443a0, 0x6e361296, 0x96d8668c, + 0xb25a37ba, 0xdfdcc4e0, 0xfb5e95d6, 0x04d12254, 0x20537362, + 0x4dd58038, 0x6957d10e, 0x69bbe97d, 0x4d39b84b, 0x20bf4b11, + 0x043d1a27, 0xfbb2ada5, 0xdf30fc93, 0xb2b60fc9, 0x96345eff, + 0xb36e7f2f, 0x97ec2e19, 0xfa6add43, 0xdee88c75, 0x21673bf7, + 0x05e56ac1, 0x6863999b, 0x4ce1c8ad, 0x4c0df0de, 0x688fa1e8, + 0x050952b2, 0x218b0384, 0xde04b406, 0xfa86e530, 0x9700166a, + 0xb382475c, 0xddb455ca, 0xf93604fc, 0x94b0f7a6, 0xb032a690, + 0x4fbd1112, 0x6b3f4024, 0x06b9b37e, 0x223be248, 0x22d7da3b, + 0x06558b0d, 0x6bd37857, 0x4f512961, 0xb0de9ee3, 0x945ccfd5, + 0xf9da3c8f, 0xdd586db9, 0xf8024c69, 0xdc801d5f, 0xb106ee05, + 0x9584bf33, 0x6a0b08b1, 0x4e895987, 0x230faadd, 0x078dfbeb, + 0x0761c398, 0x23e392ae, 0x4e6561f4, 0x6ae730c2, 0x95688740, + 0xb1ead676, 0xdc6c252c, 0xf8ee741a, 0xf6c1cb59, 0xd2439a6f, + 0xbfc56935, 0x9b473803, 0x64c88f81, 0x404adeb7, 0x2dcc2ded, + 0x094e7cdb, 0x09a244a8, 0x2d20159e, 0x40a6e6c4, 0x6424b7f2, + 0x9bab0070, 0xbf295146, 0xd2afa21c, 0xf62df32a, 0xd377d2fa, + 0xf7f583cc, 0x9a737096, 0xbef121a0, 0x417e9622, 0x65fcc714, + 0x087a344e, 0x2cf86578, 0x2c145d0b, 0x08960c3d, 0x6510ff67, + 0x4192ae51, 0xbe1d19d3, 0x9a9f48e5, 0xf719bbbf, 0xd39bea89, + 0xbdadf81f, 0x992fa929, 0xf4a95a73, 0xd02b0b45, 0x2fa4bcc7, + 0x0b26edf1, 0x66a01eab, 0x42224f9d, 0x42ce77ee, 0x664c26d8, + 0x0bcad582, 0x2f4884b4, 0xd0c73336, 0xf4456200, 0x99c3915a, + 0xbd41c06c, 0x981be1bc, 0xbc99b08a, 0xd11f43d0, 0xf59d12e6, + 0x0a12a564, 0x2e90f452, 0x43160708, 0x6794563e, 0x67786e4d, + 0x43fa3f7b, 0x2e7ccc21, 0x0afe9d17, 0xf5712a95, 0xd1f37ba3, + 0xbc7588f9, 0x98f7d9cf, 0x6019add5, 0x449bfce3, 0x291d0fb9, + 0x0d9f5e8f, 0xf210e90d, 0xd692b83b, 0xbb144b61, 0x9f961a57, + 0x9f7a2224, 0xbbf87312, 0xd67e8048, 0xf2fcd17e, 0x0d7366fc, + 0x29f137ca, 0x4477c490, 0x60f595a6, 0x45afb476, 0x612de540, + 0x0cab161a, 0x2829472c, 0xd7a6f0ae, 0xf324a198, 0x9ea252c2, + 0xba2003f4, 0xbacc3b87, 0x9e4e6ab1, 0xf3c899eb, 0xd74ac8dd, + 0x28c57f5f, 0x0c472e69, 0x61c1dd33, 0x45438c05, 0x2b759e93, + 0x0ff7cfa5, 0x62713cff, 0x46f36dc9, 0xb97cda4b, 0x9dfe8b7d, + 0xf0787827, 0xd4fa2911, 0xd4161162, 0xf0944054, 0x9d12b30e, + 0xb990e238, 0x461f55ba, 0x629d048c, 0x0f1bf7d6, 0x2b99a6e0, + 0x0ec38730, 0x2a41d606, 0x47c7255c, 0x6345746a, 0x9ccac3e8, + 0xb84892de, 0xd5ce6184, 0xf14c30b2, 0xf1a008c1, 0xd52259f7, + 0xb8a4aaad, 0x9c26fb9b, 0x63a94c19, 0x472b1d2f, 0x2aadee75, + 0x0e2fbf43}, + {0x00000000, 0x36f290f3, 0x6de521e6, 0x5b17b115, 0xdbca43cc, + 0xed38d33f, 0xb62f622a, 0x80ddf2d9, 0x6ce581d9, 0x5a17112a, + 0x0100a03f, 0x37f230cc, 0xb72fc215, 0x81dd52e6, 0xdacae3f3, + 0xec387300, 0xd9cb03b2, 0xef399341, 0xb42e2254, 0x82dcb2a7, + 0x0201407e, 0x34f3d08d, 0x6fe46198, 0x5916f16b, 0xb52e826b, + 0x83dc1298, 0xd8cba38d, 0xee39337e, 0x6ee4c1a7, 0x58165154, + 0x0301e041, 0x35f370b2, 0x68e70125, 0x5e1591d6, 0x050220c3, + 0x33f0b030, 0xb32d42e9, 0x85dfd21a, 0xdec8630f, 0xe83af3fc, + 0x040280fc, 0x32f0100f, 0x69e7a11a, 0x5f1531e9, 0xdfc8c330, + 0xe93a53c3, 0xb22de2d6, 0x84df7225, 0xb12c0297, 0x87de9264, + 0xdcc92371, 0xea3bb382, 0x6ae6415b, 0x5c14d1a8, 0x070360bd, + 0x31f1f04e, 0xddc9834e, 0xeb3b13bd, 0xb02ca2a8, 0x86de325b, + 0x0603c082, 0x30f15071, 0x6be6e164, 0x5d147197, 0xd1ce024a, + 0xe73c92b9, 0xbc2b23ac, 0x8ad9b35f, 0x0a044186, 0x3cf6d175, + 0x67e16060, 0x5113f093, 0xbd2b8393, 0x8bd91360, 0xd0cea275, + 0xe63c3286, 0x66e1c05f, 0x501350ac, 0x0b04e1b9, 0x3df6714a, + 0x080501f8, 0x3ef7910b, 0x65e0201e, 0x5312b0ed, 0xd3cf4234, + 0xe53dd2c7, 0xbe2a63d2, 0x88d8f321, 0x64e08021, 0x521210d2, + 0x0905a1c7, 0x3ff73134, 0xbf2ac3ed, 0x89d8531e, 0xd2cfe20b, + 0xe43d72f8, 0xb929036f, 0x8fdb939c, 0xd4cc2289, 0xe23eb27a, + 0x62e340a3, 0x5411d050, 0x0f066145, 0x39f4f1b6, 0xd5cc82b6, + 0xe33e1245, 0xb829a350, 0x8edb33a3, 0x0e06c17a, 0x38f45189, + 0x63e3e09c, 0x5511706f, 0x60e200dd, 0x5610902e, 0x0d07213b, + 0x3bf5b1c8, 0xbb284311, 0x8ddad3e2, 0xd6cd62f7, 0xe03ff204, + 0x0c078104, 0x3af511f7, 0x61e2a0e2, 0x57103011, 0xd7cdc2c8, + 0xe13f523b, 0xba28e32e, 0x8cda73dd, 0x78ed02d5, 0x4e1f9226, + 0x15082333, 0x23fab3c0, 0xa3274119, 0x95d5d1ea, 0xcec260ff, + 0xf830f00c, 0x1408830c, 0x22fa13ff, 0x79eda2ea, 0x4f1f3219, + 0xcfc2c0c0, 0xf9305033, 0xa227e126, 0x94d571d5, 0xa1260167, + 0x97d49194, 0xccc32081, 0xfa31b072, 0x7aec42ab, 0x4c1ed258, + 0x1709634d, 0x21fbf3be, 0xcdc380be, 0xfb31104d, 0xa026a158, + 0x96d431ab, 0x1609c372, 0x20fb5381, 0x7bece294, 0x4d1e7267, + 0x100a03f0, 0x26f89303, 0x7def2216, 0x4b1db2e5, 0xcbc0403c, + 0xfd32d0cf, 0xa62561da, 0x90d7f129, 0x7cef8229, 0x4a1d12da, + 0x110aa3cf, 0x27f8333c, 0xa725c1e5, 0x91d75116, 0xcac0e003, + 0xfc3270f0, 0xc9c10042, 0xff3390b1, 0xa42421a4, 0x92d6b157, + 0x120b438e, 0x24f9d37d, 0x7fee6268, 0x491cf29b, 0xa524819b, + 0x93d61168, 0xc8c1a07d, 0xfe33308e, 0x7eeec257, 0x481c52a4, + 0x130be3b1, 0x25f97342, 0xa923009f, 0x9fd1906c, 0xc4c62179, + 0xf234b18a, 0x72e94353, 0x441bd3a0, 0x1f0c62b5, 0x29fef246, + 0xc5c68146, 0xf33411b5, 0xa823a0a0, 0x9ed13053, 0x1e0cc28a, + 0x28fe5279, 0x73e9e36c, 0x451b739f, 0x70e8032d, 0x461a93de, + 0x1d0d22cb, 0x2bffb238, 0xab2240e1, 0x9dd0d012, 0xc6c76107, + 0xf035f1f4, 0x1c0d82f4, 0x2aff1207, 0x71e8a312, 0x471a33e1, + 0xc7c7c138, 0xf13551cb, 0xaa22e0de, 0x9cd0702d, 0xc1c401ba, + 0xf7369149, 0xac21205c, 0x9ad3b0af, 0x1a0e4276, 0x2cfcd285, + 0x77eb6390, 0x4119f363, 0xad218063, 0x9bd31090, 0xc0c4a185, + 0xf6363176, 0x76ebc3af, 0x4019535c, 0x1b0ee249, 0x2dfc72ba, + 0x180f0208, 0x2efd92fb, 0x75ea23ee, 0x4318b31d, 0xc3c541c4, + 0xf537d137, 0xae206022, 0x98d2f0d1, 0x74ea83d1, 0x42181322, + 0x190fa237, 0x2ffd32c4, 0xaf20c01d, 0x99d250ee, 0xc2c5e1fb, + 0xf4377108}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0xf390f23600000000, 0xe621e56d00000000, + 0x15b1175b00000000, 0xcc43cadb00000000, 0x3fd338ed00000000, + 0x2a622fb600000000, 0xd9f2dd8000000000, 0xd981e56c00000000, + 0x2a11175a00000000, 0x3fa0000100000000, 0xcc30f23700000000, + 0x15c22fb700000000, 0xe652dd8100000000, 0xf3e3cada00000000, + 0x007338ec00000000, 0xb203cbd900000000, 0x419339ef00000000, + 0x54222eb400000000, 0xa7b2dc8200000000, 0x7e40010200000000, + 0x8dd0f33400000000, 0x9861e46f00000000, 0x6bf1165900000000, + 0x6b822eb500000000, 0x9812dc8300000000, 0x8da3cbd800000000, + 0x7e3339ee00000000, 0xa7c1e46e00000000, 0x5451165800000000, + 0x41e0010300000000, 0xb270f33500000000, 0x2501e76800000000, + 0xd691155e00000000, 0xc320020500000000, 0x30b0f03300000000, + 0xe9422db300000000, 0x1ad2df8500000000, 0x0f63c8de00000000, + 0xfcf33ae800000000, 0xfc80020400000000, 0x0f10f03200000000, + 0x1aa1e76900000000, 0xe931155f00000000, 0x30c3c8df00000000, + 0xc3533ae900000000, 0xd6e22db200000000, 0x2572df8400000000, + 0x97022cb100000000, 0x6492de8700000000, 0x7123c9dc00000000, + 0x82b33bea00000000, 0x5b41e66a00000000, 0xa8d1145c00000000, + 0xbd60030700000000, 0x4ef0f13100000000, 0x4e83c9dd00000000, + 0xbd133beb00000000, 0xa8a22cb000000000, 0x5b32de8600000000, + 0x82c0030600000000, 0x7150f13000000000, 0x64e1e66b00000000, + 0x9771145d00000000, 0x4a02ced100000000, 0xb9923ce700000000, + 0xac232bbc00000000, 0x5fb3d98a00000000, 0x8641040a00000000, + 0x75d1f63c00000000, 0x6060e16700000000, 0x93f0135100000000, + 0x93832bbd00000000, 0x6013d98b00000000, 0x75a2ced000000000, + 0x86323ce600000000, 0x5fc0e16600000000, 0xac50135000000000, + 0xb9e1040b00000000, 0x4a71f63d00000000, 0xf801050800000000, + 0x0b91f73e00000000, 0x1e20e06500000000, 0xedb0125300000000, + 0x3442cfd300000000, 0xc7d23de500000000, 0xd2632abe00000000, + 0x21f3d88800000000, 0x2180e06400000000, 0xd210125200000000, + 0xc7a1050900000000, 0x3431f73f00000000, 0xedc32abf00000000, + 0x1e53d88900000000, 0x0be2cfd200000000, 0xf8723de400000000, + 0x6f0329b900000000, 0x9c93db8f00000000, 0x8922ccd400000000, + 0x7ab23ee200000000, 0xa340e36200000000, 0x50d0115400000000, + 0x4561060f00000000, 0xb6f1f43900000000, 0xb682ccd500000000, + 0x45123ee300000000, 0x50a329b800000000, 0xa333db8e00000000, + 0x7ac1060e00000000, 0x8951f43800000000, 0x9ce0e36300000000, + 0x6f70115500000000, 0xdd00e26000000000, 0x2e90105600000000, + 0x3b21070d00000000, 0xc8b1f53b00000000, 0x114328bb00000000, + 0xe2d3da8d00000000, 0xf762cdd600000000, 0x04f23fe000000000, + 0x0481070c00000000, 0xf711f53a00000000, 0xe2a0e26100000000, + 0x1130105700000000, 0xc8c2cdd700000000, 0x3b523fe100000000, + 0x2ee328ba00000000, 0xdd73da8c00000000, 0xd502ed7800000000, + 0x26921f4e00000000, 0x3323081500000000, 0xc0b3fa2300000000, + 0x194127a300000000, 0xead1d59500000000, 0xff60c2ce00000000, + 0x0cf030f800000000, 0x0c83081400000000, 0xff13fa2200000000, + 0xeaa2ed7900000000, 0x19321f4f00000000, 0xc0c0c2cf00000000, + 0x335030f900000000, 0x26e127a200000000, 0xd571d59400000000, + 0x670126a100000000, 0x9491d49700000000, 0x8120c3cc00000000, + 0x72b031fa00000000, 0xab42ec7a00000000, 0x58d21e4c00000000, + 0x4d63091700000000, 0xbef3fb2100000000, 0xbe80c3cd00000000, + 0x4d1031fb00000000, 0x58a126a000000000, 0xab31d49600000000, + 0x72c3091600000000, 0x8153fb2000000000, 0x94e2ec7b00000000, + 0x67721e4d00000000, 0xf0030a1000000000, 0x0393f82600000000, + 0x1622ef7d00000000, 0xe5b21d4b00000000, 0x3c40c0cb00000000, + 0xcfd032fd00000000, 0xda6125a600000000, 0x29f1d79000000000, + 0x2982ef7c00000000, 0xda121d4a00000000, 0xcfa30a1100000000, + 0x3c33f82700000000, 0xe5c125a700000000, 0x1651d79100000000, + 0x03e0c0ca00000000, 0xf07032fc00000000, 0x4200c1c900000000, + 0xb19033ff00000000, 0xa42124a400000000, 0x57b1d69200000000, + 0x8e430b1200000000, 0x7dd3f92400000000, 0x6862ee7f00000000, + 0x9bf21c4900000000, 0x9b8124a500000000, 0x6811d69300000000, + 0x7da0c1c800000000, 0x8e3033fe00000000, 0x57c2ee7e00000000, + 0xa4521c4800000000, 0xb1e30b1300000000, 0x4273f92500000000, + 0x9f0023a900000000, 0x6c90d19f00000000, 0x7921c6c400000000, + 0x8ab134f200000000, 0x5343e97200000000, 0xa0d31b4400000000, + 0xb5620c1f00000000, 0x46f2fe2900000000, 0x4681c6c500000000, + 0xb51134f300000000, 0xa0a023a800000000, 0x5330d19e00000000, + 0x8ac20c1e00000000, 0x7952fe2800000000, 0x6ce3e97300000000, + 0x9f731b4500000000, 0x2d03e87000000000, 0xde931a4600000000, + 0xcb220d1d00000000, 0x38b2ff2b00000000, 0xe14022ab00000000, + 0x12d0d09d00000000, 0x0761c7c600000000, 0xf4f135f000000000, + 0xf4820d1c00000000, 0x0712ff2a00000000, 0x12a3e87100000000, + 0xe1331a4700000000, 0x38c1c7c700000000, 0xcb5135f100000000, + 0xdee022aa00000000, 0x2d70d09c00000000, 0xba01c4c100000000, + 0x499136f700000000, 0x5c2021ac00000000, 0xafb0d39a00000000, + 0x76420e1a00000000, 0x85d2fc2c00000000, 0x9063eb7700000000, + 0x63f3194100000000, 0x638021ad00000000, 0x9010d39b00000000, + 0x85a1c4c000000000, 0x763136f600000000, 0xafc3eb7600000000, + 0x5c53194000000000, 0x49e20e1b00000000, 0xba72fc2d00000000, + 0x08020f1800000000, 0xfb92fd2e00000000, 0xee23ea7500000000, + 0x1db3184300000000, 0xc441c5c300000000, 0x37d137f500000000, + 0x226020ae00000000, 0xd1f0d29800000000, 0xd183ea7400000000, + 0x2213184200000000, 0x37a20f1900000000, 0xc432fd2f00000000, + 0x1dc020af00000000, 0xee50d29900000000, 0xfbe1c5c200000000, + 0x087137f400000000}, + {0x0000000000000000, 0x3651822400000000, 0x6ca2044900000000, + 0x5af3866d00000000, 0xd844099200000000, 0xee158bb600000000, + 0xb4e60ddb00000000, 0x82b78fff00000000, 0xf18f63ff00000000, + 0xc7dee1db00000000, 0x9d2d67b600000000, 0xab7ce59200000000, + 0x29cb6a6d00000000, 0x1f9ae84900000000, 0x45696e2400000000, + 0x7338ec0000000000, 0xa319b62500000000, 0x9548340100000000, + 0xcfbbb26c00000000, 0xf9ea304800000000, 0x7b5dbfb700000000, + 0x4d0c3d9300000000, 0x17ffbbfe00000000, 0x21ae39da00000000, + 0x5296d5da00000000, 0x64c757fe00000000, 0x3e34d19300000000, + 0x086553b700000000, 0x8ad2dc4800000000, 0xbc835e6c00000000, + 0xe670d80100000000, 0xd0215a2500000000, 0x46336c4b00000000, + 0x7062ee6f00000000, 0x2a91680200000000, 0x1cc0ea2600000000, + 0x9e7765d900000000, 0xa826e7fd00000000, 0xf2d5619000000000, + 0xc484e3b400000000, 0xb7bc0fb400000000, 0x81ed8d9000000000, + 0xdb1e0bfd00000000, 0xed4f89d900000000, 0x6ff8062600000000, + 0x59a9840200000000, 0x035a026f00000000, 0x350b804b00000000, + 0xe52ada6e00000000, 0xd37b584a00000000, 0x8988de2700000000, + 0xbfd95c0300000000, 0x3d6ed3fc00000000, 0x0b3f51d800000000, + 0x51ccd7b500000000, 0x679d559100000000, 0x14a5b99100000000, + 0x22f43bb500000000, 0x7807bdd800000000, 0x4e563ffc00000000, + 0xcce1b00300000000, 0xfab0322700000000, 0xa043b44a00000000, + 0x9612366e00000000, 0x8c66d89600000000, 0xba375ab200000000, + 0xe0c4dcdf00000000, 0xd6955efb00000000, 0x5422d10400000000, + 0x6273532000000000, 0x3880d54d00000000, 0x0ed1576900000000, + 0x7de9bb6900000000, 0x4bb8394d00000000, 0x114bbf2000000000, + 0x271a3d0400000000, 0xa5adb2fb00000000, 0x93fc30df00000000, + 0xc90fb6b200000000, 0xff5e349600000000, 0x2f7f6eb300000000, + 0x192eec9700000000, 0x43dd6afa00000000, 0x758ce8de00000000, + 0xf73b672100000000, 0xc16ae50500000000, 0x9b99636800000000, + 0xadc8e14c00000000, 0xdef00d4c00000000, 0xe8a18f6800000000, + 0xb252090500000000, 0x84038b2100000000, 0x06b404de00000000, + 0x30e586fa00000000, 0x6a16009700000000, 0x5c4782b300000000, + 0xca55b4dd00000000, 0xfc0436f900000000, 0xa6f7b09400000000, + 0x90a632b000000000, 0x1211bd4f00000000, 0x24403f6b00000000, + 0x7eb3b90600000000, 0x48e23b2200000000, 0x3bdad72200000000, + 0x0d8b550600000000, 0x5778d36b00000000, 0x6129514f00000000, + 0xe39edeb000000000, 0xd5cf5c9400000000, 0x8f3cdaf900000000, + 0xb96d58dd00000000, 0x694c02f800000000, 0x5f1d80dc00000000, + 0x05ee06b100000000, 0x33bf849500000000, 0xb1080b6a00000000, + 0x8759894e00000000, 0xddaa0f2300000000, 0xebfb8d0700000000, + 0x98c3610700000000, 0xae92e32300000000, 0xf461654e00000000, + 0xc230e76a00000000, 0x4087689500000000, 0x76d6eab100000000, + 0x2c256cdc00000000, 0x1a74eef800000000, 0x59cbc1f600000000, + 0x6f9a43d200000000, 0x3569c5bf00000000, 0x0338479b00000000, + 0x818fc86400000000, 0xb7de4a4000000000, 0xed2dcc2d00000000, + 0xdb7c4e0900000000, 0xa844a20900000000, 0x9e15202d00000000, + 0xc4e6a64000000000, 0xf2b7246400000000, 0x7000ab9b00000000, + 0x465129bf00000000, 0x1ca2afd200000000, 0x2af32df600000000, + 0xfad277d300000000, 0xcc83f5f700000000, 0x9670739a00000000, + 0xa021f1be00000000, 0x22967e4100000000, 0x14c7fc6500000000, + 0x4e347a0800000000, 0x7865f82c00000000, 0x0b5d142c00000000, + 0x3d0c960800000000, 0x67ff106500000000, 0x51ae924100000000, + 0xd3191dbe00000000, 0xe5489f9a00000000, 0xbfbb19f700000000, + 0x89ea9bd300000000, 0x1ff8adbd00000000, 0x29a92f9900000000, + 0x735aa9f400000000, 0x450b2bd000000000, 0xc7bca42f00000000, + 0xf1ed260b00000000, 0xab1ea06600000000, 0x9d4f224200000000, + 0xee77ce4200000000, 0xd8264c6600000000, 0x82d5ca0b00000000, + 0xb484482f00000000, 0x3633c7d000000000, 0x006245f400000000, + 0x5a91c39900000000, 0x6cc041bd00000000, 0xbce11b9800000000, + 0x8ab099bc00000000, 0xd0431fd100000000, 0xe6129df500000000, + 0x64a5120a00000000, 0x52f4902e00000000, 0x0807164300000000, + 0x3e56946700000000, 0x4d6e786700000000, 0x7b3ffa4300000000, + 0x21cc7c2e00000000, 0x179dfe0a00000000, 0x952a71f500000000, + 0xa37bf3d100000000, 0xf98875bc00000000, 0xcfd9f79800000000, + 0xd5ad196000000000, 0xe3fc9b4400000000, 0xb90f1d2900000000, + 0x8f5e9f0d00000000, 0x0de910f200000000, 0x3bb892d600000000, + 0x614b14bb00000000, 0x571a969f00000000, 0x24227a9f00000000, + 0x1273f8bb00000000, 0x48807ed600000000, 0x7ed1fcf200000000, + 0xfc66730d00000000, 0xca37f12900000000, 0x90c4774400000000, + 0xa695f56000000000, 0x76b4af4500000000, 0x40e52d6100000000, + 0x1a16ab0c00000000, 0x2c47292800000000, 0xaef0a6d700000000, + 0x98a124f300000000, 0xc252a29e00000000, 0xf40320ba00000000, + 0x873bccba00000000, 0xb16a4e9e00000000, 0xeb99c8f300000000, + 0xddc84ad700000000, 0x5f7fc52800000000, 0x692e470c00000000, + 0x33ddc16100000000, 0x058c434500000000, 0x939e752b00000000, + 0xa5cff70f00000000, 0xff3c716200000000, 0xc96df34600000000, + 0x4bda7cb900000000, 0x7d8bfe9d00000000, 0x277878f000000000, + 0x1129fad400000000, 0x621116d400000000, 0x544094f000000000, + 0x0eb3129d00000000, 0x38e290b900000000, 0xba551f4600000000, + 0x8c049d6200000000, 0xd6f71b0f00000000, 0xe0a6992b00000000, + 0x3087c30e00000000, 0x06d6412a00000000, 0x5c25c74700000000, + 0x6a74456300000000, 0xe8c3ca9c00000000, 0xde9248b800000000, + 0x8461ced500000000, 0xb2304cf100000000, 0xc108a0f100000000, + 0xf75922d500000000, 0xadaaa4b800000000, 0x9bfb269c00000000, + 0x194ca96300000000, 0x2f1d2b4700000000, 0x75eead2a00000000, + 0x43bf2f0e00000000}, + {0x0000000000000000, 0xc8179ecf00000000, 0xd1294d4400000000, + 0x193ed38b00000000, 0xa2539a8800000000, 0x6a44044700000000, + 0x737ad7cc00000000, 0xbb6d490300000000, 0x05a145ca00000000, + 0xcdb6db0500000000, 0xd488088e00000000, 0x1c9f964100000000, + 0xa7f2df4200000000, 0x6fe5418d00000000, 0x76db920600000000, + 0xbecc0cc900000000, 0x4b44fa4f00000000, 0x8353648000000000, + 0x9a6db70b00000000, 0x527a29c400000000, 0xe91760c700000000, + 0x2100fe0800000000, 0x383e2d8300000000, 0xf029b34c00000000, + 0x4ee5bf8500000000, 0x86f2214a00000000, 0x9fccf2c100000000, + 0x57db6c0e00000000, 0xecb6250d00000000, 0x24a1bbc200000000, + 0x3d9f684900000000, 0xf588f68600000000, 0x9688f49f00000000, + 0x5e9f6a5000000000, 0x47a1b9db00000000, 0x8fb6271400000000, + 0x34db6e1700000000, 0xfcccf0d800000000, 0xe5f2235300000000, + 0x2de5bd9c00000000, 0x9329b15500000000, 0x5b3e2f9a00000000, + 0x4200fc1100000000, 0x8a1762de00000000, 0x317a2bdd00000000, + 0xf96db51200000000, 0xe053669900000000, 0x2844f85600000000, + 0xddcc0ed000000000, 0x15db901f00000000, 0x0ce5439400000000, + 0xc4f2dd5b00000000, 0x7f9f945800000000, 0xb7880a9700000000, + 0xaeb6d91c00000000, 0x66a147d300000000, 0xd86d4b1a00000000, + 0x107ad5d500000000, 0x0944065e00000000, 0xc153989100000000, + 0x7a3ed19200000000, 0xb2294f5d00000000, 0xab179cd600000000, + 0x6300021900000000, 0x6d1798e400000000, 0xa500062b00000000, + 0xbc3ed5a000000000, 0x74294b6f00000000, 0xcf44026c00000000, + 0x07539ca300000000, 0x1e6d4f2800000000, 0xd67ad1e700000000, + 0x68b6dd2e00000000, 0xa0a143e100000000, 0xb99f906a00000000, + 0x71880ea500000000, 0xcae547a600000000, 0x02f2d96900000000, + 0x1bcc0ae200000000, 0xd3db942d00000000, 0x265362ab00000000, + 0xee44fc6400000000, 0xf77a2fef00000000, 0x3f6db12000000000, + 0x8400f82300000000, 0x4c1766ec00000000, 0x5529b56700000000, + 0x9d3e2ba800000000, 0x23f2276100000000, 0xebe5b9ae00000000, + 0xf2db6a2500000000, 0x3accf4ea00000000, 0x81a1bde900000000, + 0x49b6232600000000, 0x5088f0ad00000000, 0x989f6e6200000000, + 0xfb9f6c7b00000000, 0x3388f2b400000000, 0x2ab6213f00000000, + 0xe2a1bff000000000, 0x59ccf6f300000000, 0x91db683c00000000, + 0x88e5bbb700000000, 0x40f2257800000000, 0xfe3e29b100000000, + 0x3629b77e00000000, 0x2f1764f500000000, 0xe700fa3a00000000, + 0x5c6db33900000000, 0x947a2df600000000, 0x8d44fe7d00000000, + 0x455360b200000000, 0xb0db963400000000, 0x78cc08fb00000000, + 0x61f2db7000000000, 0xa9e545bf00000000, 0x12880cbc00000000, + 0xda9f927300000000, 0xc3a141f800000000, 0x0bb6df3700000000, + 0xb57ad3fe00000000, 0x7d6d4d3100000000, 0x64539eba00000000, + 0xac44007500000000, 0x1729497600000000, 0xdf3ed7b900000000, + 0xc600043200000000, 0x0e179afd00000000, 0x9b28411200000000, + 0x533fdfdd00000000, 0x4a010c5600000000, 0x8216929900000000, + 0x397bdb9a00000000, 0xf16c455500000000, 0xe85296de00000000, + 0x2045081100000000, 0x9e8904d800000000, 0x569e9a1700000000, + 0x4fa0499c00000000, 0x87b7d75300000000, 0x3cda9e5000000000, + 0xf4cd009f00000000, 0xedf3d31400000000, 0x25e44ddb00000000, + 0xd06cbb5d00000000, 0x187b259200000000, 0x0145f61900000000, + 0xc95268d600000000, 0x723f21d500000000, 0xba28bf1a00000000, + 0xa3166c9100000000, 0x6b01f25e00000000, 0xd5cdfe9700000000, + 0x1dda605800000000, 0x04e4b3d300000000, 0xccf32d1c00000000, + 0x779e641f00000000, 0xbf89fad000000000, 0xa6b7295b00000000, + 0x6ea0b79400000000, 0x0da0b58d00000000, 0xc5b72b4200000000, + 0xdc89f8c900000000, 0x149e660600000000, 0xaff32f0500000000, + 0x67e4b1ca00000000, 0x7eda624100000000, 0xb6cdfc8e00000000, + 0x0801f04700000000, 0xc0166e8800000000, 0xd928bd0300000000, + 0x113f23cc00000000, 0xaa526acf00000000, 0x6245f40000000000, + 0x7b7b278b00000000, 0xb36cb94400000000, 0x46e44fc200000000, + 0x8ef3d10d00000000, 0x97cd028600000000, 0x5fda9c4900000000, + 0xe4b7d54a00000000, 0x2ca04b8500000000, 0x359e980e00000000, + 0xfd8906c100000000, 0x43450a0800000000, 0x8b5294c700000000, + 0x926c474c00000000, 0x5a7bd98300000000, 0xe116908000000000, + 0x29010e4f00000000, 0x303fddc400000000, 0xf828430b00000000, + 0xf63fd9f600000000, 0x3e28473900000000, 0x271694b200000000, + 0xef010a7d00000000, 0x546c437e00000000, 0x9c7bddb100000000, + 0x85450e3a00000000, 0x4d5290f500000000, 0xf39e9c3c00000000, + 0x3b8902f300000000, 0x22b7d17800000000, 0xeaa04fb700000000, + 0x51cd06b400000000, 0x99da987b00000000, 0x80e44bf000000000, + 0x48f3d53f00000000, 0xbd7b23b900000000, 0x756cbd7600000000, + 0x6c526efd00000000, 0xa445f03200000000, 0x1f28b93100000000, + 0xd73f27fe00000000, 0xce01f47500000000, 0x06166aba00000000, + 0xb8da667300000000, 0x70cdf8bc00000000, 0x69f32b3700000000, + 0xa1e4b5f800000000, 0x1a89fcfb00000000, 0xd29e623400000000, + 0xcba0b1bf00000000, 0x03b72f7000000000, 0x60b72d6900000000, + 0xa8a0b3a600000000, 0xb19e602d00000000, 0x7989fee200000000, + 0xc2e4b7e100000000, 0x0af3292e00000000, 0x13cdfaa500000000, + 0xdbda646a00000000, 0x651668a300000000, 0xad01f66c00000000, + 0xb43f25e700000000, 0x7c28bb2800000000, 0xc745f22b00000000, + 0x0f526ce400000000, 0x166cbf6f00000000, 0xde7b21a000000000, + 0x2bf3d72600000000, 0xe3e449e900000000, 0xfada9a6200000000, + 0x32cd04ad00000000, 0x89a04dae00000000, 0x41b7d36100000000, + 0x588900ea00000000, 0x909e9e2500000000, 0x2e5292ec00000000, + 0xe6450c2300000000, 0xff7bdfa800000000, 0x376c416700000000, + 0x8c01086400000000, 0x441696ab00000000, 0x5d28452000000000, + 0x953fdbef00000000}, + {0x0000000000000000, 0x95d4709500000000, 0x6baf90f100000000, + 0xfe7be06400000000, 0x9758503800000000, 0x028c20ad00000000, + 0xfcf7c0c900000000, 0x6923b05c00000000, 0x2eb1a07000000000, + 0xbb65d0e500000000, 0x451e308100000000, 0xd0ca401400000000, + 0xb9e9f04800000000, 0x2c3d80dd00000000, 0xd24660b900000000, + 0x4792102c00000000, 0x5c6241e100000000, 0xc9b6317400000000, + 0x37cdd11000000000, 0xa219a18500000000, 0xcb3a11d900000000, + 0x5eee614c00000000, 0xa095812800000000, 0x3541f1bd00000000, + 0x72d3e19100000000, 0xe707910400000000, 0x197c716000000000, + 0x8ca801f500000000, 0xe58bb1a900000000, 0x705fc13c00000000, + 0x8e24215800000000, 0x1bf051cd00000000, 0xf9c2f31900000000, + 0x6c16838c00000000, 0x926d63e800000000, 0x07b9137d00000000, + 0x6e9aa32100000000, 0xfb4ed3b400000000, 0x053533d000000000, + 0x90e1434500000000, 0xd773536900000000, 0x42a723fc00000000, + 0xbcdcc39800000000, 0x2908b30d00000000, 0x402b035100000000, + 0xd5ff73c400000000, 0x2b8493a000000000, 0xbe50e33500000000, + 0xa5a0b2f800000000, 0x3074c26d00000000, 0xce0f220900000000, + 0x5bdb529c00000000, 0x32f8e2c000000000, 0xa72c925500000000, + 0x5957723100000000, 0xcc8302a400000000, 0x8b11128800000000, + 0x1ec5621d00000000, 0xe0be827900000000, 0x756af2ec00000000, + 0x1c4942b000000000, 0x899d322500000000, 0x77e6d24100000000, + 0xe232a2d400000000, 0xf285e73300000000, 0x675197a600000000, + 0x992a77c200000000, 0x0cfe075700000000, 0x65ddb70b00000000, + 0xf009c79e00000000, 0x0e7227fa00000000, 0x9ba6576f00000000, + 0xdc34474300000000, 0x49e037d600000000, 0xb79bd7b200000000, + 0x224fa72700000000, 0x4b6c177b00000000, 0xdeb867ee00000000, + 0x20c3878a00000000, 0xb517f71f00000000, 0xaee7a6d200000000, + 0x3b33d64700000000, 0xc548362300000000, 0x509c46b600000000, + 0x39bff6ea00000000, 0xac6b867f00000000, 0x5210661b00000000, + 0xc7c4168e00000000, 0x805606a200000000, 0x1582763700000000, + 0xebf9965300000000, 0x7e2de6c600000000, 0x170e569a00000000, + 0x82da260f00000000, 0x7ca1c66b00000000, 0xe975b6fe00000000, + 0x0b47142a00000000, 0x9e9364bf00000000, 0x60e884db00000000, + 0xf53cf44e00000000, 0x9c1f441200000000, 0x09cb348700000000, + 0xf7b0d4e300000000, 0x6264a47600000000, 0x25f6b45a00000000, + 0xb022c4cf00000000, 0x4e5924ab00000000, 0xdb8d543e00000000, + 0xb2aee46200000000, 0x277a94f700000000, 0xd901749300000000, + 0x4cd5040600000000, 0x572555cb00000000, 0xc2f1255e00000000, + 0x3c8ac53a00000000, 0xa95eb5af00000000, 0xc07d05f300000000, + 0x55a9756600000000, 0xabd2950200000000, 0x3e06e59700000000, + 0x7994f5bb00000000, 0xec40852e00000000, 0x123b654a00000000, + 0x87ef15df00000000, 0xeecca58300000000, 0x7b18d51600000000, + 0x8563357200000000, 0x10b745e700000000, 0xe40bcf6700000000, + 0x71dfbff200000000, 0x8fa45f9600000000, 0x1a702f0300000000, + 0x73539f5f00000000, 0xe687efca00000000, 0x18fc0fae00000000, + 0x8d287f3b00000000, 0xcaba6f1700000000, 0x5f6e1f8200000000, + 0xa115ffe600000000, 0x34c18f7300000000, 0x5de23f2f00000000, + 0xc8364fba00000000, 0x364dafde00000000, 0xa399df4b00000000, + 0xb8698e8600000000, 0x2dbdfe1300000000, 0xd3c61e7700000000, + 0x46126ee200000000, 0x2f31debe00000000, 0xbae5ae2b00000000, + 0x449e4e4f00000000, 0xd14a3eda00000000, 0x96d82ef600000000, + 0x030c5e6300000000, 0xfd77be0700000000, 0x68a3ce9200000000, + 0x01807ece00000000, 0x94540e5b00000000, 0x6a2fee3f00000000, + 0xfffb9eaa00000000, 0x1dc93c7e00000000, 0x881d4ceb00000000, + 0x7666ac8f00000000, 0xe3b2dc1a00000000, 0x8a916c4600000000, + 0x1f451cd300000000, 0xe13efcb700000000, 0x74ea8c2200000000, + 0x33789c0e00000000, 0xa6acec9b00000000, 0x58d70cff00000000, + 0xcd037c6a00000000, 0xa420cc3600000000, 0x31f4bca300000000, + 0xcf8f5cc700000000, 0x5a5b2c5200000000, 0x41ab7d9f00000000, + 0xd47f0d0a00000000, 0x2a04ed6e00000000, 0xbfd09dfb00000000, + 0xd6f32da700000000, 0x43275d3200000000, 0xbd5cbd5600000000, + 0x2888cdc300000000, 0x6f1addef00000000, 0xfacead7a00000000, + 0x04b54d1e00000000, 0x91613d8b00000000, 0xf8428dd700000000, + 0x6d96fd4200000000, 0x93ed1d2600000000, 0x06396db300000000, + 0x168e285400000000, 0x835a58c100000000, 0x7d21b8a500000000, + 0xe8f5c83000000000, 0x81d6786c00000000, 0x140208f900000000, + 0xea79e89d00000000, 0x7fad980800000000, 0x383f882400000000, + 0xadebf8b100000000, 0x539018d500000000, 0xc644684000000000, + 0xaf67d81c00000000, 0x3ab3a88900000000, 0xc4c848ed00000000, + 0x511c387800000000, 0x4aec69b500000000, 0xdf38192000000000, + 0x2143f94400000000, 0xb49789d100000000, 0xddb4398d00000000, + 0x4860491800000000, 0xb61ba97c00000000, 0x23cfd9e900000000, + 0x645dc9c500000000, 0xf189b95000000000, 0x0ff2593400000000, + 0x9a2629a100000000, 0xf30599fd00000000, 0x66d1e96800000000, + 0x98aa090c00000000, 0x0d7e799900000000, 0xef4cdb4d00000000, + 0x7a98abd800000000, 0x84e34bbc00000000, 0x11373b2900000000, + 0x78148b7500000000, 0xedc0fbe000000000, 0x13bb1b8400000000, + 0x866f6b1100000000, 0xc1fd7b3d00000000, 0x54290ba800000000, + 0xaa52ebcc00000000, 0x3f869b5900000000, 0x56a52b0500000000, + 0xc3715b9000000000, 0x3d0abbf400000000, 0xa8decb6100000000, + 0xb32e9aac00000000, 0x26faea3900000000, 0xd8810a5d00000000, + 0x4d557ac800000000, 0x2476ca9400000000, 0xb1a2ba0100000000, + 0x4fd95a6500000000, 0xda0d2af000000000, 0x9d9f3adc00000000, + 0x084b4a4900000000, 0xf630aa2d00000000, 0x63e4dab800000000, + 0x0ac76ae400000000, 0x9f131a7100000000, 0x6168fa1500000000, + 0xf4bc8a8000000000}, + {0x0000000000000000, 0x1f17f08000000000, 0x7f2891da00000000, + 0x603f615a00000000, 0xbf56536e00000000, 0xa041a3ee00000000, + 0xc07ec2b400000000, 0xdf69323400000000, 0x7eada6dc00000000, + 0x61ba565c00000000, 0x0185370600000000, 0x1e92c78600000000, + 0xc1fbf5b200000000, 0xdeec053200000000, 0xbed3646800000000, + 0xa1c494e800000000, 0xbd5c3c6200000000, 0xa24bcce200000000, + 0xc274adb800000000, 0xdd635d3800000000, 0x020a6f0c00000000, + 0x1d1d9f8c00000000, 0x7d22fed600000000, 0x62350e5600000000, + 0xc3f19abe00000000, 0xdce66a3e00000000, 0xbcd90b6400000000, + 0xa3cefbe400000000, 0x7ca7c9d000000000, 0x63b0395000000000, + 0x038f580a00000000, 0x1c98a88a00000000, 0x7ab978c400000000, + 0x65ae884400000000, 0x0591e91e00000000, 0x1a86199e00000000, + 0xc5ef2baa00000000, 0xdaf8db2a00000000, 0xbac7ba7000000000, + 0xa5d04af000000000, 0x0414de1800000000, 0x1b032e9800000000, + 0x7b3c4fc200000000, 0x642bbf4200000000, 0xbb428d7600000000, + 0xa4557df600000000, 0xc46a1cac00000000, 0xdb7dec2c00000000, + 0xc7e544a600000000, 0xd8f2b42600000000, 0xb8cdd57c00000000, + 0xa7da25fc00000000, 0x78b317c800000000, 0x67a4e74800000000, + 0x079b861200000000, 0x188c769200000000, 0xb948e27a00000000, + 0xa65f12fa00000000, 0xc66073a000000000, 0xd977832000000000, + 0x061eb11400000000, 0x1909419400000000, 0x793620ce00000000, + 0x6621d04e00000000, 0xb574805300000000, 0xaa6370d300000000, + 0xca5c118900000000, 0xd54be10900000000, 0x0a22d33d00000000, + 0x153523bd00000000, 0x750a42e700000000, 0x6a1db26700000000, + 0xcbd9268f00000000, 0xd4ced60f00000000, 0xb4f1b75500000000, + 0xabe647d500000000, 0x748f75e100000000, 0x6b98856100000000, + 0x0ba7e43b00000000, 0x14b014bb00000000, 0x0828bc3100000000, + 0x173f4cb100000000, 0x77002deb00000000, 0x6817dd6b00000000, + 0xb77eef5f00000000, 0xa8691fdf00000000, 0xc8567e8500000000, + 0xd7418e0500000000, 0x76851aed00000000, 0x6992ea6d00000000, + 0x09ad8b3700000000, 0x16ba7bb700000000, 0xc9d3498300000000, + 0xd6c4b90300000000, 0xb6fbd85900000000, 0xa9ec28d900000000, + 0xcfcdf89700000000, 0xd0da081700000000, 0xb0e5694d00000000, + 0xaff299cd00000000, 0x709babf900000000, 0x6f8c5b7900000000, + 0x0fb33a2300000000, 0x10a4caa300000000, 0xb1605e4b00000000, + 0xae77aecb00000000, 0xce48cf9100000000, 0xd15f3f1100000000, + 0x0e360d2500000000, 0x1121fda500000000, 0x711e9cff00000000, + 0x6e096c7f00000000, 0x7291c4f500000000, 0x6d86347500000000, + 0x0db9552f00000000, 0x12aea5af00000000, 0xcdc7979b00000000, + 0xd2d0671b00000000, 0xb2ef064100000000, 0xadf8f6c100000000, + 0x0c3c622900000000, 0x132b92a900000000, 0x7314f3f300000000, + 0x6c03037300000000, 0xb36a314700000000, 0xac7dc1c700000000, + 0xcc42a09d00000000, 0xd355501d00000000, 0x6ae900a700000000, + 0x75fef02700000000, 0x15c1917d00000000, 0x0ad661fd00000000, + 0xd5bf53c900000000, 0xcaa8a34900000000, 0xaa97c21300000000, + 0xb580329300000000, 0x1444a67b00000000, 0x0b5356fb00000000, + 0x6b6c37a100000000, 0x747bc72100000000, 0xab12f51500000000, + 0xb405059500000000, 0xd43a64cf00000000, 0xcb2d944f00000000, + 0xd7b53cc500000000, 0xc8a2cc4500000000, 0xa89dad1f00000000, + 0xb78a5d9f00000000, 0x68e36fab00000000, 0x77f49f2b00000000, + 0x17cbfe7100000000, 0x08dc0ef100000000, 0xa9189a1900000000, + 0xb60f6a9900000000, 0xd6300bc300000000, 0xc927fb4300000000, + 0x164ec97700000000, 0x095939f700000000, 0x696658ad00000000, + 0x7671a82d00000000, 0x1050786300000000, 0x0f4788e300000000, + 0x6f78e9b900000000, 0x706f193900000000, 0xaf062b0d00000000, + 0xb011db8d00000000, 0xd02ebad700000000, 0xcf394a5700000000, + 0x6efddebf00000000, 0x71ea2e3f00000000, 0x11d54f6500000000, + 0x0ec2bfe500000000, 0xd1ab8dd100000000, 0xcebc7d5100000000, + 0xae831c0b00000000, 0xb194ec8b00000000, 0xad0c440100000000, + 0xb21bb48100000000, 0xd224d5db00000000, 0xcd33255b00000000, + 0x125a176f00000000, 0x0d4de7ef00000000, 0x6d7286b500000000, + 0x7265763500000000, 0xd3a1e2dd00000000, 0xccb6125d00000000, + 0xac89730700000000, 0xb39e838700000000, 0x6cf7b1b300000000, + 0x73e0413300000000, 0x13df206900000000, 0x0cc8d0e900000000, + 0xdf9d80f400000000, 0xc08a707400000000, 0xa0b5112e00000000, + 0xbfa2e1ae00000000, 0x60cbd39a00000000, 0x7fdc231a00000000, + 0x1fe3424000000000, 0x00f4b2c000000000, 0xa130262800000000, + 0xbe27d6a800000000, 0xde18b7f200000000, 0xc10f477200000000, + 0x1e66754600000000, 0x017185c600000000, 0x614ee49c00000000, + 0x7e59141c00000000, 0x62c1bc9600000000, 0x7dd64c1600000000, + 0x1de92d4c00000000, 0x02feddcc00000000, 0xdd97eff800000000, + 0xc2801f7800000000, 0xa2bf7e2200000000, 0xbda88ea200000000, + 0x1c6c1a4a00000000, 0x037beaca00000000, 0x63448b9000000000, + 0x7c537b1000000000, 0xa33a492400000000, 0xbc2db9a400000000, + 0xdc12d8fe00000000, 0xc305287e00000000, 0xa524f83000000000, + 0xba3308b000000000, 0xda0c69ea00000000, 0xc51b996a00000000, + 0x1a72ab5e00000000, 0x05655bde00000000, 0x655a3a8400000000, + 0x7a4dca0400000000, 0xdb895eec00000000, 0xc49eae6c00000000, + 0xa4a1cf3600000000, 0xbbb63fb600000000, 0x64df0d8200000000, + 0x7bc8fd0200000000, 0x1bf79c5800000000, 0x04e06cd800000000, + 0x1878c45200000000, 0x076f34d200000000, 0x6750558800000000, + 0x7847a50800000000, 0xa72e973c00000000, 0xb83967bc00000000, + 0xd80606e600000000, 0xc711f66600000000, 0x66d5628e00000000, + 0x79c2920e00000000, 0x19fdf35400000000, 0x06ea03d400000000, + 0xd98331e000000000, 0xc694c16000000000, 0xa6aba03a00000000, + 0xb9bc50ba00000000}, + {0x0000000000000000, 0xe2fd888d00000000, 0x85fd60c000000000, + 0x6700e84d00000000, 0x4bfdb05b00000000, 0xa90038d600000000, + 0xce00d09b00000000, 0x2cfd581600000000, 0x96fa61b700000000, + 0x7407e93a00000000, 0x1307017700000000, 0xf1fa89fa00000000, + 0xdd07d1ec00000000, 0x3ffa596100000000, 0x58fab12c00000000, + 0xba0739a100000000, 0x6df3b2b500000000, 0x8f0e3a3800000000, + 0xe80ed27500000000, 0x0af35af800000000, 0x260e02ee00000000, + 0xc4f38a6300000000, 0xa3f3622e00000000, 0x410eeaa300000000, + 0xfb09d30200000000, 0x19f45b8f00000000, 0x7ef4b3c200000000, + 0x9c093b4f00000000, 0xb0f4635900000000, 0x5209ebd400000000, + 0x3509039900000000, 0xd7f48b1400000000, 0x9be014b000000000, + 0x791d9c3d00000000, 0x1e1d747000000000, 0xfce0fcfd00000000, + 0xd01da4eb00000000, 0x32e02c6600000000, 0x55e0c42b00000000, + 0xb71d4ca600000000, 0x0d1a750700000000, 0xefe7fd8a00000000, + 0x88e715c700000000, 0x6a1a9d4a00000000, 0x46e7c55c00000000, + 0xa41a4dd100000000, 0xc31aa59c00000000, 0x21e72d1100000000, + 0xf613a60500000000, 0x14ee2e8800000000, 0x73eec6c500000000, + 0x91134e4800000000, 0xbdee165e00000000, 0x5f139ed300000000, + 0x3813769e00000000, 0xdaeefe1300000000, 0x60e9c7b200000000, + 0x82144f3f00000000, 0xe514a77200000000, 0x07e92fff00000000, + 0x2b1477e900000000, 0xc9e9ff6400000000, 0xaee9172900000000, + 0x4c149fa400000000, 0x77c758bb00000000, 0x953ad03600000000, + 0xf23a387b00000000, 0x10c7b0f600000000, 0x3c3ae8e000000000, + 0xdec7606d00000000, 0xb9c7882000000000, 0x5b3a00ad00000000, + 0xe13d390c00000000, 0x03c0b18100000000, 0x64c059cc00000000, + 0x863dd14100000000, 0xaac0895700000000, 0x483d01da00000000, + 0x2f3de99700000000, 0xcdc0611a00000000, 0x1a34ea0e00000000, + 0xf8c9628300000000, 0x9fc98ace00000000, 0x7d34024300000000, + 0x51c95a5500000000, 0xb334d2d800000000, 0xd4343a9500000000, + 0x36c9b21800000000, 0x8cce8bb900000000, 0x6e33033400000000, + 0x0933eb7900000000, 0xebce63f400000000, 0xc7333be200000000, + 0x25ceb36f00000000, 0x42ce5b2200000000, 0xa033d3af00000000, + 0xec274c0b00000000, 0x0edac48600000000, 0x69da2ccb00000000, + 0x8b27a44600000000, 0xa7dafc5000000000, 0x452774dd00000000, + 0x22279c9000000000, 0xc0da141d00000000, 0x7add2dbc00000000, + 0x9820a53100000000, 0xff204d7c00000000, 0x1dddc5f100000000, + 0x31209de700000000, 0xd3dd156a00000000, 0xb4ddfd2700000000, + 0x562075aa00000000, 0x81d4febe00000000, 0x6329763300000000, + 0x04299e7e00000000, 0xe6d416f300000000, 0xca294ee500000000, + 0x28d4c66800000000, 0x4fd42e2500000000, 0xad29a6a800000000, + 0x172e9f0900000000, 0xf5d3178400000000, 0x92d3ffc900000000, + 0x702e774400000000, 0x5cd32f5200000000, 0xbe2ea7df00000000, + 0xd92e4f9200000000, 0x3bd3c71f00000000, 0xaf88c0ad00000000, + 0x4d75482000000000, 0x2a75a06d00000000, 0xc88828e000000000, + 0xe47570f600000000, 0x0688f87b00000000, 0x6188103600000000, + 0x837598bb00000000, 0x3972a11a00000000, 0xdb8f299700000000, + 0xbc8fc1da00000000, 0x5e72495700000000, 0x728f114100000000, + 0x907299cc00000000, 0xf772718100000000, 0x158ff90c00000000, + 0xc27b721800000000, 0x2086fa9500000000, 0x478612d800000000, + 0xa57b9a5500000000, 0x8986c24300000000, 0x6b7b4ace00000000, + 0x0c7ba28300000000, 0xee862a0e00000000, 0x548113af00000000, + 0xb67c9b2200000000, 0xd17c736f00000000, 0x3381fbe200000000, + 0x1f7ca3f400000000, 0xfd812b7900000000, 0x9a81c33400000000, + 0x787c4bb900000000, 0x3468d41d00000000, 0xd6955c9000000000, + 0xb195b4dd00000000, 0x53683c5000000000, 0x7f95644600000000, + 0x9d68eccb00000000, 0xfa68048600000000, 0x18958c0b00000000, + 0xa292b5aa00000000, 0x406f3d2700000000, 0x276fd56a00000000, + 0xc5925de700000000, 0xe96f05f100000000, 0x0b928d7c00000000, + 0x6c92653100000000, 0x8e6fedbc00000000, 0x599b66a800000000, + 0xbb66ee2500000000, 0xdc66066800000000, 0x3e9b8ee500000000, + 0x1266d6f300000000, 0xf09b5e7e00000000, 0x979bb63300000000, + 0x75663ebe00000000, 0xcf61071f00000000, 0x2d9c8f9200000000, + 0x4a9c67df00000000, 0xa861ef5200000000, 0x849cb74400000000, + 0x66613fc900000000, 0x0161d78400000000, 0xe39c5f0900000000, + 0xd84f981600000000, 0x3ab2109b00000000, 0x5db2f8d600000000, + 0xbf4f705b00000000, 0x93b2284d00000000, 0x714fa0c000000000, + 0x164f488d00000000, 0xf4b2c00000000000, 0x4eb5f9a100000000, + 0xac48712c00000000, 0xcb48996100000000, 0x29b511ec00000000, + 0x054849fa00000000, 0xe7b5c17700000000, 0x80b5293a00000000, + 0x6248a1b700000000, 0xb5bc2aa300000000, 0x5741a22e00000000, + 0x30414a6300000000, 0xd2bcc2ee00000000, 0xfe419af800000000, + 0x1cbc127500000000, 0x7bbcfa3800000000, 0x994172b500000000, + 0x23464b1400000000, 0xc1bbc39900000000, 0xa6bb2bd400000000, + 0x4446a35900000000, 0x68bbfb4f00000000, 0x8a4673c200000000, + 0xed469b8f00000000, 0x0fbb130200000000, 0x43af8ca600000000, + 0xa152042b00000000, 0xc652ec6600000000, 0x24af64eb00000000, + 0x08523cfd00000000, 0xeaafb47000000000, 0x8daf5c3d00000000, + 0x6f52d4b000000000, 0xd555ed1100000000, 0x37a8659c00000000, + 0x50a88dd100000000, 0xb255055c00000000, 0x9ea85d4a00000000, + 0x7c55d5c700000000, 0x1b553d8a00000000, 0xf9a8b50700000000, + 0x2e5c3e1300000000, 0xcca1b69e00000000, 0xaba15ed300000000, + 0x495cd65e00000000, 0x65a18e4800000000, 0x875c06c500000000, + 0xe05cee8800000000, 0x02a1660500000000, 0xb8a65fa400000000, + 0x5a5bd72900000000, 0x3d5b3f6400000000, 0xdfa6b7e900000000, + 0xf35befff00000000, 0x11a6677200000000, 0x76a68f3f00000000, + 0x945b07b200000000}, + {0x0000000000000000, 0xa90b894e00000000, 0x5217129d00000000, + 0xfb1c9bd300000000, 0xe52855e100000000, 0x4c23dcaf00000000, + 0xb73f477c00000000, 0x1e34ce3200000000, 0x8b57db1900000000, + 0x225c525700000000, 0xd940c98400000000, 0x704b40ca00000000, + 0x6e7f8ef800000000, 0xc77407b600000000, 0x3c689c6500000000, + 0x9563152b00000000, 0x16afb63300000000, 0xbfa43f7d00000000, + 0x44b8a4ae00000000, 0xedb32de000000000, 0xf387e3d200000000, + 0x5a8c6a9c00000000, 0xa190f14f00000000, 0x089b780100000000, + 0x9df86d2a00000000, 0x34f3e46400000000, 0xcfef7fb700000000, + 0x66e4f6f900000000, 0x78d038cb00000000, 0xd1dbb18500000000, + 0x2ac72a5600000000, 0x83cca31800000000, 0x2c5e6d6700000000, + 0x8555e42900000000, 0x7e497ffa00000000, 0xd742f6b400000000, + 0xc976388600000000, 0x607db1c800000000, 0x9b612a1b00000000, + 0x326aa35500000000, 0xa709b67e00000000, 0x0e023f3000000000, + 0xf51ea4e300000000, 0x5c152dad00000000, 0x4221e39f00000000, + 0xeb2a6ad100000000, 0x1036f10200000000, 0xb93d784c00000000, + 0x3af1db5400000000, 0x93fa521a00000000, 0x68e6c9c900000000, + 0xc1ed408700000000, 0xdfd98eb500000000, 0x76d207fb00000000, + 0x8dce9c2800000000, 0x24c5156600000000, 0xb1a6004d00000000, + 0x18ad890300000000, 0xe3b112d000000000, 0x4aba9b9e00000000, + 0x548e55ac00000000, 0xfd85dce200000000, 0x0699473100000000, + 0xaf92ce7f00000000, 0x58bcdace00000000, 0xf1b7538000000000, + 0x0aabc85300000000, 0xa3a0411d00000000, 0xbd948f2f00000000, + 0x149f066100000000, 0xef839db200000000, 0x468814fc00000000, + 0xd3eb01d700000000, 0x7ae0889900000000, 0x81fc134a00000000, + 0x28f79a0400000000, 0x36c3543600000000, 0x9fc8dd7800000000, + 0x64d446ab00000000, 0xcddfcfe500000000, 0x4e136cfd00000000, + 0xe718e5b300000000, 0x1c047e6000000000, 0xb50ff72e00000000, + 0xab3b391c00000000, 0x0230b05200000000, 0xf92c2b8100000000, + 0x5027a2cf00000000, 0xc544b7e400000000, 0x6c4f3eaa00000000, + 0x9753a57900000000, 0x3e582c3700000000, 0x206ce20500000000, + 0x89676b4b00000000, 0x727bf09800000000, 0xdb7079d600000000, + 0x74e2b7a900000000, 0xdde93ee700000000, 0x26f5a53400000000, + 0x8ffe2c7a00000000, 0x91cae24800000000, 0x38c16b0600000000, + 0xc3ddf0d500000000, 0x6ad6799b00000000, 0xffb56cb000000000, + 0x56bee5fe00000000, 0xada27e2d00000000, 0x04a9f76300000000, + 0x1a9d395100000000, 0xb396b01f00000000, 0x488a2bcc00000000, + 0xe181a28200000000, 0x624d019a00000000, 0xcb4688d400000000, + 0x305a130700000000, 0x99519a4900000000, 0x8765547b00000000, + 0x2e6edd3500000000, 0xd57246e600000000, 0x7c79cfa800000000, + 0xe91ada8300000000, 0x401153cd00000000, 0xbb0dc81e00000000, + 0x1206415000000000, 0x0c328f6200000000, 0xa539062c00000000, + 0x5e259dff00000000, 0xf72e14b100000000, 0xf17ec44600000000, + 0x58754d0800000000, 0xa369d6db00000000, 0x0a625f9500000000, + 0x145691a700000000, 0xbd5d18e900000000, 0x4641833a00000000, + 0xef4a0a7400000000, 0x7a291f5f00000000, 0xd322961100000000, + 0x283e0dc200000000, 0x8135848c00000000, 0x9f014abe00000000, + 0x360ac3f000000000, 0xcd16582300000000, 0x641dd16d00000000, + 0xe7d1727500000000, 0x4edafb3b00000000, 0xb5c660e800000000, + 0x1ccde9a600000000, 0x02f9279400000000, 0xabf2aeda00000000, + 0x50ee350900000000, 0xf9e5bc4700000000, 0x6c86a96c00000000, + 0xc58d202200000000, 0x3e91bbf100000000, 0x979a32bf00000000, + 0x89aefc8d00000000, 0x20a575c300000000, 0xdbb9ee1000000000, + 0x72b2675e00000000, 0xdd20a92100000000, 0x742b206f00000000, + 0x8f37bbbc00000000, 0x263c32f200000000, 0x3808fcc000000000, + 0x9103758e00000000, 0x6a1fee5d00000000, 0xc314671300000000, + 0x5677723800000000, 0xff7cfb7600000000, 0x046060a500000000, + 0xad6be9eb00000000, 0xb35f27d900000000, 0x1a54ae9700000000, + 0xe148354400000000, 0x4843bc0a00000000, 0xcb8f1f1200000000, + 0x6284965c00000000, 0x99980d8f00000000, 0x309384c100000000, + 0x2ea74af300000000, 0x87acc3bd00000000, 0x7cb0586e00000000, + 0xd5bbd12000000000, 0x40d8c40b00000000, 0xe9d34d4500000000, + 0x12cfd69600000000, 0xbbc45fd800000000, 0xa5f091ea00000000, + 0x0cfb18a400000000, 0xf7e7837700000000, 0x5eec0a3900000000, + 0xa9c21e8800000000, 0x00c997c600000000, 0xfbd50c1500000000, + 0x52de855b00000000, 0x4cea4b6900000000, 0xe5e1c22700000000, + 0x1efd59f400000000, 0xb7f6d0ba00000000, 0x2295c59100000000, + 0x8b9e4cdf00000000, 0x7082d70c00000000, 0xd9895e4200000000, + 0xc7bd907000000000, 0x6eb6193e00000000, 0x95aa82ed00000000, + 0x3ca10ba300000000, 0xbf6da8bb00000000, 0x166621f500000000, + 0xed7aba2600000000, 0x4471336800000000, 0x5a45fd5a00000000, + 0xf34e741400000000, 0x0852efc700000000, 0xa159668900000000, + 0x343a73a200000000, 0x9d31faec00000000, 0x662d613f00000000, + 0xcf26e87100000000, 0xd112264300000000, 0x7819af0d00000000, + 0x830534de00000000, 0x2a0ebd9000000000, 0x859c73ef00000000, + 0x2c97faa100000000, 0xd78b617200000000, 0x7e80e83c00000000, + 0x60b4260e00000000, 0xc9bfaf4000000000, 0x32a3349300000000, + 0x9ba8bddd00000000, 0x0ecba8f600000000, 0xa7c021b800000000, + 0x5cdcba6b00000000, 0xf5d7332500000000, 0xebe3fd1700000000, + 0x42e8745900000000, 0xb9f4ef8a00000000, 0x10ff66c400000000, + 0x9333c5dc00000000, 0x3a384c9200000000, 0xc124d74100000000, + 0x682f5e0f00000000, 0x761b903d00000000, 0xdf10197300000000, + 0x240c82a000000000, 0x8d070bee00000000, 0x18641ec500000000, + 0xb16f978b00000000, 0x4a730c5800000000, 0xe378851600000000, + 0xfd4c4b2400000000, 0x5447c26a00000000, 0xaf5b59b900000000, + 0x0650d0f700000000}, + {0x0000000000000000, 0x479244af00000000, 0xcf22f88500000000, + 0x88b0bc2a00000000, 0xdf4381d000000000, 0x98d1c57f00000000, + 0x1061795500000000, 0x57f33dfa00000000, 0xff81737a00000000, + 0xb81337d500000000, 0x30a38bff00000000, 0x7731cf5000000000, + 0x20c2f2aa00000000, 0x6750b60500000000, 0xefe00a2f00000000, + 0xa8724e8000000000, 0xfe03e7f400000000, 0xb991a35b00000000, + 0x31211f7100000000, 0x76b35bde00000000, 0x2140662400000000, + 0x66d2228b00000000, 0xee629ea100000000, 0xa9f0da0e00000000, + 0x0182948e00000000, 0x4610d02100000000, 0xcea06c0b00000000, + 0x893228a400000000, 0xdec1155e00000000, 0x995351f100000000, + 0x11e3eddb00000000, 0x5671a97400000000, 0xbd01bf3200000000, + 0xfa93fb9d00000000, 0x722347b700000000, 0x35b1031800000000, + 0x62423ee200000000, 0x25d07a4d00000000, 0xad60c66700000000, + 0xeaf282c800000000, 0x4280cc4800000000, 0x051288e700000000, + 0x8da234cd00000000, 0xca30706200000000, 0x9dc34d9800000000, + 0xda51093700000000, 0x52e1b51d00000000, 0x1573f1b200000000, + 0x430258c600000000, 0x04901c6900000000, 0x8c20a04300000000, + 0xcbb2e4ec00000000, 0x9c41d91600000000, 0xdbd39db900000000, + 0x5363219300000000, 0x14f1653c00000000, 0xbc832bbc00000000, + 0xfb116f1300000000, 0x73a1d33900000000, 0x3433979600000000, + 0x63c0aa6c00000000, 0x2452eec300000000, 0xace252e900000000, + 0xeb70164600000000, 0x7a037e6500000000, 0x3d913aca00000000, + 0xb52186e000000000, 0xf2b3c24f00000000, 0xa540ffb500000000, + 0xe2d2bb1a00000000, 0x6a62073000000000, 0x2df0439f00000000, + 0x85820d1f00000000, 0xc21049b000000000, 0x4aa0f59a00000000, + 0x0d32b13500000000, 0x5ac18ccf00000000, 0x1d53c86000000000, + 0x95e3744a00000000, 0xd27130e500000000, 0x8400999100000000, + 0xc392dd3e00000000, 0x4b22611400000000, 0x0cb025bb00000000, + 0x5b43184100000000, 0x1cd15cee00000000, 0x9461e0c400000000, + 0xd3f3a46b00000000, 0x7b81eaeb00000000, 0x3c13ae4400000000, + 0xb4a3126e00000000, 0xf33156c100000000, 0xa4c26b3b00000000, + 0xe3502f9400000000, 0x6be093be00000000, 0x2c72d71100000000, + 0xc702c15700000000, 0x809085f800000000, 0x082039d200000000, + 0x4fb27d7d00000000, 0x1841408700000000, 0x5fd3042800000000, + 0xd763b80200000000, 0x90f1fcad00000000, 0x3883b22d00000000, + 0x7f11f68200000000, 0xf7a14aa800000000, 0xb0330e0700000000, + 0xe7c033fd00000000, 0xa052775200000000, 0x28e2cb7800000000, + 0x6f708fd700000000, 0x390126a300000000, 0x7e93620c00000000, + 0xf623de2600000000, 0xb1b19a8900000000, 0xe642a77300000000, + 0xa1d0e3dc00000000, 0x29605ff600000000, 0x6ef21b5900000000, + 0xc68055d900000000, 0x8112117600000000, 0x09a2ad5c00000000, + 0x4e30e9f300000000, 0x19c3d40900000000, 0x5e5190a600000000, + 0xd6e12c8c00000000, 0x9173682300000000, 0xf406fcca00000000, + 0xb394b86500000000, 0x3b24044f00000000, 0x7cb640e000000000, + 0x2b457d1a00000000, 0x6cd739b500000000, 0xe467859f00000000, + 0xa3f5c13000000000, 0x0b878fb000000000, 0x4c15cb1f00000000, + 0xc4a5773500000000, 0x8337339a00000000, 0xd4c40e6000000000, + 0x93564acf00000000, 0x1be6f6e500000000, 0x5c74b24a00000000, + 0x0a051b3e00000000, 0x4d975f9100000000, 0xc527e3bb00000000, + 0x82b5a71400000000, 0xd5469aee00000000, 0x92d4de4100000000, + 0x1a64626b00000000, 0x5df626c400000000, 0xf584684400000000, + 0xb2162ceb00000000, 0x3aa690c100000000, 0x7d34d46e00000000, + 0x2ac7e99400000000, 0x6d55ad3b00000000, 0xe5e5111100000000, + 0xa27755be00000000, 0x490743f800000000, 0x0e95075700000000, + 0x8625bb7d00000000, 0xc1b7ffd200000000, 0x9644c22800000000, + 0xd1d6868700000000, 0x59663aad00000000, 0x1ef47e0200000000, + 0xb686308200000000, 0xf114742d00000000, 0x79a4c80700000000, + 0x3e368ca800000000, 0x69c5b15200000000, 0x2e57f5fd00000000, + 0xa6e749d700000000, 0xe1750d7800000000, 0xb704a40c00000000, + 0xf096e0a300000000, 0x78265c8900000000, 0x3fb4182600000000, + 0x684725dc00000000, 0x2fd5617300000000, 0xa765dd5900000000, + 0xe0f799f600000000, 0x4885d77600000000, 0x0f1793d900000000, + 0x87a72ff300000000, 0xc0356b5c00000000, 0x97c656a600000000, + 0xd054120900000000, 0x58e4ae2300000000, 0x1f76ea8c00000000, + 0x8e0582af00000000, 0xc997c60000000000, 0x41277a2a00000000, + 0x06b53e8500000000, 0x5146037f00000000, 0x16d447d000000000, + 0x9e64fbfa00000000, 0xd9f6bf5500000000, 0x7184f1d500000000, + 0x3616b57a00000000, 0xbea6095000000000, 0xf9344dff00000000, + 0xaec7700500000000, 0xe95534aa00000000, 0x61e5888000000000, + 0x2677cc2f00000000, 0x7006655b00000000, 0x379421f400000000, + 0xbf249dde00000000, 0xf8b6d97100000000, 0xaf45e48b00000000, + 0xe8d7a02400000000, 0x60671c0e00000000, 0x27f558a100000000, + 0x8f87162100000000, 0xc815528e00000000, 0x40a5eea400000000, + 0x0737aa0b00000000, 0x50c497f100000000, 0x1756d35e00000000, + 0x9fe66f7400000000, 0xd8742bdb00000000, 0x33043d9d00000000, + 0x7496793200000000, 0xfc26c51800000000, 0xbbb481b700000000, + 0xec47bc4d00000000, 0xabd5f8e200000000, 0x236544c800000000, + 0x64f7006700000000, 0xcc854ee700000000, 0x8b170a4800000000, + 0x03a7b66200000000, 0x4435f2cd00000000, 0x13c6cf3700000000, + 0x54548b9800000000, 0xdce437b200000000, 0x9b76731d00000000, + 0xcd07da6900000000, 0x8a959ec600000000, 0x022522ec00000000, + 0x45b7664300000000, 0x12445bb900000000, 0x55d61f1600000000, + 0xdd66a33c00000000, 0x9af4e79300000000, 0x3286a91300000000, + 0x7514edbc00000000, 0xfda4519600000000, 0xba36153900000000, + 0xedc528c300000000, 0xaa576c6c00000000, 0x22e7d04600000000, + 0x657594e900000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x65673b46, 0xcace768c, 0xafa94dca, 0x4eedeb59, + 0x2b8ad01f, 0x84239dd5, 0xe144a693, 0x9ddbd6b2, 0xf8bcedf4, + 0x5715a03e, 0x32729b78, 0xd3363deb, 0xb65106ad, 0x19f84b67, + 0x7c9f7021, 0xe0c6ab25, 0x85a19063, 0x2a08dda9, 0x4f6fe6ef, + 0xae2b407c, 0xcb4c7b3a, 0x64e536f0, 0x01820db6, 0x7d1d7d97, + 0x187a46d1, 0xb7d30b1b, 0xd2b4305d, 0x33f096ce, 0x5697ad88, + 0xf93ee042, 0x9c59db04, 0x1afc500b, 0x7f9b6b4d, 0xd0322687, + 0xb5551dc1, 0x5411bb52, 0x31768014, 0x9edfcdde, 0xfbb8f698, + 0x872786b9, 0xe240bdff, 0x4de9f035, 0x288ecb73, 0xc9ca6de0, + 0xacad56a6, 0x03041b6c, 0x6663202a, 0xfa3afb2e, 0x9f5dc068, + 0x30f48da2, 0x5593b6e4, 0xb4d71077, 0xd1b02b31, 0x7e1966fb, + 0x1b7e5dbd, 0x67e12d9c, 0x028616da, 0xad2f5b10, 0xc8486056, + 0x290cc6c5, 0x4c6bfd83, 0xe3c2b049, 0x86a58b0f, 0x35f8a016, + 0x509f9b50, 0xff36d69a, 0x9a51eddc, 0x7b154b4f, 0x1e727009, + 0xb1db3dc3, 0xd4bc0685, 0xa82376a4, 0xcd444de2, 0x62ed0028, + 0x078a3b6e, 0xe6ce9dfd, 0x83a9a6bb, 0x2c00eb71, 0x4967d037, + 0xd53e0b33, 0xb0593075, 0x1ff07dbf, 0x7a9746f9, 0x9bd3e06a, + 0xfeb4db2c, 0x511d96e6, 0x347aada0, 0x48e5dd81, 0x2d82e6c7, + 0x822bab0d, 0xe74c904b, 0x060836d8, 0x636f0d9e, 0xccc64054, + 0xa9a17b12, 0x2f04f01d, 0x4a63cb5b, 0xe5ca8691, 0x80adbdd7, + 0x61e91b44, 0x048e2002, 0xab276dc8, 0xce40568e, 0xb2df26af, + 0xd7b81de9, 0x78115023, 0x1d766b65, 0xfc32cdf6, 0x9955f6b0, + 0x36fcbb7a, 0x539b803c, 0xcfc25b38, 0xaaa5607e, 0x050c2db4, + 0x606b16f2, 0x812fb061, 0xe4488b27, 0x4be1c6ed, 0x2e86fdab, + 0x52198d8a, 0x377eb6cc, 0x98d7fb06, 0xfdb0c040, 0x1cf466d3, + 0x79935d95, 0xd63a105f, 0xb35d2b19, 0x6bf1402c, 0x0e967b6a, + 0xa13f36a0, 0xc4580de6, 0x251cab75, 0x407b9033, 0xefd2ddf9, + 0x8ab5e6bf, 0xf62a969e, 0x934dadd8, 0x3ce4e012, 0x5983db54, + 0xb8c77dc7, 0xdda04681, 0x72090b4b, 0x176e300d, 0x8b37eb09, + 0xee50d04f, 0x41f99d85, 0x249ea6c3, 0xc5da0050, 0xa0bd3b16, + 0x0f1476dc, 0x6a734d9a, 0x16ec3dbb, 0x738b06fd, 0xdc224b37, + 0xb9457071, 0x5801d6e2, 0x3d66eda4, 0x92cfa06e, 0xf7a89b28, + 0x710d1027, 0x146a2b61, 0xbbc366ab, 0xdea45ded, 0x3fe0fb7e, + 0x5a87c038, 0xf52e8df2, 0x9049b6b4, 0xecd6c695, 0x89b1fdd3, + 0x2618b019, 0x437f8b5f, 0xa23b2dcc, 0xc75c168a, 0x68f55b40, + 0x0d926006, 0x91cbbb02, 0xf4ac8044, 0x5b05cd8e, 0x3e62f6c8, + 0xdf26505b, 0xba416b1d, 0x15e826d7, 0x708f1d91, 0x0c106db0, + 0x697756f6, 0xc6de1b3c, 0xa3b9207a, 0x42fd86e9, 0x279abdaf, + 0x8833f065, 0xed54cb23, 0x5e09e03a, 0x3b6edb7c, 0x94c796b6, + 0xf1a0adf0, 0x10e40b63, 0x75833025, 0xda2a7def, 0xbf4d46a9, + 0xc3d23688, 0xa6b50dce, 0x091c4004, 0x6c7b7b42, 0x8d3fddd1, + 0xe858e697, 0x47f1ab5d, 0x2296901b, 0xbecf4b1f, 0xdba87059, + 0x74013d93, 0x116606d5, 0xf022a046, 0x95459b00, 0x3aecd6ca, + 0x5f8bed8c, 0x23149dad, 0x4673a6eb, 0xe9daeb21, 0x8cbdd067, + 0x6df976f4, 0x089e4db2, 0xa7370078, 0xc2503b3e, 0x44f5b031, + 0x21928b77, 0x8e3bc6bd, 0xeb5cfdfb, 0x0a185b68, 0x6f7f602e, + 0xc0d62de4, 0xa5b116a2, 0xd92e6683, 0xbc495dc5, 0x13e0100f, + 0x76872b49, 0x97c38dda, 0xf2a4b69c, 0x5d0dfb56, 0x386ac010, + 0xa4331b14, 0xc1542052, 0x6efd6d98, 0x0b9a56de, 0xeadef04d, + 0x8fb9cb0b, 0x201086c1, 0x4577bd87, 0x39e8cda6, 0x5c8ff6e0, + 0xf326bb2a, 0x9641806c, 0x770526ff, 0x12621db9, 0xbdcb5073, + 0xd8ac6b35}, + {0x00000000, 0xd7e28058, 0x74b406f1, 0xa35686a9, 0xe9680de2, + 0x3e8a8dba, 0x9ddc0b13, 0x4a3e8b4b, 0x09a11d85, 0xde439ddd, + 0x7d151b74, 0xaaf79b2c, 0xe0c91067, 0x372b903f, 0x947d1696, + 0x439f96ce, 0x13423b0a, 0xc4a0bb52, 0x67f63dfb, 0xb014bda3, + 0xfa2a36e8, 0x2dc8b6b0, 0x8e9e3019, 0x597cb041, 0x1ae3268f, + 0xcd01a6d7, 0x6e57207e, 0xb9b5a026, 0xf38b2b6d, 0x2469ab35, + 0x873f2d9c, 0x50ddadc4, 0x26847614, 0xf166f64c, 0x523070e5, + 0x85d2f0bd, 0xcfec7bf6, 0x180efbae, 0xbb587d07, 0x6cbafd5f, + 0x2f256b91, 0xf8c7ebc9, 0x5b916d60, 0x8c73ed38, 0xc64d6673, + 0x11afe62b, 0xb2f96082, 0x651be0da, 0x35c64d1e, 0xe224cd46, + 0x41724bef, 0x9690cbb7, 0xdcae40fc, 0x0b4cc0a4, 0xa81a460d, + 0x7ff8c655, 0x3c67509b, 0xeb85d0c3, 0x48d3566a, 0x9f31d632, + 0xd50f5d79, 0x02eddd21, 0xa1bb5b88, 0x7659dbd0, 0x4d08ec28, + 0x9aea6c70, 0x39bcead9, 0xee5e6a81, 0xa460e1ca, 0x73826192, + 0xd0d4e73b, 0x07366763, 0x44a9f1ad, 0x934b71f5, 0x301df75c, + 0xe7ff7704, 0xadc1fc4f, 0x7a237c17, 0xd975fabe, 0x0e977ae6, + 0x5e4ad722, 0x89a8577a, 0x2afed1d3, 0xfd1c518b, 0xb722dac0, + 0x60c05a98, 0xc396dc31, 0x14745c69, 0x57ebcaa7, 0x80094aff, + 0x235fcc56, 0xf4bd4c0e, 0xbe83c745, 0x6961471d, 0xca37c1b4, + 0x1dd541ec, 0x6b8c9a3c, 0xbc6e1a64, 0x1f389ccd, 0xc8da1c95, + 0x82e497de, 0x55061786, 0xf650912f, 0x21b21177, 0x622d87b9, + 0xb5cf07e1, 0x16998148, 0xc17b0110, 0x8b458a5b, 0x5ca70a03, + 0xfff18caa, 0x28130cf2, 0x78cea136, 0xaf2c216e, 0x0c7aa7c7, + 0xdb98279f, 0x91a6acd4, 0x46442c8c, 0xe512aa25, 0x32f02a7d, + 0x716fbcb3, 0xa68d3ceb, 0x05dbba42, 0xd2393a1a, 0x9807b151, + 0x4fe53109, 0xecb3b7a0, 0x3b5137f8, 0x9a11d850, 0x4df35808, + 0xeea5dea1, 0x39475ef9, 0x7379d5b2, 0xa49b55ea, 0x07cdd343, + 0xd02f531b, 0x93b0c5d5, 0x4452458d, 0xe704c324, 0x30e6437c, + 0x7ad8c837, 0xad3a486f, 0x0e6ccec6, 0xd98e4e9e, 0x8953e35a, + 0x5eb16302, 0xfde7e5ab, 0x2a0565f3, 0x603beeb8, 0xb7d96ee0, + 0x148fe849, 0xc36d6811, 0x80f2fedf, 0x57107e87, 0xf446f82e, + 0x23a47876, 0x699af33d, 0xbe787365, 0x1d2ef5cc, 0xcacc7594, + 0xbc95ae44, 0x6b772e1c, 0xc821a8b5, 0x1fc328ed, 0x55fda3a6, + 0x821f23fe, 0x2149a557, 0xf6ab250f, 0xb534b3c1, 0x62d63399, + 0xc180b530, 0x16623568, 0x5c5cbe23, 0x8bbe3e7b, 0x28e8b8d2, + 0xff0a388a, 0xafd7954e, 0x78351516, 0xdb6393bf, 0x0c8113e7, + 0x46bf98ac, 0x915d18f4, 0x320b9e5d, 0xe5e91e05, 0xa67688cb, + 0x71940893, 0xd2c28e3a, 0x05200e62, 0x4f1e8529, 0x98fc0571, + 0x3baa83d8, 0xec480380, 0xd7193478, 0x00fbb420, 0xa3ad3289, + 0x744fb2d1, 0x3e71399a, 0xe993b9c2, 0x4ac53f6b, 0x9d27bf33, + 0xdeb829fd, 0x095aa9a5, 0xaa0c2f0c, 0x7deeaf54, 0x37d0241f, + 0xe032a447, 0x436422ee, 0x9486a2b6, 0xc45b0f72, 0x13b98f2a, + 0xb0ef0983, 0x670d89db, 0x2d330290, 0xfad182c8, 0x59870461, + 0x8e658439, 0xcdfa12f7, 0x1a1892af, 0xb94e1406, 0x6eac945e, + 0x24921f15, 0xf3709f4d, 0x502619e4, 0x87c499bc, 0xf19d426c, + 0x267fc234, 0x8529449d, 0x52cbc4c5, 0x18f54f8e, 0xcf17cfd6, + 0x6c41497f, 0xbba3c927, 0xf83c5fe9, 0x2fdedfb1, 0x8c885918, + 0x5b6ad940, 0x1154520b, 0xc6b6d253, 0x65e054fa, 0xb202d4a2, + 0xe2df7966, 0x353df93e, 0x966b7f97, 0x4189ffcf, 0x0bb77484, + 0xdc55f4dc, 0x7f037275, 0xa8e1f22d, 0xeb7e64e3, 0x3c9ce4bb, + 0x9fca6212, 0x4828e24a, 0x02166901, 0xd5f4e959, 0x76a26ff0, + 0xa140efa8}, + {0x00000000, 0xef52b6e1, 0x05d46b83, 0xea86dd62, 0x0ba8d706, + 0xe4fa61e7, 0x0e7cbc85, 0xe12e0a64, 0x1751ae0c, 0xf80318ed, + 0x1285c58f, 0xfdd7736e, 0x1cf9790a, 0xf3abcfeb, 0x192d1289, + 0xf67fa468, 0x2ea35c18, 0xc1f1eaf9, 0x2b77379b, 0xc425817a, + 0x250b8b1e, 0xca593dff, 0x20dfe09d, 0xcf8d567c, 0x39f2f214, + 0xd6a044f5, 0x3c269997, 0xd3742f76, 0x325a2512, 0xdd0893f3, + 0x378e4e91, 0xd8dcf870, 0x5d46b830, 0xb2140ed1, 0x5892d3b3, + 0xb7c06552, 0x56ee6f36, 0xb9bcd9d7, 0x533a04b5, 0xbc68b254, + 0x4a17163c, 0xa545a0dd, 0x4fc37dbf, 0xa091cb5e, 0x41bfc13a, + 0xaeed77db, 0x446baab9, 0xab391c58, 0x73e5e428, 0x9cb752c9, + 0x76318fab, 0x9963394a, 0x784d332e, 0x971f85cf, 0x7d9958ad, + 0x92cbee4c, 0x64b44a24, 0x8be6fcc5, 0x616021a7, 0x8e329746, + 0x6f1c9d22, 0x804e2bc3, 0x6ac8f6a1, 0x859a4040, 0xba8d7060, + 0x55dfc681, 0xbf591be3, 0x500bad02, 0xb125a766, 0x5e771187, + 0xb4f1cce5, 0x5ba37a04, 0xaddcde6c, 0x428e688d, 0xa808b5ef, + 0x475a030e, 0xa674096a, 0x4926bf8b, 0xa3a062e9, 0x4cf2d408, + 0x942e2c78, 0x7b7c9a99, 0x91fa47fb, 0x7ea8f11a, 0x9f86fb7e, + 0x70d44d9f, 0x9a5290fd, 0x7500261c, 0x837f8274, 0x6c2d3495, + 0x86abe9f7, 0x69f95f16, 0x88d75572, 0x6785e393, 0x8d033ef1, + 0x62518810, 0xe7cbc850, 0x08997eb1, 0xe21fa3d3, 0x0d4d1532, + 0xec631f56, 0x0331a9b7, 0xe9b774d5, 0x06e5c234, 0xf09a665c, + 0x1fc8d0bd, 0xf54e0ddf, 0x1a1cbb3e, 0xfb32b15a, 0x146007bb, + 0xfee6dad9, 0x11b46c38, 0xc9689448, 0x263a22a9, 0xccbcffcb, + 0x23ee492a, 0xc2c0434e, 0x2d92f5af, 0xc71428cd, 0x28469e2c, + 0xde393a44, 0x316b8ca5, 0xdbed51c7, 0x34bfe726, 0xd591ed42, + 0x3ac35ba3, 0xd04586c1, 0x3f173020, 0xae6be681, 0x41395060, + 0xabbf8d02, 0x44ed3be3, 0xa5c33187, 0x4a918766, 0xa0175a04, + 0x4f45ece5, 0xb93a488d, 0x5668fe6c, 0xbcee230e, 0x53bc95ef, + 0xb2929f8b, 0x5dc0296a, 0xb746f408, 0x581442e9, 0x80c8ba99, + 0x6f9a0c78, 0x851cd11a, 0x6a4e67fb, 0x8b606d9f, 0x6432db7e, + 0x8eb4061c, 0x61e6b0fd, 0x97991495, 0x78cba274, 0x924d7f16, + 0x7d1fc9f7, 0x9c31c393, 0x73637572, 0x99e5a810, 0x76b71ef1, + 0xf32d5eb1, 0x1c7fe850, 0xf6f93532, 0x19ab83d3, 0xf88589b7, + 0x17d73f56, 0xfd51e234, 0x120354d5, 0xe47cf0bd, 0x0b2e465c, + 0xe1a89b3e, 0x0efa2ddf, 0xefd427bb, 0x0086915a, 0xea004c38, + 0x0552fad9, 0xdd8e02a9, 0x32dcb448, 0xd85a692a, 0x3708dfcb, + 0xd626d5af, 0x3974634e, 0xd3f2be2c, 0x3ca008cd, 0xcadfaca5, + 0x258d1a44, 0xcf0bc726, 0x205971c7, 0xc1777ba3, 0x2e25cd42, + 0xc4a31020, 0x2bf1a6c1, 0x14e696e1, 0xfbb42000, 0x1132fd62, + 0xfe604b83, 0x1f4e41e7, 0xf01cf706, 0x1a9a2a64, 0xf5c89c85, + 0x03b738ed, 0xece58e0c, 0x0663536e, 0xe931e58f, 0x081fefeb, + 0xe74d590a, 0x0dcb8468, 0xe2993289, 0x3a45caf9, 0xd5177c18, + 0x3f91a17a, 0xd0c3179b, 0x31ed1dff, 0xdebfab1e, 0x3439767c, + 0xdb6bc09d, 0x2d1464f5, 0xc246d214, 0x28c00f76, 0xc792b997, + 0x26bcb3f3, 0xc9ee0512, 0x2368d870, 0xcc3a6e91, 0x49a02ed1, + 0xa6f29830, 0x4c744552, 0xa326f3b3, 0x4208f9d7, 0xad5a4f36, + 0x47dc9254, 0xa88e24b5, 0x5ef180dd, 0xb1a3363c, 0x5b25eb5e, + 0xb4775dbf, 0x555957db, 0xba0be13a, 0x508d3c58, 0xbfdf8ab9, + 0x670372c9, 0x8851c428, 0x62d7194a, 0x8d85afab, 0x6caba5cf, + 0x83f9132e, 0x697fce4c, 0x862d78ad, 0x7052dcc5, 0x9f006a24, + 0x7586b746, 0x9ad401a7, 0x7bfa0bc3, 0x94a8bd22, 0x7e2e6040, + 0x917cd6a1}, + {0x00000000, 0x87a6cb43, 0xd43c90c7, 0x539a5b84, 0x730827cf, + 0xf4aeec8c, 0xa734b708, 0x20927c4b, 0xe6104f9e, 0x61b684dd, + 0x322cdf59, 0xb58a141a, 0x95186851, 0x12bea312, 0x4124f896, + 0xc68233d5, 0x1751997d, 0x90f7523e, 0xc36d09ba, 0x44cbc2f9, + 0x6459beb2, 0xe3ff75f1, 0xb0652e75, 0x37c3e536, 0xf141d6e3, + 0x76e71da0, 0x257d4624, 0xa2db8d67, 0x8249f12c, 0x05ef3a6f, + 0x567561eb, 0xd1d3aaa8, 0x2ea332fa, 0xa905f9b9, 0xfa9fa23d, + 0x7d39697e, 0x5dab1535, 0xda0dde76, 0x899785f2, 0x0e314eb1, + 0xc8b37d64, 0x4f15b627, 0x1c8feda3, 0x9b2926e0, 0xbbbb5aab, + 0x3c1d91e8, 0x6f87ca6c, 0xe821012f, 0x39f2ab87, 0xbe5460c4, + 0xedce3b40, 0x6a68f003, 0x4afa8c48, 0xcd5c470b, 0x9ec61c8f, + 0x1960d7cc, 0xdfe2e419, 0x58442f5a, 0x0bde74de, 0x8c78bf9d, + 0xaceac3d6, 0x2b4c0895, 0x78d65311, 0xff709852, 0x5d4665f4, + 0xdae0aeb7, 0x897af533, 0x0edc3e70, 0x2e4e423b, 0xa9e88978, + 0xfa72d2fc, 0x7dd419bf, 0xbb562a6a, 0x3cf0e129, 0x6f6abaad, + 0xe8cc71ee, 0xc85e0da5, 0x4ff8c6e6, 0x1c629d62, 0x9bc45621, + 0x4a17fc89, 0xcdb137ca, 0x9e2b6c4e, 0x198da70d, 0x391fdb46, + 0xbeb91005, 0xed234b81, 0x6a8580c2, 0xac07b317, 0x2ba17854, + 0x783b23d0, 0xff9de893, 0xdf0f94d8, 0x58a95f9b, 0x0b33041f, + 0x8c95cf5c, 0x73e5570e, 0xf4439c4d, 0xa7d9c7c9, 0x207f0c8a, + 0x00ed70c1, 0x874bbb82, 0xd4d1e006, 0x53772b45, 0x95f51890, + 0x1253d3d3, 0x41c98857, 0xc66f4314, 0xe6fd3f5f, 0x615bf41c, + 0x32c1af98, 0xb56764db, 0x64b4ce73, 0xe3120530, 0xb0885eb4, + 0x372e95f7, 0x17bce9bc, 0x901a22ff, 0xc380797b, 0x4426b238, + 0x82a481ed, 0x05024aae, 0x5698112a, 0xd13eda69, 0xf1aca622, + 0x760a6d61, 0x259036e5, 0xa236fda6, 0xba8ccbe8, 0x3d2a00ab, + 0x6eb05b2f, 0xe916906c, 0xc984ec27, 0x4e222764, 0x1db87ce0, + 0x9a1eb7a3, 0x5c9c8476, 0xdb3a4f35, 0x88a014b1, 0x0f06dff2, + 0x2f94a3b9, 0xa83268fa, 0xfba8337e, 0x7c0ef83d, 0xaddd5295, + 0x2a7b99d6, 0x79e1c252, 0xfe470911, 0xded5755a, 0x5973be19, + 0x0ae9e59d, 0x8d4f2ede, 0x4bcd1d0b, 0xcc6bd648, 0x9ff18dcc, + 0x1857468f, 0x38c53ac4, 0xbf63f187, 0xecf9aa03, 0x6b5f6140, + 0x942ff912, 0x13893251, 0x401369d5, 0xc7b5a296, 0xe727dedd, + 0x6081159e, 0x331b4e1a, 0xb4bd8559, 0x723fb68c, 0xf5997dcf, + 0xa603264b, 0x21a5ed08, 0x01379143, 0x86915a00, 0xd50b0184, + 0x52adcac7, 0x837e606f, 0x04d8ab2c, 0x5742f0a8, 0xd0e43beb, + 0xf07647a0, 0x77d08ce3, 0x244ad767, 0xa3ec1c24, 0x656e2ff1, + 0xe2c8e4b2, 0xb152bf36, 0x36f47475, 0x1666083e, 0x91c0c37d, + 0xc25a98f9, 0x45fc53ba, 0xe7caae1c, 0x606c655f, 0x33f63edb, + 0xb450f598, 0x94c289d3, 0x13644290, 0x40fe1914, 0xc758d257, + 0x01dae182, 0x867c2ac1, 0xd5e67145, 0x5240ba06, 0x72d2c64d, + 0xf5740d0e, 0xa6ee568a, 0x21489dc9, 0xf09b3761, 0x773dfc22, + 0x24a7a7a6, 0xa3016ce5, 0x839310ae, 0x0435dbed, 0x57af8069, + 0xd0094b2a, 0x168b78ff, 0x912db3bc, 0xc2b7e838, 0x4511237b, + 0x65835f30, 0xe2259473, 0xb1bfcff7, 0x361904b4, 0xc9699ce6, + 0x4ecf57a5, 0x1d550c21, 0x9af3c762, 0xba61bb29, 0x3dc7706a, + 0x6e5d2bee, 0xe9fbe0ad, 0x2f79d378, 0xa8df183b, 0xfb4543bf, + 0x7ce388fc, 0x5c71f4b7, 0xdbd73ff4, 0x884d6470, 0x0febaf33, + 0xde38059b, 0x599eced8, 0x0a04955c, 0x8da25e1f, 0xad302254, + 0x2a96e917, 0x790cb293, 0xfeaa79d0, 0x38284a05, 0xbf8e8146, + 0xec14dac2, 0x6bb21181, 0x4b206dca, 0xcc86a689, 0x9f1cfd0d, + 0x18ba364e}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x43cba687, 0xc7903cd4, 0x845b9a53, 0xcf270873, + 0x8cecaef4, 0x08b734a7, 0x4b7c9220, 0x9e4f10e6, 0xdd84b661, + 0x59df2c32, 0x1a148ab5, 0x51681895, 0x12a3be12, 0x96f82441, + 0xd53382c6, 0x7d995117, 0x3e52f790, 0xba096dc3, 0xf9c2cb44, + 0xb2be5964, 0xf175ffe3, 0x752e65b0, 0x36e5c337, 0xe3d641f1, + 0xa01de776, 0x24467d25, 0x678ddba2, 0x2cf14982, 0x6f3aef05, + 0xeb617556, 0xa8aad3d1, 0xfa32a32e, 0xb9f905a9, 0x3da29ffa, + 0x7e69397d, 0x3515ab5d, 0x76de0dda, 0xf2859789, 0xb14e310e, + 0x647db3c8, 0x27b6154f, 0xa3ed8f1c, 0xe026299b, 0xab5abbbb, + 0xe8911d3c, 0x6cca876f, 0x2f0121e8, 0x87abf239, 0xc46054be, + 0x403bceed, 0x03f0686a, 0x488cfa4a, 0x0b475ccd, 0x8f1cc69e, + 0xccd76019, 0x19e4e2df, 0x5a2f4458, 0xde74de0b, 0x9dbf788c, + 0xd6c3eaac, 0x95084c2b, 0x1153d678, 0x529870ff, 0xf465465d, + 0xb7aee0da, 0x33f57a89, 0x703edc0e, 0x3b424e2e, 0x7889e8a9, + 0xfcd272fa, 0xbf19d47d, 0x6a2a56bb, 0x29e1f03c, 0xadba6a6f, + 0xee71cce8, 0xa50d5ec8, 0xe6c6f84f, 0x629d621c, 0x2156c49b, + 0x89fc174a, 0xca37b1cd, 0x4e6c2b9e, 0x0da78d19, 0x46db1f39, + 0x0510b9be, 0x814b23ed, 0xc280856a, 0x17b307ac, 0x5478a12b, + 0xd0233b78, 0x93e89dff, 0xd8940fdf, 0x9b5fa958, 0x1f04330b, + 0x5ccf958c, 0x0e57e573, 0x4d9c43f4, 0xc9c7d9a7, 0x8a0c7f20, + 0xc170ed00, 0x82bb4b87, 0x06e0d1d4, 0x452b7753, 0x9018f595, + 0xd3d35312, 0x5788c941, 0x14436fc6, 0x5f3ffde6, 0x1cf45b61, + 0x98afc132, 0xdb6467b5, 0x73ceb464, 0x300512e3, 0xb45e88b0, + 0xf7952e37, 0xbce9bc17, 0xff221a90, 0x7b7980c3, 0x38b22644, + 0xed81a482, 0xae4a0205, 0x2a119856, 0x69da3ed1, 0x22a6acf1, + 0x616d0a76, 0xe5369025, 0xa6fd36a2, 0xe8cb8cba, 0xab002a3d, + 0x2f5bb06e, 0x6c9016e9, 0x27ec84c9, 0x6427224e, 0xe07cb81d, + 0xa3b71e9a, 0x76849c5c, 0x354f3adb, 0xb114a088, 0xf2df060f, + 0xb9a3942f, 0xfa6832a8, 0x7e33a8fb, 0x3df80e7c, 0x9552ddad, + 0xd6997b2a, 0x52c2e179, 0x110947fe, 0x5a75d5de, 0x19be7359, + 0x9de5e90a, 0xde2e4f8d, 0x0b1dcd4b, 0x48d66bcc, 0xcc8df19f, + 0x8f465718, 0xc43ac538, 0x87f163bf, 0x03aaf9ec, 0x40615f6b, + 0x12f92f94, 0x51328913, 0xd5691340, 0x96a2b5c7, 0xddde27e7, + 0x9e158160, 0x1a4e1b33, 0x5985bdb4, 0x8cb63f72, 0xcf7d99f5, + 0x4b2603a6, 0x08eda521, 0x43913701, 0x005a9186, 0x84010bd5, + 0xc7caad52, 0x6f607e83, 0x2cabd804, 0xa8f04257, 0xeb3be4d0, + 0xa04776f0, 0xe38cd077, 0x67d74a24, 0x241ceca3, 0xf12f6e65, + 0xb2e4c8e2, 0x36bf52b1, 0x7574f436, 0x3e086616, 0x7dc3c091, + 0xf9985ac2, 0xba53fc45, 0x1caecae7, 0x5f656c60, 0xdb3ef633, + 0x98f550b4, 0xd389c294, 0x90426413, 0x1419fe40, 0x57d258c7, + 0x82e1da01, 0xc12a7c86, 0x4571e6d5, 0x06ba4052, 0x4dc6d272, + 0x0e0d74f5, 0x8a56eea6, 0xc99d4821, 0x61379bf0, 0x22fc3d77, + 0xa6a7a724, 0xe56c01a3, 0xae109383, 0xeddb3504, 0x6980af57, + 0x2a4b09d0, 0xff788b16, 0xbcb32d91, 0x38e8b7c2, 0x7b231145, + 0x305f8365, 0x739425e2, 0xf7cfbfb1, 0xb4041936, 0xe69c69c9, + 0xa557cf4e, 0x210c551d, 0x62c7f39a, 0x29bb61ba, 0x6a70c73d, + 0xee2b5d6e, 0xade0fbe9, 0x78d3792f, 0x3b18dfa8, 0xbf4345fb, + 0xfc88e37c, 0xb7f4715c, 0xf43fd7db, 0x70644d88, 0x33afeb0f, + 0x9b0538de, 0xd8ce9e59, 0x5c95040a, 0x1f5ea28d, 0x542230ad, + 0x17e9962a, 0x93b20c79, 0xd079aafe, 0x054a2838, 0x46818ebf, + 0xc2da14ec, 0x8111b26b, 0xca6d204b, 0x89a686cc, 0x0dfd1c9f, + 0x4e36ba18}, + {0x00000000, 0xe1b652ef, 0x836bd405, 0x62dd86ea, 0x06d7a80b, + 0xe761fae4, 0x85bc7c0e, 0x640a2ee1, 0x0cae5117, 0xed1803f8, + 0x8fc58512, 0x6e73d7fd, 0x0a79f91c, 0xebcfabf3, 0x89122d19, + 0x68a47ff6, 0x185ca32e, 0xf9eaf1c1, 0x9b37772b, 0x7a8125c4, + 0x1e8b0b25, 0xff3d59ca, 0x9de0df20, 0x7c568dcf, 0x14f2f239, + 0xf544a0d6, 0x9799263c, 0x762f74d3, 0x12255a32, 0xf39308dd, + 0x914e8e37, 0x70f8dcd8, 0x30b8465d, 0xd10e14b2, 0xb3d39258, + 0x5265c0b7, 0x366fee56, 0xd7d9bcb9, 0xb5043a53, 0x54b268bc, + 0x3c16174a, 0xdda045a5, 0xbf7dc34f, 0x5ecb91a0, 0x3ac1bf41, + 0xdb77edae, 0xb9aa6b44, 0x581c39ab, 0x28e4e573, 0xc952b79c, + 0xab8f3176, 0x4a396399, 0x2e334d78, 0xcf851f97, 0xad58997d, + 0x4ceecb92, 0x244ab464, 0xc5fce68b, 0xa7216061, 0x4697328e, + 0x229d1c6f, 0xc32b4e80, 0xa1f6c86a, 0x40409a85, 0x60708dba, + 0x81c6df55, 0xe31b59bf, 0x02ad0b50, 0x66a725b1, 0x8711775e, + 0xe5ccf1b4, 0x047aa35b, 0x6cdedcad, 0x8d688e42, 0xefb508a8, + 0x0e035a47, 0x6a0974a6, 0x8bbf2649, 0xe962a0a3, 0x08d4f24c, + 0x782c2e94, 0x999a7c7b, 0xfb47fa91, 0x1af1a87e, 0x7efb869f, + 0x9f4dd470, 0xfd90529a, 0x1c260075, 0x74827f83, 0x95342d6c, + 0xf7e9ab86, 0x165ff969, 0x7255d788, 0x93e38567, 0xf13e038d, + 0x10885162, 0x50c8cbe7, 0xb17e9908, 0xd3a31fe2, 0x32154d0d, + 0x561f63ec, 0xb7a93103, 0xd574b7e9, 0x34c2e506, 0x5c669af0, + 0xbdd0c81f, 0xdf0d4ef5, 0x3ebb1c1a, 0x5ab132fb, 0xbb076014, + 0xd9dae6fe, 0x386cb411, 0x489468c9, 0xa9223a26, 0xcbffbccc, + 0x2a49ee23, 0x4e43c0c2, 0xaff5922d, 0xcd2814c7, 0x2c9e4628, + 0x443a39de, 0xa58c6b31, 0xc751eddb, 0x26e7bf34, 0x42ed91d5, + 0xa35bc33a, 0xc18645d0, 0x2030173f, 0x81e66bae, 0x60503941, + 0x028dbfab, 0xe33bed44, 0x8731c3a5, 0x6687914a, 0x045a17a0, + 0xe5ec454f, 0x8d483ab9, 0x6cfe6856, 0x0e23eebc, 0xef95bc53, + 0x8b9f92b2, 0x6a29c05d, 0x08f446b7, 0xe9421458, 0x99bac880, + 0x780c9a6f, 0x1ad11c85, 0xfb674e6a, 0x9f6d608b, 0x7edb3264, + 0x1c06b48e, 0xfdb0e661, 0x95149997, 0x74a2cb78, 0x167f4d92, + 0xf7c91f7d, 0x93c3319c, 0x72756373, 0x10a8e599, 0xf11eb776, + 0xb15e2df3, 0x50e87f1c, 0x3235f9f6, 0xd383ab19, 0xb78985f8, + 0x563fd717, 0x34e251fd, 0xd5540312, 0xbdf07ce4, 0x5c462e0b, + 0x3e9ba8e1, 0xdf2dfa0e, 0xbb27d4ef, 0x5a918600, 0x384c00ea, + 0xd9fa5205, 0xa9028edd, 0x48b4dc32, 0x2a695ad8, 0xcbdf0837, + 0xafd526d6, 0x4e637439, 0x2cbef2d3, 0xcd08a03c, 0xa5acdfca, + 0x441a8d25, 0x26c70bcf, 0xc7715920, 0xa37b77c1, 0x42cd252e, + 0x2010a3c4, 0xc1a6f12b, 0xe196e614, 0x0020b4fb, 0x62fd3211, + 0x834b60fe, 0xe7414e1f, 0x06f71cf0, 0x642a9a1a, 0x859cc8f5, + 0xed38b703, 0x0c8ee5ec, 0x6e536306, 0x8fe531e9, 0xebef1f08, + 0x0a594de7, 0x6884cb0d, 0x893299e2, 0xf9ca453a, 0x187c17d5, + 0x7aa1913f, 0x9b17c3d0, 0xff1ded31, 0x1eabbfde, 0x7c763934, + 0x9dc06bdb, 0xf564142d, 0x14d246c2, 0x760fc028, 0x97b992c7, + 0xf3b3bc26, 0x1205eec9, 0x70d86823, 0x916e3acc, 0xd12ea049, + 0x3098f2a6, 0x5245744c, 0xb3f326a3, 0xd7f90842, 0x364f5aad, + 0x5492dc47, 0xb5248ea8, 0xdd80f15e, 0x3c36a3b1, 0x5eeb255b, + 0xbf5d77b4, 0xdb575955, 0x3ae10bba, 0x583c8d50, 0xb98adfbf, + 0xc9720367, 0x28c45188, 0x4a19d762, 0xabaf858d, 0xcfa5ab6c, + 0x2e13f983, 0x4cce7f69, 0xad782d86, 0xc5dc5270, 0x246a009f, + 0x46b78675, 0xa701d49a, 0xc30bfa7b, 0x22bda894, 0x40602e7e, + 0xa1d67c91}, + {0x00000000, 0x5880e2d7, 0xf106b474, 0xa98656a3, 0xe20d68e9, + 0xba8d8a3e, 0x130bdc9d, 0x4b8b3e4a, 0x851da109, 0xdd9d43de, + 0x741b157d, 0x2c9bf7aa, 0x6710c9e0, 0x3f902b37, 0x96167d94, + 0xce969f43, 0x0a3b4213, 0x52bba0c4, 0xfb3df667, 0xa3bd14b0, + 0xe8362afa, 0xb0b6c82d, 0x19309e8e, 0x41b07c59, 0x8f26e31a, + 0xd7a601cd, 0x7e20576e, 0x26a0b5b9, 0x6d2b8bf3, 0x35ab6924, + 0x9c2d3f87, 0xc4addd50, 0x14768426, 0x4cf666f1, 0xe5703052, + 0xbdf0d285, 0xf67beccf, 0xaefb0e18, 0x077d58bb, 0x5ffdba6c, + 0x916b252f, 0xc9ebc7f8, 0x606d915b, 0x38ed738c, 0x73664dc6, + 0x2be6af11, 0x8260f9b2, 0xdae01b65, 0x1e4dc635, 0x46cd24e2, + 0xef4b7241, 0xb7cb9096, 0xfc40aedc, 0xa4c04c0b, 0x0d461aa8, + 0x55c6f87f, 0x9b50673c, 0xc3d085eb, 0x6a56d348, 0x32d6319f, + 0x795d0fd5, 0x21dded02, 0x885bbba1, 0xd0db5976, 0x28ec084d, + 0x706cea9a, 0xd9eabc39, 0x816a5eee, 0xcae160a4, 0x92618273, + 0x3be7d4d0, 0x63673607, 0xadf1a944, 0xf5714b93, 0x5cf71d30, + 0x0477ffe7, 0x4ffcc1ad, 0x177c237a, 0xbefa75d9, 0xe67a970e, + 0x22d74a5e, 0x7a57a889, 0xd3d1fe2a, 0x8b511cfd, 0xc0da22b7, + 0x985ac060, 0x31dc96c3, 0x695c7414, 0xa7caeb57, 0xff4a0980, + 0x56cc5f23, 0x0e4cbdf4, 0x45c783be, 0x1d476169, 0xb4c137ca, + 0xec41d51d, 0x3c9a8c6b, 0x641a6ebc, 0xcd9c381f, 0x951cdac8, + 0xde97e482, 0x86170655, 0x2f9150f6, 0x7711b221, 0xb9872d62, + 0xe107cfb5, 0x48819916, 0x10017bc1, 0x5b8a458b, 0x030aa75c, + 0xaa8cf1ff, 0xf20c1328, 0x36a1ce78, 0x6e212caf, 0xc7a77a0c, + 0x9f2798db, 0xd4aca691, 0x8c2c4446, 0x25aa12e5, 0x7d2af032, + 0xb3bc6f71, 0xeb3c8da6, 0x42badb05, 0x1a3a39d2, 0x51b10798, + 0x0931e54f, 0xa0b7b3ec, 0xf837513b, 0x50d8119a, 0x0858f34d, + 0xa1dea5ee, 0xf95e4739, 0xb2d57973, 0xea559ba4, 0x43d3cd07, + 0x1b532fd0, 0xd5c5b093, 0x8d455244, 0x24c304e7, 0x7c43e630, + 0x37c8d87a, 0x6f483aad, 0xc6ce6c0e, 0x9e4e8ed9, 0x5ae35389, + 0x0263b15e, 0xabe5e7fd, 0xf365052a, 0xb8ee3b60, 0xe06ed9b7, + 0x49e88f14, 0x11686dc3, 0xdffef280, 0x877e1057, 0x2ef846f4, + 0x7678a423, 0x3df39a69, 0x657378be, 0xccf52e1d, 0x9475ccca, + 0x44ae95bc, 0x1c2e776b, 0xb5a821c8, 0xed28c31f, 0xa6a3fd55, + 0xfe231f82, 0x57a54921, 0x0f25abf6, 0xc1b334b5, 0x9933d662, + 0x30b580c1, 0x68356216, 0x23be5c5c, 0x7b3ebe8b, 0xd2b8e828, + 0x8a380aff, 0x4e95d7af, 0x16153578, 0xbf9363db, 0xe713810c, + 0xac98bf46, 0xf4185d91, 0x5d9e0b32, 0x051ee9e5, 0xcb8876a6, + 0x93089471, 0x3a8ec2d2, 0x620e2005, 0x29851e4f, 0x7105fc98, + 0xd883aa3b, 0x800348ec, 0x783419d7, 0x20b4fb00, 0x8932ada3, + 0xd1b24f74, 0x9a39713e, 0xc2b993e9, 0x6b3fc54a, 0x33bf279d, + 0xfd29b8de, 0xa5a95a09, 0x0c2f0caa, 0x54afee7d, 0x1f24d037, + 0x47a432e0, 0xee226443, 0xb6a28694, 0x720f5bc4, 0x2a8fb913, + 0x8309efb0, 0xdb890d67, 0x9002332d, 0xc882d1fa, 0x61048759, + 0x3984658e, 0xf712facd, 0xaf92181a, 0x06144eb9, 0x5e94ac6e, + 0x151f9224, 0x4d9f70f3, 0xe4192650, 0xbc99c487, 0x6c429df1, + 0x34c27f26, 0x9d442985, 0xc5c4cb52, 0x8e4ff518, 0xd6cf17cf, + 0x7f49416c, 0x27c9a3bb, 0xe95f3cf8, 0xb1dfde2f, 0x1859888c, + 0x40d96a5b, 0x0b525411, 0x53d2b6c6, 0xfa54e065, 0xa2d402b2, + 0x6679dfe2, 0x3ef93d35, 0x977f6b96, 0xcfff8941, 0x8474b70b, + 0xdcf455dc, 0x7572037f, 0x2df2e1a8, 0xe3647eeb, 0xbbe49c3c, + 0x1262ca9f, 0x4ae22848, 0x01691602, 0x59e9f4d5, 0xf06fa276, + 0xa8ef40a1}, + {0x00000000, 0x463b6765, 0x8c76ceca, 0xca4da9af, 0x59ebed4e, + 0x1fd08a2b, 0xd59d2384, 0x93a644e1, 0xb2d6db9d, 0xf4edbcf8, + 0x3ea01557, 0x789b7232, 0xeb3d36d3, 0xad0651b6, 0x674bf819, + 0x21709f7c, 0x25abc6e0, 0x6390a185, 0xa9dd082a, 0xefe66f4f, + 0x7c402bae, 0x3a7b4ccb, 0xf036e564, 0xb60d8201, 0x977d1d7d, + 0xd1467a18, 0x1b0bd3b7, 0x5d30b4d2, 0xce96f033, 0x88ad9756, + 0x42e03ef9, 0x04db599c, 0x0b50fc1a, 0x4d6b9b7f, 0x872632d0, + 0xc11d55b5, 0x52bb1154, 0x14807631, 0xdecddf9e, 0x98f6b8fb, + 0xb9862787, 0xffbd40e2, 0x35f0e94d, 0x73cb8e28, 0xe06dcac9, + 0xa656adac, 0x6c1b0403, 0x2a206366, 0x2efb3afa, 0x68c05d9f, + 0xa28df430, 0xe4b69355, 0x7710d7b4, 0x312bb0d1, 0xfb66197e, + 0xbd5d7e1b, 0x9c2de167, 0xda168602, 0x105b2fad, 0x566048c8, + 0xc5c60c29, 0x83fd6b4c, 0x49b0c2e3, 0x0f8ba586, 0x16a0f835, + 0x509b9f50, 0x9ad636ff, 0xdced519a, 0x4f4b157b, 0x0970721e, + 0xc33ddbb1, 0x8506bcd4, 0xa47623a8, 0xe24d44cd, 0x2800ed62, + 0x6e3b8a07, 0xfd9dcee6, 0xbba6a983, 0x71eb002c, 0x37d06749, + 0x330b3ed5, 0x753059b0, 0xbf7df01f, 0xf946977a, 0x6ae0d39b, + 0x2cdbb4fe, 0xe6961d51, 0xa0ad7a34, 0x81dde548, 0xc7e6822d, + 0x0dab2b82, 0x4b904ce7, 0xd8360806, 0x9e0d6f63, 0x5440c6cc, + 0x127ba1a9, 0x1df0042f, 0x5bcb634a, 0x9186cae5, 0xd7bdad80, + 0x441be961, 0x02208e04, 0xc86d27ab, 0x8e5640ce, 0xaf26dfb2, + 0xe91db8d7, 0x23501178, 0x656b761d, 0xf6cd32fc, 0xb0f65599, + 0x7abbfc36, 0x3c809b53, 0x385bc2cf, 0x7e60a5aa, 0xb42d0c05, + 0xf2166b60, 0x61b02f81, 0x278b48e4, 0xedc6e14b, 0xabfd862e, + 0x8a8d1952, 0xccb67e37, 0x06fbd798, 0x40c0b0fd, 0xd366f41c, + 0x955d9379, 0x5f103ad6, 0x192b5db3, 0x2c40f16b, 0x6a7b960e, + 0xa0363fa1, 0xe60d58c4, 0x75ab1c25, 0x33907b40, 0xf9ddd2ef, + 0xbfe6b58a, 0x9e962af6, 0xd8ad4d93, 0x12e0e43c, 0x54db8359, + 0xc77dc7b8, 0x8146a0dd, 0x4b0b0972, 0x0d306e17, 0x09eb378b, + 0x4fd050ee, 0x859df941, 0xc3a69e24, 0x5000dac5, 0x163bbda0, + 0xdc76140f, 0x9a4d736a, 0xbb3dec16, 0xfd068b73, 0x374b22dc, + 0x717045b9, 0xe2d60158, 0xa4ed663d, 0x6ea0cf92, 0x289ba8f7, + 0x27100d71, 0x612b6a14, 0xab66c3bb, 0xed5da4de, 0x7efbe03f, + 0x38c0875a, 0xf28d2ef5, 0xb4b64990, 0x95c6d6ec, 0xd3fdb189, + 0x19b01826, 0x5f8b7f43, 0xcc2d3ba2, 0x8a165cc7, 0x405bf568, + 0x0660920d, 0x02bbcb91, 0x4480acf4, 0x8ecd055b, 0xc8f6623e, + 0x5b5026df, 0x1d6b41ba, 0xd726e815, 0x911d8f70, 0xb06d100c, + 0xf6567769, 0x3c1bdec6, 0x7a20b9a3, 0xe986fd42, 0xafbd9a27, + 0x65f03388, 0x23cb54ed, 0x3ae0095e, 0x7cdb6e3b, 0xb696c794, + 0xf0ada0f1, 0x630be410, 0x25308375, 0xef7d2ada, 0xa9464dbf, + 0x8836d2c3, 0xce0db5a6, 0x04401c09, 0x427b7b6c, 0xd1dd3f8d, + 0x97e658e8, 0x5dabf147, 0x1b909622, 0x1f4bcfbe, 0x5970a8db, + 0x933d0174, 0xd5066611, 0x46a022f0, 0x009b4595, 0xcad6ec3a, + 0x8ced8b5f, 0xad9d1423, 0xeba67346, 0x21ebdae9, 0x67d0bd8c, + 0xf476f96d, 0xb24d9e08, 0x780037a7, 0x3e3b50c2, 0x31b0f544, + 0x778b9221, 0xbdc63b8e, 0xfbfd5ceb, 0x685b180a, 0x2e607f6f, + 0xe42dd6c0, 0xa216b1a5, 0x83662ed9, 0xc55d49bc, 0x0f10e013, + 0x492b8776, 0xda8dc397, 0x9cb6a4f2, 0x56fb0d5d, 0x10c06a38, + 0x141b33a4, 0x522054c1, 0x986dfd6e, 0xde569a0b, 0x4df0deea, + 0x0bcbb98f, 0xc1861020, 0x87bd7745, 0xa6cde839, 0xe0f68f5c, + 0x2abb26f3, 0x6c804196, 0xff260577, 0xb91d6212, 0x7350cbbd, + 0x356bacd8}}; + +#endif + +#endif + +#if N == 6 + +#if W == 8 + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x3db1ecdc, 0x7b63d9b8, 0x46d23564, 0xf6c7b370, + 0xcb765fac, 0x8da46ac8, 0xb0158614, 0x36fe60a1, 0x0b4f8c7d, + 0x4d9db919, 0x702c55c5, 0xc039d3d1, 0xfd883f0d, 0xbb5a0a69, + 0x86ebe6b5, 0x6dfcc142, 0x504d2d9e, 0x169f18fa, 0x2b2ef426, + 0x9b3b7232, 0xa68a9eee, 0xe058ab8a, 0xdde94756, 0x5b02a1e3, + 0x66b34d3f, 0x2061785b, 0x1dd09487, 0xadc51293, 0x9074fe4f, + 0xd6a6cb2b, 0xeb1727f7, 0xdbf98284, 0xe6486e58, 0xa09a5b3c, + 0x9d2bb7e0, 0x2d3e31f4, 0x108fdd28, 0x565de84c, 0x6bec0490, + 0xed07e225, 0xd0b60ef9, 0x96643b9d, 0xabd5d741, 0x1bc05155, + 0x2671bd89, 0x60a388ed, 0x5d126431, 0xb60543c6, 0x8bb4af1a, + 0xcd669a7e, 0xf0d776a2, 0x40c2f0b6, 0x7d731c6a, 0x3ba1290e, + 0x0610c5d2, 0x80fb2367, 0xbd4acfbb, 0xfb98fadf, 0xc6291603, + 0x763c9017, 0x4b8d7ccb, 0x0d5f49af, 0x30eea573, 0x6c820349, + 0x5133ef95, 0x17e1daf1, 0x2a50362d, 0x9a45b039, 0xa7f45ce5, + 0xe1266981, 0xdc97855d, 0x5a7c63e8, 0x67cd8f34, 0x211fba50, + 0x1cae568c, 0xacbbd098, 0x910a3c44, 0xd7d80920, 0xea69e5fc, + 0x017ec20b, 0x3ccf2ed7, 0x7a1d1bb3, 0x47acf76f, 0xf7b9717b, + 0xca089da7, 0x8cdaa8c3, 0xb16b441f, 0x3780a2aa, 0x0a314e76, + 0x4ce37b12, 0x715297ce, 0xc14711da, 0xfcf6fd06, 0xba24c862, + 0x879524be, 0xb77b81cd, 0x8aca6d11, 0xcc185875, 0xf1a9b4a9, + 0x41bc32bd, 0x7c0dde61, 0x3adfeb05, 0x076e07d9, 0x8185e16c, + 0xbc340db0, 0xfae638d4, 0xc757d408, 0x7742521c, 0x4af3bec0, + 0x0c218ba4, 0x31906778, 0xda87408f, 0xe736ac53, 0xa1e49937, + 0x9c5575eb, 0x2c40f3ff, 0x11f11f23, 0x57232a47, 0x6a92c69b, + 0xec79202e, 0xd1c8ccf2, 0x971af996, 0xaaab154a, 0x1abe935e, + 0x270f7f82, 0x61dd4ae6, 0x5c6ca63a, 0xd9040692, 0xe4b5ea4e, + 0xa267df2a, 0x9fd633f6, 0x2fc3b5e2, 0x1272593e, 0x54a06c5a, + 0x69118086, 0xeffa6633, 0xd24b8aef, 0x9499bf8b, 0xa9285357, + 0x193dd543, 0x248c399f, 0x625e0cfb, 0x5fefe027, 0xb4f8c7d0, + 0x89492b0c, 0xcf9b1e68, 0xf22af2b4, 0x423f74a0, 0x7f8e987c, + 0x395cad18, 0x04ed41c4, 0x8206a771, 0xbfb74bad, 0xf9657ec9, + 0xc4d49215, 0x74c11401, 0x4970f8dd, 0x0fa2cdb9, 0x32132165, + 0x02fd8416, 0x3f4c68ca, 0x799e5dae, 0x442fb172, 0xf43a3766, + 0xc98bdbba, 0x8f59eede, 0xb2e80202, 0x3403e4b7, 0x09b2086b, + 0x4f603d0f, 0x72d1d1d3, 0xc2c457c7, 0xff75bb1b, 0xb9a78e7f, + 0x841662a3, 0x6f014554, 0x52b0a988, 0x14629cec, 0x29d37030, + 0x99c6f624, 0xa4771af8, 0xe2a52f9c, 0xdf14c340, 0x59ff25f5, + 0x644ec929, 0x229cfc4d, 0x1f2d1091, 0xaf389685, 0x92897a59, + 0xd45b4f3d, 0xe9eaa3e1, 0xb58605db, 0x8837e907, 0xcee5dc63, + 0xf35430bf, 0x4341b6ab, 0x7ef05a77, 0x38226f13, 0x059383cf, + 0x8378657a, 0xbec989a6, 0xf81bbcc2, 0xc5aa501e, 0x75bfd60a, + 0x480e3ad6, 0x0edc0fb2, 0x336de36e, 0xd87ac499, 0xe5cb2845, + 0xa3191d21, 0x9ea8f1fd, 0x2ebd77e9, 0x130c9b35, 0x55deae51, + 0x686f428d, 0xee84a438, 0xd33548e4, 0x95e77d80, 0xa856915c, + 0x18431748, 0x25f2fb94, 0x6320cef0, 0x5e91222c, 0x6e7f875f, + 0x53ce6b83, 0x151c5ee7, 0x28adb23b, 0x98b8342f, 0xa509d8f3, + 0xe3dbed97, 0xde6a014b, 0x5881e7fe, 0x65300b22, 0x23e23e46, + 0x1e53d29a, 0xae46548e, 0x93f7b852, 0xd5258d36, 0xe89461ea, + 0x0383461d, 0x3e32aac1, 0x78e09fa5, 0x45517379, 0xf544f56d, + 0xc8f519b1, 0x8e272cd5, 0xb396c009, 0x357d26bc, 0x08ccca60, + 0x4e1eff04, 0x73af13d8, 0xc3ba95cc, 0xfe0b7910, 0xb8d94c74, + 0x8568a0a8}, + {0x00000000, 0x69790b65, 0xd2f216ca, 0xbb8b1daf, 0x7e952bd5, + 0x17ec20b0, 0xac673d1f, 0xc51e367a, 0xfd2a57aa, 0x94535ccf, + 0x2fd84160, 0x46a14a05, 0x83bf7c7f, 0xeac6771a, 0x514d6ab5, + 0x383461d0, 0x2125a915, 0x485ca270, 0xf3d7bfdf, 0x9aaeb4ba, + 0x5fb082c0, 0x36c989a5, 0x8d42940a, 0xe43b9f6f, 0xdc0ffebf, + 0xb576f5da, 0x0efde875, 0x6784e310, 0xa29ad56a, 0xcbe3de0f, + 0x7068c3a0, 0x1911c8c5, 0x424b522a, 0x2b32594f, 0x90b944e0, + 0xf9c04f85, 0x3cde79ff, 0x55a7729a, 0xee2c6f35, 0x87556450, + 0xbf610580, 0xd6180ee5, 0x6d93134a, 0x04ea182f, 0xc1f42e55, + 0xa88d2530, 0x1306389f, 0x7a7f33fa, 0x636efb3f, 0x0a17f05a, + 0xb19cedf5, 0xd8e5e690, 0x1dfbd0ea, 0x7482db8f, 0xcf09c620, + 0xa670cd45, 0x9e44ac95, 0xf73da7f0, 0x4cb6ba5f, 0x25cfb13a, + 0xe0d18740, 0x89a88c25, 0x3223918a, 0x5b5a9aef, 0x8496a454, + 0xedefaf31, 0x5664b29e, 0x3f1db9fb, 0xfa038f81, 0x937a84e4, + 0x28f1994b, 0x4188922e, 0x79bcf3fe, 0x10c5f89b, 0xab4ee534, + 0xc237ee51, 0x0729d82b, 0x6e50d34e, 0xd5dbcee1, 0xbca2c584, + 0xa5b30d41, 0xccca0624, 0x77411b8b, 0x1e3810ee, 0xdb262694, + 0xb25f2df1, 0x09d4305e, 0x60ad3b3b, 0x58995aeb, 0x31e0518e, + 0x8a6b4c21, 0xe3124744, 0x260c713e, 0x4f757a5b, 0xf4fe67f4, + 0x9d876c91, 0xc6ddf67e, 0xafa4fd1b, 0x142fe0b4, 0x7d56ebd1, + 0xb848ddab, 0xd131d6ce, 0x6abacb61, 0x03c3c004, 0x3bf7a1d4, + 0x528eaab1, 0xe905b71e, 0x807cbc7b, 0x45628a01, 0x2c1b8164, + 0x97909ccb, 0xfee997ae, 0xe7f85f6b, 0x8e81540e, 0x350a49a1, + 0x5c7342c4, 0x996d74be, 0xf0147fdb, 0x4b9f6274, 0x22e66911, + 0x1ad208c1, 0x73ab03a4, 0xc8201e0b, 0xa159156e, 0x64472314, + 0x0d3e2871, 0xb6b535de, 0xdfcc3ebb, 0xd25c4ee9, 0xbb25458c, + 0x00ae5823, 0x69d75346, 0xacc9653c, 0xc5b06e59, 0x7e3b73f6, + 0x17427893, 0x2f761943, 0x460f1226, 0xfd840f89, 0x94fd04ec, + 0x51e33296, 0x389a39f3, 0x8311245c, 0xea682f39, 0xf379e7fc, + 0x9a00ec99, 0x218bf136, 0x48f2fa53, 0x8deccc29, 0xe495c74c, + 0x5f1edae3, 0x3667d186, 0x0e53b056, 0x672abb33, 0xdca1a69c, + 0xb5d8adf9, 0x70c69b83, 0x19bf90e6, 0xa2348d49, 0xcb4d862c, + 0x90171cc3, 0xf96e17a6, 0x42e50a09, 0x2b9c016c, 0xee823716, + 0x87fb3c73, 0x3c7021dc, 0x55092ab9, 0x6d3d4b69, 0x0444400c, + 0xbfcf5da3, 0xd6b656c6, 0x13a860bc, 0x7ad16bd9, 0xc15a7676, + 0xa8237d13, 0xb132b5d6, 0xd84bbeb3, 0x63c0a31c, 0x0ab9a879, + 0xcfa79e03, 0xa6de9566, 0x1d5588c9, 0x742c83ac, 0x4c18e27c, + 0x2561e919, 0x9eeaf4b6, 0xf793ffd3, 0x328dc9a9, 0x5bf4c2cc, + 0xe07fdf63, 0x8906d406, 0x56caeabd, 0x3fb3e1d8, 0x8438fc77, + 0xed41f712, 0x285fc168, 0x4126ca0d, 0xfaadd7a2, 0x93d4dcc7, + 0xabe0bd17, 0xc299b672, 0x7912abdd, 0x106ba0b8, 0xd57596c2, + 0xbc0c9da7, 0x07878008, 0x6efe8b6d, 0x77ef43a8, 0x1e9648cd, + 0xa51d5562, 0xcc645e07, 0x097a687d, 0x60036318, 0xdb887eb7, + 0xb2f175d2, 0x8ac51402, 0xe3bc1f67, 0x583702c8, 0x314e09ad, + 0xf4503fd7, 0x9d2934b2, 0x26a2291d, 0x4fdb2278, 0x1481b897, + 0x7df8b3f2, 0xc673ae5d, 0xaf0aa538, 0x6a149342, 0x036d9827, + 0xb8e68588, 0xd19f8eed, 0xe9abef3d, 0x80d2e458, 0x3b59f9f7, + 0x5220f292, 0x973ec4e8, 0xfe47cf8d, 0x45ccd222, 0x2cb5d947, + 0x35a41182, 0x5cdd1ae7, 0xe7560748, 0x8e2f0c2d, 0x4b313a57, + 0x22483132, 0x99c32c9d, 0xf0ba27f8, 0xc88e4628, 0xa1f74d4d, + 0x1a7c50e2, 0x73055b87, 0xb61b6dfd, 0xdf626698, 0x64e97b37, + 0x0d907052}, + {0x00000000, 0x7fc99b93, 0xff933726, 0x805aacb5, 0x2457680d, + 0x5b9ef39e, 0xdbc45f2b, 0xa40dc4b8, 0x48aed01a, 0x37674b89, + 0xb73de73c, 0xc8f47caf, 0x6cf9b817, 0x13302384, 0x936a8f31, + 0xeca314a2, 0x915da034, 0xee943ba7, 0x6ece9712, 0x11070c81, + 0xb50ac839, 0xcac353aa, 0x4a99ff1f, 0x3550648c, 0xd9f3702e, + 0xa63aebbd, 0x26604708, 0x59a9dc9b, 0xfda41823, 0x826d83b0, + 0x02372f05, 0x7dfeb496, 0xf9ca4629, 0x8603ddba, 0x0659710f, + 0x7990ea9c, 0xdd9d2e24, 0xa254b5b7, 0x220e1902, 0x5dc78291, + 0xb1649633, 0xcead0da0, 0x4ef7a115, 0x313e3a86, 0x9533fe3e, + 0xeafa65ad, 0x6aa0c918, 0x1569528b, 0x6897e61d, 0x175e7d8e, + 0x9704d13b, 0xe8cd4aa8, 0x4cc08e10, 0x33091583, 0xb353b936, + 0xcc9a22a5, 0x20393607, 0x5ff0ad94, 0xdfaa0121, 0xa0639ab2, + 0x046e5e0a, 0x7ba7c599, 0xfbfd692c, 0x8434f2bf, 0x28e58a13, + 0x572c1180, 0xd776bd35, 0xa8bf26a6, 0x0cb2e21e, 0x737b798d, + 0xf321d538, 0x8ce84eab, 0x604b5a09, 0x1f82c19a, 0x9fd86d2f, + 0xe011f6bc, 0x441c3204, 0x3bd5a997, 0xbb8f0522, 0xc4469eb1, + 0xb9b82a27, 0xc671b1b4, 0x462b1d01, 0x39e28692, 0x9def422a, + 0xe226d9b9, 0x627c750c, 0x1db5ee9f, 0xf116fa3d, 0x8edf61ae, + 0x0e85cd1b, 0x714c5688, 0xd5419230, 0xaa8809a3, 0x2ad2a516, + 0x551b3e85, 0xd12fcc3a, 0xaee657a9, 0x2ebcfb1c, 0x5175608f, + 0xf578a437, 0x8ab13fa4, 0x0aeb9311, 0x75220882, 0x99811c20, + 0xe64887b3, 0x66122b06, 0x19dbb095, 0xbdd6742d, 0xc21fefbe, + 0x4245430b, 0x3d8cd898, 0x40726c0e, 0x3fbbf79d, 0xbfe15b28, + 0xc028c0bb, 0x64250403, 0x1bec9f90, 0x9bb63325, 0xe47fa8b6, + 0x08dcbc14, 0x77152787, 0xf74f8b32, 0x888610a1, 0x2c8bd419, + 0x53424f8a, 0xd318e33f, 0xacd178ac, 0x51cb1426, 0x2e028fb5, + 0xae582300, 0xd191b893, 0x759c7c2b, 0x0a55e7b8, 0x8a0f4b0d, + 0xf5c6d09e, 0x1965c43c, 0x66ac5faf, 0xe6f6f31a, 0x993f6889, + 0x3d32ac31, 0x42fb37a2, 0xc2a19b17, 0xbd680084, 0xc096b412, + 0xbf5f2f81, 0x3f058334, 0x40cc18a7, 0xe4c1dc1f, 0x9b08478c, + 0x1b52eb39, 0x649b70aa, 0x88386408, 0xf7f1ff9b, 0x77ab532e, + 0x0862c8bd, 0xac6f0c05, 0xd3a69796, 0x53fc3b23, 0x2c35a0b0, + 0xa801520f, 0xd7c8c99c, 0x57926529, 0x285bfeba, 0x8c563a02, + 0xf39fa191, 0x73c50d24, 0x0c0c96b7, 0xe0af8215, 0x9f661986, + 0x1f3cb533, 0x60f52ea0, 0xc4f8ea18, 0xbb31718b, 0x3b6bdd3e, + 0x44a246ad, 0x395cf23b, 0x469569a8, 0xc6cfc51d, 0xb9065e8e, + 0x1d0b9a36, 0x62c201a5, 0xe298ad10, 0x9d513683, 0x71f22221, + 0x0e3bb9b2, 0x8e611507, 0xf1a88e94, 0x55a54a2c, 0x2a6cd1bf, + 0xaa367d0a, 0xd5ffe699, 0x792e9e35, 0x06e705a6, 0x86bda913, + 0xf9743280, 0x5d79f638, 0x22b06dab, 0xa2eac11e, 0xdd235a8d, + 0x31804e2f, 0x4e49d5bc, 0xce137909, 0xb1dae29a, 0x15d72622, + 0x6a1ebdb1, 0xea441104, 0x958d8a97, 0xe8733e01, 0x97baa592, + 0x17e00927, 0x682992b4, 0xcc24560c, 0xb3edcd9f, 0x33b7612a, + 0x4c7efab9, 0xa0ddee1b, 0xdf147588, 0x5f4ed93d, 0x208742ae, + 0x848a8616, 0xfb431d85, 0x7b19b130, 0x04d02aa3, 0x80e4d81c, + 0xff2d438f, 0x7f77ef3a, 0x00be74a9, 0xa4b3b011, 0xdb7a2b82, + 0x5b208737, 0x24e91ca4, 0xc84a0806, 0xb7839395, 0x37d93f20, + 0x4810a4b3, 0xec1d600b, 0x93d4fb98, 0x138e572d, 0x6c47ccbe, + 0x11b97828, 0x6e70e3bb, 0xee2a4f0e, 0x91e3d49d, 0x35ee1025, + 0x4a278bb6, 0xca7d2703, 0xb5b4bc90, 0x5917a832, 0x26de33a1, + 0xa6849f14, 0xd94d0487, 0x7d40c03f, 0x02895bac, 0x82d3f719, + 0xfd1a6c8a}, + {0x00000000, 0xa396284c, 0x9c5d56d9, 0x3fcb7e95, 0xe3cbabf3, + 0x405d83bf, 0x7f96fd2a, 0xdc00d566, 0x1ce651a7, 0xbf7079eb, + 0x80bb077e, 0x232d2f32, 0xff2dfa54, 0x5cbbd218, 0x6370ac8d, + 0xc0e684c1, 0x39cca34e, 0x9a5a8b02, 0xa591f597, 0x0607dddb, + 0xda0708bd, 0x799120f1, 0x465a5e64, 0xe5cc7628, 0x252af2e9, + 0x86bcdaa5, 0xb977a430, 0x1ae18c7c, 0xc6e1591a, 0x65777156, + 0x5abc0fc3, 0xf92a278f, 0x7399469c, 0xd00f6ed0, 0xefc41045, + 0x4c523809, 0x9052ed6f, 0x33c4c523, 0x0c0fbbb6, 0xaf9993fa, + 0x6f7f173b, 0xcce93f77, 0xf32241e2, 0x50b469ae, 0x8cb4bcc8, + 0x2f229484, 0x10e9ea11, 0xb37fc25d, 0x4a55e5d2, 0xe9c3cd9e, + 0xd608b30b, 0x759e9b47, 0xa99e4e21, 0x0a08666d, 0x35c318f8, + 0x965530b4, 0x56b3b475, 0xf5259c39, 0xcaeee2ac, 0x6978cae0, + 0xb5781f86, 0x16ee37ca, 0x2925495f, 0x8ab36113, 0xe7328d38, + 0x44a4a574, 0x7b6fdbe1, 0xd8f9f3ad, 0x04f926cb, 0xa76f0e87, + 0x98a47012, 0x3b32585e, 0xfbd4dc9f, 0x5842f4d3, 0x67898a46, + 0xc41fa20a, 0x181f776c, 0xbb895f20, 0x844221b5, 0x27d409f9, + 0xdefe2e76, 0x7d68063a, 0x42a378af, 0xe13550e3, 0x3d358585, + 0x9ea3adc9, 0xa168d35c, 0x02fefb10, 0xc2187fd1, 0x618e579d, + 0x5e452908, 0xfdd30144, 0x21d3d422, 0x8245fc6e, 0xbd8e82fb, + 0x1e18aab7, 0x94abcba4, 0x373de3e8, 0x08f69d7d, 0xab60b531, + 0x77606057, 0xd4f6481b, 0xeb3d368e, 0x48ab1ec2, 0x884d9a03, + 0x2bdbb24f, 0x1410ccda, 0xb786e496, 0x6b8631f0, 0xc81019bc, + 0xf7db6729, 0x544d4f65, 0xad6768ea, 0x0ef140a6, 0x313a3e33, + 0x92ac167f, 0x4eacc319, 0xed3aeb55, 0xd2f195c0, 0x7167bd8c, + 0xb181394d, 0x12171101, 0x2ddc6f94, 0x8e4a47d8, 0x524a92be, + 0xf1dcbaf2, 0xce17c467, 0x6d81ec2b, 0x15141c31, 0xb682347d, + 0x89494ae8, 0x2adf62a4, 0xf6dfb7c2, 0x55499f8e, 0x6a82e11b, + 0xc914c957, 0x09f24d96, 0xaa6465da, 0x95af1b4f, 0x36393303, + 0xea39e665, 0x49afce29, 0x7664b0bc, 0xd5f298f0, 0x2cd8bf7f, + 0x8f4e9733, 0xb085e9a6, 0x1313c1ea, 0xcf13148c, 0x6c853cc0, + 0x534e4255, 0xf0d86a19, 0x303eeed8, 0x93a8c694, 0xac63b801, + 0x0ff5904d, 0xd3f5452b, 0x70636d67, 0x4fa813f2, 0xec3e3bbe, + 0x668d5aad, 0xc51b72e1, 0xfad00c74, 0x59462438, 0x8546f15e, + 0x26d0d912, 0x191ba787, 0xba8d8fcb, 0x7a6b0b0a, 0xd9fd2346, + 0xe6365dd3, 0x45a0759f, 0x99a0a0f9, 0x3a3688b5, 0x05fdf620, + 0xa66bde6c, 0x5f41f9e3, 0xfcd7d1af, 0xc31caf3a, 0x608a8776, + 0xbc8a5210, 0x1f1c7a5c, 0x20d704c9, 0x83412c85, 0x43a7a844, + 0xe0318008, 0xdffafe9d, 0x7c6cd6d1, 0xa06c03b7, 0x03fa2bfb, + 0x3c31556e, 0x9fa77d22, 0xf2269109, 0x51b0b945, 0x6e7bc7d0, + 0xcdedef9c, 0x11ed3afa, 0xb27b12b6, 0x8db06c23, 0x2e26446f, + 0xeec0c0ae, 0x4d56e8e2, 0x729d9677, 0xd10bbe3b, 0x0d0b6b5d, + 0xae9d4311, 0x91563d84, 0x32c015c8, 0xcbea3247, 0x687c1a0b, + 0x57b7649e, 0xf4214cd2, 0x282199b4, 0x8bb7b1f8, 0xb47ccf6d, + 0x17eae721, 0xd70c63e0, 0x749a4bac, 0x4b513539, 0xe8c71d75, + 0x34c7c813, 0x9751e05f, 0xa89a9eca, 0x0b0cb686, 0x81bfd795, + 0x2229ffd9, 0x1de2814c, 0xbe74a900, 0x62747c66, 0xc1e2542a, + 0xfe292abf, 0x5dbf02f3, 0x9d598632, 0x3ecfae7e, 0x0104d0eb, + 0xa292f8a7, 0x7e922dc1, 0xdd04058d, 0xe2cf7b18, 0x41595354, + 0xb87374db, 0x1be55c97, 0x242e2202, 0x87b80a4e, 0x5bb8df28, + 0xf82ef764, 0xc7e589f1, 0x6473a1bd, 0xa495257c, 0x07030d30, + 0x38c873a5, 0x9b5e5be9, 0x475e8e8f, 0xe4c8a6c3, 0xdb03d856, + 0x7895f01a}, + {0x00000000, 0x2a283862, 0x545070c4, 0x7e7848a6, 0xa8a0e188, + 0x8288d9ea, 0xfcf0914c, 0xd6d8a92e, 0x8a30c551, 0xa018fd33, + 0xde60b595, 0xf4488df7, 0x229024d9, 0x08b81cbb, 0x76c0541d, + 0x5ce86c7f, 0xcf108ce3, 0xe538b481, 0x9b40fc27, 0xb168c445, + 0x67b06d6b, 0x4d985509, 0x33e01daf, 0x19c825cd, 0x452049b2, + 0x6f0871d0, 0x11703976, 0x3b580114, 0xed80a83a, 0xc7a89058, + 0xb9d0d8fe, 0x93f8e09c, 0x45501f87, 0x6f7827e5, 0x11006f43, + 0x3b285721, 0xedf0fe0f, 0xc7d8c66d, 0xb9a08ecb, 0x9388b6a9, + 0xcf60dad6, 0xe548e2b4, 0x9b30aa12, 0xb1189270, 0x67c03b5e, + 0x4de8033c, 0x33904b9a, 0x19b873f8, 0x8a409364, 0xa068ab06, + 0xde10e3a0, 0xf438dbc2, 0x22e072ec, 0x08c84a8e, 0x76b00228, + 0x5c983a4a, 0x00705635, 0x2a586e57, 0x542026f1, 0x7e081e93, + 0xa8d0b7bd, 0x82f88fdf, 0xfc80c779, 0xd6a8ff1b, 0x8aa03f0e, + 0xa088076c, 0xdef04fca, 0xf4d877a8, 0x2200de86, 0x0828e6e4, + 0x7650ae42, 0x5c789620, 0x0090fa5f, 0x2ab8c23d, 0x54c08a9b, + 0x7ee8b2f9, 0xa8301bd7, 0x821823b5, 0xfc606b13, 0xd6485371, + 0x45b0b3ed, 0x6f988b8f, 0x11e0c329, 0x3bc8fb4b, 0xed105265, + 0xc7386a07, 0xb94022a1, 0x93681ac3, 0xcf8076bc, 0xe5a84ede, + 0x9bd00678, 0xb1f83e1a, 0x67209734, 0x4d08af56, 0x3370e7f0, + 0x1958df92, 0xcff02089, 0xe5d818eb, 0x9ba0504d, 0xb188682f, + 0x6750c101, 0x4d78f963, 0x3300b1c5, 0x192889a7, 0x45c0e5d8, + 0x6fe8ddba, 0x1190951c, 0x3bb8ad7e, 0xed600450, 0xc7483c32, + 0xb9307494, 0x93184cf6, 0x00e0ac6a, 0x2ac89408, 0x54b0dcae, + 0x7e98e4cc, 0xa8404de2, 0x82687580, 0xfc103d26, 0xd6380544, + 0x8ad0693b, 0xa0f85159, 0xde8019ff, 0xf4a8219d, 0x227088b3, + 0x0858b0d1, 0x7620f877, 0x5c08c015, 0xce31785d, 0xe419403f, + 0x9a610899, 0xb04930fb, 0x669199d5, 0x4cb9a1b7, 0x32c1e911, + 0x18e9d173, 0x4401bd0c, 0x6e29856e, 0x1051cdc8, 0x3a79f5aa, + 0xeca15c84, 0xc68964e6, 0xb8f12c40, 0x92d91422, 0x0121f4be, + 0x2b09ccdc, 0x5571847a, 0x7f59bc18, 0xa9811536, 0x83a92d54, + 0xfdd165f2, 0xd7f95d90, 0x8b1131ef, 0xa139098d, 0xdf41412b, + 0xf5697949, 0x23b1d067, 0x0999e805, 0x77e1a0a3, 0x5dc998c1, + 0x8b6167da, 0xa1495fb8, 0xdf31171e, 0xf5192f7c, 0x23c18652, + 0x09e9be30, 0x7791f696, 0x5db9cef4, 0x0151a28b, 0x2b799ae9, + 0x5501d24f, 0x7f29ea2d, 0xa9f14303, 0x83d97b61, 0xfda133c7, + 0xd7890ba5, 0x4471eb39, 0x6e59d35b, 0x10219bfd, 0x3a09a39f, + 0xecd10ab1, 0xc6f932d3, 0xb8817a75, 0x92a94217, 0xce412e68, + 0xe469160a, 0x9a115eac, 0xb03966ce, 0x66e1cfe0, 0x4cc9f782, + 0x32b1bf24, 0x18998746, 0x44914753, 0x6eb97f31, 0x10c13797, + 0x3ae90ff5, 0xec31a6db, 0xc6199eb9, 0xb861d61f, 0x9249ee7d, + 0xcea18202, 0xe489ba60, 0x9af1f2c6, 0xb0d9caa4, 0x6601638a, + 0x4c295be8, 0x3251134e, 0x18792b2c, 0x8b81cbb0, 0xa1a9f3d2, + 0xdfd1bb74, 0xf5f98316, 0x23212a38, 0x0909125a, 0x77715afc, + 0x5d59629e, 0x01b10ee1, 0x2b993683, 0x55e17e25, 0x7fc94647, + 0xa911ef69, 0x8339d70b, 0xfd419fad, 0xd769a7cf, 0x01c158d4, + 0x2be960b6, 0x55912810, 0x7fb91072, 0xa961b95c, 0x8349813e, + 0xfd31c998, 0xd719f1fa, 0x8bf19d85, 0xa1d9a5e7, 0xdfa1ed41, + 0xf589d523, 0x23517c0d, 0x0979446f, 0x77010cc9, 0x5d2934ab, + 0xced1d437, 0xe4f9ec55, 0x9a81a4f3, 0xb0a99c91, 0x667135bf, + 0x4c590ddd, 0x3221457b, 0x18097d19, 0x44e11166, 0x6ec92904, + 0x10b161a2, 0x3a9959c0, 0xec41f0ee, 0xc669c88c, 0xb811802a, + 0x9239b848}, + {0x00000000, 0x4713f6fb, 0x8e27edf6, 0xc9341b0d, 0xc73eddad, + 0x802d2b56, 0x4919305b, 0x0e0ac6a0, 0x550cbd1b, 0x121f4be0, + 0xdb2b50ed, 0x9c38a616, 0x923260b6, 0xd521964d, 0x1c158d40, + 0x5b067bbb, 0xaa197a36, 0xed0a8ccd, 0x243e97c0, 0x632d613b, + 0x6d27a79b, 0x2a345160, 0xe3004a6d, 0xa413bc96, 0xff15c72d, + 0xb80631d6, 0x71322adb, 0x3621dc20, 0x382b1a80, 0x7f38ec7b, + 0xb60cf776, 0xf11f018d, 0x8f43f22d, 0xc85004d6, 0x01641fdb, + 0x4677e920, 0x487d2f80, 0x0f6ed97b, 0xc65ac276, 0x8149348d, + 0xda4f4f36, 0x9d5cb9cd, 0x5468a2c0, 0x137b543b, 0x1d71929b, + 0x5a626460, 0x93567f6d, 0xd4458996, 0x255a881b, 0x62497ee0, + 0xab7d65ed, 0xec6e9316, 0xe26455b6, 0xa577a34d, 0x6c43b840, + 0x2b504ebb, 0x70563500, 0x3745c3fb, 0xfe71d8f6, 0xb9622e0d, + 0xb768e8ad, 0xf07b1e56, 0x394f055b, 0x7e5cf3a0, 0xc5f6e21b, + 0x82e514e0, 0x4bd10fed, 0x0cc2f916, 0x02c83fb6, 0x45dbc94d, + 0x8cefd240, 0xcbfc24bb, 0x90fa5f00, 0xd7e9a9fb, 0x1eddb2f6, + 0x59ce440d, 0x57c482ad, 0x10d77456, 0xd9e36f5b, 0x9ef099a0, + 0x6fef982d, 0x28fc6ed6, 0xe1c875db, 0xa6db8320, 0xa8d14580, + 0xefc2b37b, 0x26f6a876, 0x61e55e8d, 0x3ae32536, 0x7df0d3cd, + 0xb4c4c8c0, 0xf3d73e3b, 0xfdddf89b, 0xbace0e60, 0x73fa156d, + 0x34e9e396, 0x4ab51036, 0x0da6e6cd, 0xc492fdc0, 0x83810b3b, + 0x8d8bcd9b, 0xca983b60, 0x03ac206d, 0x44bfd696, 0x1fb9ad2d, + 0x58aa5bd6, 0x919e40db, 0xd68db620, 0xd8877080, 0x9f94867b, + 0x56a09d76, 0x11b36b8d, 0xe0ac6a00, 0xa7bf9cfb, 0x6e8b87f6, + 0x2998710d, 0x2792b7ad, 0x60814156, 0xa9b55a5b, 0xeea6aca0, + 0xb5a0d71b, 0xf2b321e0, 0x3b873aed, 0x7c94cc16, 0x729e0ab6, + 0x358dfc4d, 0xfcb9e740, 0xbbaa11bb, 0x509cc277, 0x178f348c, + 0xdebb2f81, 0x99a8d97a, 0x97a21fda, 0xd0b1e921, 0x1985f22c, + 0x5e9604d7, 0x05907f6c, 0x42838997, 0x8bb7929a, 0xcca46461, + 0xc2aea2c1, 0x85bd543a, 0x4c894f37, 0x0b9ab9cc, 0xfa85b841, + 0xbd964eba, 0x74a255b7, 0x33b1a34c, 0x3dbb65ec, 0x7aa89317, + 0xb39c881a, 0xf48f7ee1, 0xaf89055a, 0xe89af3a1, 0x21aee8ac, + 0x66bd1e57, 0x68b7d8f7, 0x2fa42e0c, 0xe6903501, 0xa183c3fa, + 0xdfdf305a, 0x98ccc6a1, 0x51f8ddac, 0x16eb2b57, 0x18e1edf7, + 0x5ff21b0c, 0x96c60001, 0xd1d5f6fa, 0x8ad38d41, 0xcdc07bba, + 0x04f460b7, 0x43e7964c, 0x4ded50ec, 0x0afea617, 0xc3cabd1a, + 0x84d94be1, 0x75c64a6c, 0x32d5bc97, 0xfbe1a79a, 0xbcf25161, + 0xb2f897c1, 0xf5eb613a, 0x3cdf7a37, 0x7bcc8ccc, 0x20caf777, + 0x67d9018c, 0xaeed1a81, 0xe9feec7a, 0xe7f42ada, 0xa0e7dc21, + 0x69d3c72c, 0x2ec031d7, 0x956a206c, 0xd279d697, 0x1b4dcd9a, + 0x5c5e3b61, 0x5254fdc1, 0x15470b3a, 0xdc731037, 0x9b60e6cc, + 0xc0669d77, 0x87756b8c, 0x4e417081, 0x0952867a, 0x075840da, + 0x404bb621, 0x897fad2c, 0xce6c5bd7, 0x3f735a5a, 0x7860aca1, + 0xb154b7ac, 0xf6474157, 0xf84d87f7, 0xbf5e710c, 0x766a6a01, + 0x31799cfa, 0x6a7fe741, 0x2d6c11ba, 0xe4580ab7, 0xa34bfc4c, + 0xad413aec, 0xea52cc17, 0x2366d71a, 0x647521e1, 0x1a29d241, + 0x5d3a24ba, 0x940e3fb7, 0xd31dc94c, 0xdd170fec, 0x9a04f917, + 0x5330e21a, 0x142314e1, 0x4f256f5a, 0x083699a1, 0xc10282ac, + 0x86117457, 0x881bb2f7, 0xcf08440c, 0x063c5f01, 0x412fa9fa, + 0xb030a877, 0xf7235e8c, 0x3e174581, 0x7904b37a, 0x770e75da, + 0x301d8321, 0xf929982c, 0xbe3a6ed7, 0xe53c156c, 0xa22fe397, + 0x6b1bf89a, 0x2c080e61, 0x2202c8c1, 0x65113e3a, 0xac252537, + 0xeb36d3cc}, + {0x00000000, 0xa13984ee, 0x99020f9d, 0x383b8b73, 0xe975197b, + 0x484c9d95, 0x707716e6, 0xd14e9208, 0x099b34b7, 0xa8a2b059, + 0x90993b2a, 0x31a0bfc4, 0xe0ee2dcc, 0x41d7a922, 0x79ec2251, + 0xd8d5a6bf, 0x1336696e, 0xb20fed80, 0x8a3466f3, 0x2b0de21d, + 0xfa437015, 0x5b7af4fb, 0x63417f88, 0xc278fb66, 0x1aad5dd9, + 0xbb94d937, 0x83af5244, 0x2296d6aa, 0xf3d844a2, 0x52e1c04c, + 0x6ada4b3f, 0xcbe3cfd1, 0x266cd2dc, 0x87555632, 0xbf6edd41, + 0x1e5759af, 0xcf19cba7, 0x6e204f49, 0x561bc43a, 0xf72240d4, + 0x2ff7e66b, 0x8ece6285, 0xb6f5e9f6, 0x17cc6d18, 0xc682ff10, + 0x67bb7bfe, 0x5f80f08d, 0xfeb97463, 0x355abbb2, 0x94633f5c, + 0xac58b42f, 0x0d6130c1, 0xdc2fa2c9, 0x7d162627, 0x452dad54, + 0xe41429ba, 0x3cc18f05, 0x9df80beb, 0xa5c38098, 0x04fa0476, + 0xd5b4967e, 0x748d1290, 0x4cb699e3, 0xed8f1d0d, 0x4cd9a5b8, + 0xede02156, 0xd5dbaa25, 0x74e22ecb, 0xa5acbcc3, 0x0495382d, + 0x3caeb35e, 0x9d9737b0, 0x4542910f, 0xe47b15e1, 0xdc409e92, + 0x7d791a7c, 0xac378874, 0x0d0e0c9a, 0x353587e9, 0x940c0307, + 0x5fefccd6, 0xfed64838, 0xc6edc34b, 0x67d447a5, 0xb69ad5ad, + 0x17a35143, 0x2f98da30, 0x8ea15ede, 0x5674f861, 0xf74d7c8f, + 0xcf76f7fc, 0x6e4f7312, 0xbf01e11a, 0x1e3865f4, 0x2603ee87, + 0x873a6a69, 0x6ab57764, 0xcb8cf38a, 0xf3b778f9, 0x528efc17, + 0x83c06e1f, 0x22f9eaf1, 0x1ac26182, 0xbbfbe56c, 0x632e43d3, + 0xc217c73d, 0xfa2c4c4e, 0x5b15c8a0, 0x8a5b5aa8, 0x2b62de46, + 0x13595535, 0xb260d1db, 0x79831e0a, 0xd8ba9ae4, 0xe0811197, + 0x41b89579, 0x90f60771, 0x31cf839f, 0x09f408ec, 0xa8cd8c02, + 0x70182abd, 0xd121ae53, 0xe91a2520, 0x4823a1ce, 0x996d33c6, + 0x3854b728, 0x006f3c5b, 0xa156b8b5, 0x99b34b70, 0x388acf9e, + 0x00b144ed, 0xa188c003, 0x70c6520b, 0xd1ffd6e5, 0xe9c45d96, + 0x48fdd978, 0x90287fc7, 0x3111fb29, 0x092a705a, 0xa813f4b4, + 0x795d66bc, 0xd864e252, 0xe05f6921, 0x4166edcf, 0x8a85221e, + 0x2bbca6f0, 0x13872d83, 0xb2bea96d, 0x63f03b65, 0xc2c9bf8b, + 0xfaf234f8, 0x5bcbb016, 0x831e16a9, 0x22279247, 0x1a1c1934, + 0xbb259dda, 0x6a6b0fd2, 0xcb528b3c, 0xf369004f, 0x525084a1, + 0xbfdf99ac, 0x1ee61d42, 0x26dd9631, 0x87e412df, 0x56aa80d7, + 0xf7930439, 0xcfa88f4a, 0x6e910ba4, 0xb644ad1b, 0x177d29f5, + 0x2f46a286, 0x8e7f2668, 0x5f31b460, 0xfe08308e, 0xc633bbfd, + 0x670a3f13, 0xace9f0c2, 0x0dd0742c, 0x35ebff5f, 0x94d27bb1, + 0x459ce9b9, 0xe4a56d57, 0xdc9ee624, 0x7da762ca, 0xa572c475, + 0x044b409b, 0x3c70cbe8, 0x9d494f06, 0x4c07dd0e, 0xed3e59e0, + 0xd505d293, 0x743c567d, 0xd56aeec8, 0x74536a26, 0x4c68e155, + 0xed5165bb, 0x3c1ff7b3, 0x9d26735d, 0xa51df82e, 0x04247cc0, + 0xdcf1da7f, 0x7dc85e91, 0x45f3d5e2, 0xe4ca510c, 0x3584c304, + 0x94bd47ea, 0xac86cc99, 0x0dbf4877, 0xc65c87a6, 0x67650348, + 0x5f5e883b, 0xfe670cd5, 0x2f299edd, 0x8e101a33, 0xb62b9140, + 0x171215ae, 0xcfc7b311, 0x6efe37ff, 0x56c5bc8c, 0xf7fc3862, + 0x26b2aa6a, 0x878b2e84, 0xbfb0a5f7, 0x1e892119, 0xf3063c14, + 0x523fb8fa, 0x6a043389, 0xcb3db767, 0x1a73256f, 0xbb4aa181, + 0x83712af2, 0x2248ae1c, 0xfa9d08a3, 0x5ba48c4d, 0x639f073e, + 0xc2a683d0, 0x13e811d8, 0xb2d19536, 0x8aea1e45, 0x2bd39aab, + 0xe030557a, 0x4109d194, 0x79325ae7, 0xd80bde09, 0x09454c01, + 0xa87cc8ef, 0x9047439c, 0x317ec772, 0xe9ab61cd, 0x4892e523, + 0x70a96e50, 0xd190eabe, 0x00de78b6, 0xa1e7fc58, 0x99dc772b, + 0x38e5f3c5}, + {0x00000000, 0xe81790a1, 0x0b5e2703, 0xe349b7a2, 0x16bc4e06, + 0xfeabdea7, 0x1de26905, 0xf5f5f9a4, 0x2d789c0c, 0xc56f0cad, + 0x2626bb0f, 0xce312bae, 0x3bc4d20a, 0xd3d342ab, 0x309af509, + 0xd88d65a8, 0x5af13818, 0xb2e6a8b9, 0x51af1f1b, 0xb9b88fba, + 0x4c4d761e, 0xa45ae6bf, 0x4713511d, 0xaf04c1bc, 0x7789a414, + 0x9f9e34b5, 0x7cd78317, 0x94c013b6, 0x6135ea12, 0x89227ab3, + 0x6a6bcd11, 0x827c5db0, 0xb5e27030, 0x5df5e091, 0xbebc5733, + 0x56abc792, 0xa35e3e36, 0x4b49ae97, 0xa8001935, 0x40178994, + 0x989aec3c, 0x708d7c9d, 0x93c4cb3f, 0x7bd35b9e, 0x8e26a23a, + 0x6631329b, 0x85788539, 0x6d6f1598, 0xef134828, 0x0704d889, + 0xe44d6f2b, 0x0c5aff8a, 0xf9af062e, 0x11b8968f, 0xf2f1212d, + 0x1ae6b18c, 0xc26bd424, 0x2a7c4485, 0xc935f327, 0x21226386, + 0xd4d79a22, 0x3cc00a83, 0xdf89bd21, 0x379e2d80, 0xb0b5e621, + 0x58a27680, 0xbbebc122, 0x53fc5183, 0xa609a827, 0x4e1e3886, + 0xad578f24, 0x45401f85, 0x9dcd7a2d, 0x75daea8c, 0x96935d2e, + 0x7e84cd8f, 0x8b71342b, 0x6366a48a, 0x802f1328, 0x68388389, + 0xea44de39, 0x02534e98, 0xe11af93a, 0x090d699b, 0xfcf8903f, + 0x14ef009e, 0xf7a6b73c, 0x1fb1279d, 0xc73c4235, 0x2f2bd294, + 0xcc626536, 0x2475f597, 0xd1800c33, 0x39979c92, 0xdade2b30, + 0x32c9bb91, 0x05579611, 0xed4006b0, 0x0e09b112, 0xe61e21b3, + 0x13ebd817, 0xfbfc48b6, 0x18b5ff14, 0xf0a26fb5, 0x282f0a1d, + 0xc0389abc, 0x23712d1e, 0xcb66bdbf, 0x3e93441b, 0xd684d4ba, + 0x35cd6318, 0xdddaf3b9, 0x5fa6ae09, 0xb7b13ea8, 0x54f8890a, + 0xbcef19ab, 0x491ae00f, 0xa10d70ae, 0x4244c70c, 0xaa5357ad, + 0x72de3205, 0x9ac9a2a4, 0x79801506, 0x919785a7, 0x64627c03, + 0x8c75eca2, 0x6f3c5b00, 0x872bcba1, 0xba1aca03, 0x520d5aa2, + 0xb144ed00, 0x59537da1, 0xaca68405, 0x44b114a4, 0xa7f8a306, + 0x4fef33a7, 0x9762560f, 0x7f75c6ae, 0x9c3c710c, 0x742be1ad, + 0x81de1809, 0x69c988a8, 0x8a803f0a, 0x6297afab, 0xe0ebf21b, + 0x08fc62ba, 0xebb5d518, 0x03a245b9, 0xf657bc1d, 0x1e402cbc, + 0xfd099b1e, 0x151e0bbf, 0xcd936e17, 0x2584feb6, 0xc6cd4914, + 0x2edad9b5, 0xdb2f2011, 0x3338b0b0, 0xd0710712, 0x386697b3, + 0x0ff8ba33, 0xe7ef2a92, 0x04a69d30, 0xecb10d91, 0x1944f435, + 0xf1536494, 0x121ad336, 0xfa0d4397, 0x2280263f, 0xca97b69e, + 0x29de013c, 0xc1c9919d, 0x343c6839, 0xdc2bf898, 0x3f624f3a, + 0xd775df9b, 0x5509822b, 0xbd1e128a, 0x5e57a528, 0xb6403589, + 0x43b5cc2d, 0xaba25c8c, 0x48ebeb2e, 0xa0fc7b8f, 0x78711e27, + 0x90668e86, 0x732f3924, 0x9b38a985, 0x6ecd5021, 0x86dac080, + 0x65937722, 0x8d84e783, 0x0aaf2c22, 0xe2b8bc83, 0x01f10b21, + 0xe9e69b80, 0x1c136224, 0xf404f285, 0x174d4527, 0xff5ad586, + 0x27d7b02e, 0xcfc0208f, 0x2c89972d, 0xc49e078c, 0x316bfe28, + 0xd97c6e89, 0x3a35d92b, 0xd222498a, 0x505e143a, 0xb849849b, + 0x5b003339, 0xb317a398, 0x46e25a3c, 0xaef5ca9d, 0x4dbc7d3f, + 0xa5abed9e, 0x7d268836, 0x95311897, 0x7678af35, 0x9e6f3f94, + 0x6b9ac630, 0x838d5691, 0x60c4e133, 0x88d37192, 0xbf4d5c12, + 0x575accb3, 0xb4137b11, 0x5c04ebb0, 0xa9f11214, 0x41e682b5, + 0xa2af3517, 0x4ab8a5b6, 0x9235c01e, 0x7a2250bf, 0x996be71d, + 0x717c77bc, 0x84898e18, 0x6c9e1eb9, 0x8fd7a91b, 0x67c039ba, + 0xe5bc640a, 0x0dabf4ab, 0xeee24309, 0x06f5d3a8, 0xf3002a0c, + 0x1b17baad, 0xf85e0d0f, 0x10499dae, 0xc8c4f806, 0x20d368a7, + 0xc39adf05, 0x2b8d4fa4, 0xde78b600, 0x366f26a1, 0xd5269103, + 0x3d3101a2}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x0000000000000000, 0xa19017e800000000, 0x03275e0b00000000, + 0xa2b749e300000000, 0x064ebc1600000000, 0xa7deabfe00000000, + 0x0569e21d00000000, 0xa4f9f5f500000000, 0x0c9c782d00000000, + 0xad0c6fc500000000, 0x0fbb262600000000, 0xae2b31ce00000000, + 0x0ad2c43b00000000, 0xab42d3d300000000, 0x09f59a3000000000, + 0xa8658dd800000000, 0x1838f15a00000000, 0xb9a8e6b200000000, + 0x1b1faf5100000000, 0xba8fb8b900000000, 0x1e764d4c00000000, + 0xbfe65aa400000000, 0x1d51134700000000, 0xbcc104af00000000, + 0x14a4897700000000, 0xb5349e9f00000000, 0x1783d77c00000000, + 0xb613c09400000000, 0x12ea356100000000, 0xb37a228900000000, + 0x11cd6b6a00000000, 0xb05d7c8200000000, 0x3070e2b500000000, + 0x91e0f55d00000000, 0x3357bcbe00000000, 0x92c7ab5600000000, + 0x363e5ea300000000, 0x97ae494b00000000, 0x351900a800000000, + 0x9489174000000000, 0x3cec9a9800000000, 0x9d7c8d7000000000, + 0x3fcbc49300000000, 0x9e5bd37b00000000, 0x3aa2268e00000000, + 0x9b32316600000000, 0x3985788500000000, 0x98156f6d00000000, + 0x284813ef00000000, 0x89d8040700000000, 0x2b6f4de400000000, + 0x8aff5a0c00000000, 0x2e06aff900000000, 0x8f96b81100000000, + 0x2d21f1f200000000, 0x8cb1e61a00000000, 0x24d46bc200000000, + 0x85447c2a00000000, 0x27f335c900000000, 0x8663222100000000, + 0x229ad7d400000000, 0x830ac03c00000000, 0x21bd89df00000000, + 0x802d9e3700000000, 0x21e6b5b000000000, 0x8076a25800000000, + 0x22c1ebbb00000000, 0x8351fc5300000000, 0x27a809a600000000, + 0x86381e4e00000000, 0x248f57ad00000000, 0x851f404500000000, + 0x2d7acd9d00000000, 0x8ceada7500000000, 0x2e5d939600000000, + 0x8fcd847e00000000, 0x2b34718b00000000, 0x8aa4666300000000, + 0x28132f8000000000, 0x8983386800000000, 0x39de44ea00000000, + 0x984e530200000000, 0x3af91ae100000000, 0x9b690d0900000000, + 0x3f90f8fc00000000, 0x9e00ef1400000000, 0x3cb7a6f700000000, + 0x9d27b11f00000000, 0x35423cc700000000, 0x94d22b2f00000000, + 0x366562cc00000000, 0x97f5752400000000, 0x330c80d100000000, + 0x929c973900000000, 0x302bdeda00000000, 0x91bbc93200000000, + 0x1196570500000000, 0xb00640ed00000000, 0x12b1090e00000000, + 0xb3211ee600000000, 0x17d8eb1300000000, 0xb648fcfb00000000, + 0x14ffb51800000000, 0xb56fa2f000000000, 0x1d0a2f2800000000, + 0xbc9a38c000000000, 0x1e2d712300000000, 0xbfbd66cb00000000, + 0x1b44933e00000000, 0xbad484d600000000, 0x1863cd3500000000, + 0xb9f3dadd00000000, 0x09aea65f00000000, 0xa83eb1b700000000, + 0x0a89f85400000000, 0xab19efbc00000000, 0x0fe01a4900000000, + 0xae700da100000000, 0x0cc7444200000000, 0xad5753aa00000000, + 0x0532de7200000000, 0xa4a2c99a00000000, 0x0615807900000000, + 0xa785979100000000, 0x037c626400000000, 0xa2ec758c00000000, + 0x005b3c6f00000000, 0xa1cb2b8700000000, 0x03ca1aba00000000, + 0xa25a0d5200000000, 0x00ed44b100000000, 0xa17d535900000000, + 0x0584a6ac00000000, 0xa414b14400000000, 0x06a3f8a700000000, + 0xa733ef4f00000000, 0x0f56629700000000, 0xaec6757f00000000, + 0x0c713c9c00000000, 0xade12b7400000000, 0x0918de8100000000, + 0xa888c96900000000, 0x0a3f808a00000000, 0xabaf976200000000, + 0x1bf2ebe000000000, 0xba62fc0800000000, 0x18d5b5eb00000000, + 0xb945a20300000000, 0x1dbc57f600000000, 0xbc2c401e00000000, + 0x1e9b09fd00000000, 0xbf0b1e1500000000, 0x176e93cd00000000, + 0xb6fe842500000000, 0x1449cdc600000000, 0xb5d9da2e00000000, + 0x11202fdb00000000, 0xb0b0383300000000, 0x120771d000000000, + 0xb397663800000000, 0x33baf80f00000000, 0x922aefe700000000, + 0x309da60400000000, 0x910db1ec00000000, 0x35f4441900000000, + 0x946453f100000000, 0x36d31a1200000000, 0x97430dfa00000000, + 0x3f26802200000000, 0x9eb697ca00000000, 0x3c01de2900000000, + 0x9d91c9c100000000, 0x39683c3400000000, 0x98f82bdc00000000, + 0x3a4f623f00000000, 0x9bdf75d700000000, 0x2b82095500000000, + 0x8a121ebd00000000, 0x28a5575e00000000, 0x893540b600000000, + 0x2dccb54300000000, 0x8c5ca2ab00000000, 0x2eebeb4800000000, + 0x8f7bfca000000000, 0x271e717800000000, 0x868e669000000000, + 0x24392f7300000000, 0x85a9389b00000000, 0x2150cd6e00000000, + 0x80c0da8600000000, 0x2277936500000000, 0x83e7848d00000000, + 0x222caf0a00000000, 0x83bcb8e200000000, 0x210bf10100000000, + 0x809be6e900000000, 0x2462131c00000000, 0x85f204f400000000, + 0x27454d1700000000, 0x86d55aff00000000, 0x2eb0d72700000000, + 0x8f20c0cf00000000, 0x2d97892c00000000, 0x8c079ec400000000, + 0x28fe6b3100000000, 0x896e7cd900000000, 0x2bd9353a00000000, + 0x8a4922d200000000, 0x3a145e5000000000, 0x9b8449b800000000, + 0x3933005b00000000, 0x98a317b300000000, 0x3c5ae24600000000, + 0x9dcaf5ae00000000, 0x3f7dbc4d00000000, 0x9eedaba500000000, + 0x3688267d00000000, 0x9718319500000000, 0x35af787600000000, + 0x943f6f9e00000000, 0x30c69a6b00000000, 0x91568d8300000000, + 0x33e1c46000000000, 0x9271d38800000000, 0x125c4dbf00000000, + 0xb3cc5a5700000000, 0x117b13b400000000, 0xb0eb045c00000000, + 0x1412f1a900000000, 0xb582e64100000000, 0x1735afa200000000, + 0xb6a5b84a00000000, 0x1ec0359200000000, 0xbf50227a00000000, + 0x1de76b9900000000, 0xbc777c7100000000, 0x188e898400000000, + 0xb91e9e6c00000000, 0x1ba9d78f00000000, 0xba39c06700000000, + 0x0a64bce500000000, 0xabf4ab0d00000000, 0x0943e2ee00000000, + 0xa8d3f50600000000, 0x0c2a00f300000000, 0xadba171b00000000, + 0x0f0d5ef800000000, 0xae9d491000000000, 0x06f8c4c800000000, + 0xa768d32000000000, 0x05df9ac300000000, 0xa44f8d2b00000000, + 0x00b678de00000000, 0xa1266f3600000000, 0x039126d500000000, + 0xa201313d00000000}, + {0x0000000000000000, 0xee8439a100000000, 0x9d0f029900000000, + 0x738b3b3800000000, 0x7b1975e900000000, 0x959d4c4800000000, + 0xe616777000000000, 0x08924ed100000000, 0xb7349b0900000000, + 0x59b0a2a800000000, 0x2a3b999000000000, 0xc4bfa03100000000, + 0xcc2deee000000000, 0x22a9d74100000000, 0x5122ec7900000000, + 0xbfa6d5d800000000, 0x6e69361300000000, 0x80ed0fb200000000, + 0xf366348a00000000, 0x1de20d2b00000000, 0x157043fa00000000, + 0xfbf47a5b00000000, 0x887f416300000000, 0x66fb78c200000000, + 0xd95dad1a00000000, 0x37d994bb00000000, 0x4452af8300000000, + 0xaad6962200000000, 0xa244d8f300000000, 0x4cc0e15200000000, + 0x3f4bda6a00000000, 0xd1cfe3cb00000000, 0xdcd26c2600000000, + 0x3256558700000000, 0x41dd6ebf00000000, 0xaf59571e00000000, + 0xa7cb19cf00000000, 0x494f206e00000000, 0x3ac41b5600000000, + 0xd44022f700000000, 0x6be6f72f00000000, 0x8562ce8e00000000, + 0xf6e9f5b600000000, 0x186dcc1700000000, 0x10ff82c600000000, + 0xfe7bbb6700000000, 0x8df0805f00000000, 0x6374b9fe00000000, + 0xb2bb5a3500000000, 0x5c3f639400000000, 0x2fb458ac00000000, + 0xc130610d00000000, 0xc9a22fdc00000000, 0x2726167d00000000, + 0x54ad2d4500000000, 0xba2914e400000000, 0x058fc13c00000000, + 0xeb0bf89d00000000, 0x9880c3a500000000, 0x7604fa0400000000, + 0x7e96b4d500000000, 0x90128d7400000000, 0xe399b64c00000000, + 0x0d1d8fed00000000, 0xb8a5d94c00000000, 0x5621e0ed00000000, + 0x25aadbd500000000, 0xcb2ee27400000000, 0xc3bcaca500000000, + 0x2d38950400000000, 0x5eb3ae3c00000000, 0xb037979d00000000, + 0x0f91424500000000, 0xe1157be400000000, 0x929e40dc00000000, + 0x7c1a797d00000000, 0x748837ac00000000, 0x9a0c0e0d00000000, + 0xe987353500000000, 0x07030c9400000000, 0xd6ccef5f00000000, + 0x3848d6fe00000000, 0x4bc3edc600000000, 0xa547d46700000000, + 0xadd59ab600000000, 0x4351a31700000000, 0x30da982f00000000, + 0xde5ea18e00000000, 0x61f8745600000000, 0x8f7c4df700000000, + 0xfcf776cf00000000, 0x12734f6e00000000, 0x1ae101bf00000000, + 0xf465381e00000000, 0x87ee032600000000, 0x696a3a8700000000, + 0x6477b56a00000000, 0x8af38ccb00000000, 0xf978b7f300000000, + 0x17fc8e5200000000, 0x1f6ec08300000000, 0xf1eaf92200000000, + 0x8261c21a00000000, 0x6ce5fbbb00000000, 0xd3432e6300000000, + 0x3dc717c200000000, 0x4e4c2cfa00000000, 0xa0c8155b00000000, + 0xa85a5b8a00000000, 0x46de622b00000000, 0x3555591300000000, + 0xdbd160b200000000, 0x0a1e837900000000, 0xe49abad800000000, + 0x971181e000000000, 0x7995b84100000000, 0x7107f69000000000, + 0x9f83cf3100000000, 0xec08f40900000000, 0x028ccda800000000, + 0xbd2a187000000000, 0x53ae21d100000000, 0x20251ae900000000, + 0xcea1234800000000, 0xc6336d9900000000, 0x28b7543800000000, + 0x5b3c6f0000000000, 0xb5b856a100000000, 0x704bb39900000000, + 0x9ecf8a3800000000, 0xed44b10000000000, 0x03c088a100000000, + 0x0b52c67000000000, 0xe5d6ffd100000000, 0x965dc4e900000000, + 0x78d9fd4800000000, 0xc77f289000000000, 0x29fb113100000000, + 0x5a702a0900000000, 0xb4f413a800000000, 0xbc665d7900000000, + 0x52e264d800000000, 0x21695fe000000000, 0xcfed664100000000, + 0x1e22858a00000000, 0xf0a6bc2b00000000, 0x832d871300000000, + 0x6da9beb200000000, 0x653bf06300000000, 0x8bbfc9c200000000, + 0xf834f2fa00000000, 0x16b0cb5b00000000, 0xa9161e8300000000, + 0x4792272200000000, 0x34191c1a00000000, 0xda9d25bb00000000, + 0xd20f6b6a00000000, 0x3c8b52cb00000000, 0x4f0069f300000000, + 0xa184505200000000, 0xac99dfbf00000000, 0x421de61e00000000, + 0x3196dd2600000000, 0xdf12e48700000000, 0xd780aa5600000000, + 0x390493f700000000, 0x4a8fa8cf00000000, 0xa40b916e00000000, + 0x1bad44b600000000, 0xf5297d1700000000, 0x86a2462f00000000, + 0x68267f8e00000000, 0x60b4315f00000000, 0x8e3008fe00000000, + 0xfdbb33c600000000, 0x133f0a6700000000, 0xc2f0e9ac00000000, + 0x2c74d00d00000000, 0x5fffeb3500000000, 0xb17bd29400000000, + 0xb9e99c4500000000, 0x576da5e400000000, 0x24e69edc00000000, + 0xca62a77d00000000, 0x75c472a500000000, 0x9b404b0400000000, + 0xe8cb703c00000000, 0x064f499d00000000, 0x0edd074c00000000, + 0xe0593eed00000000, 0x93d205d500000000, 0x7d563c7400000000, + 0xc8ee6ad500000000, 0x266a537400000000, 0x55e1684c00000000, + 0xbb6551ed00000000, 0xb3f71f3c00000000, 0x5d73269d00000000, + 0x2ef81da500000000, 0xc07c240400000000, 0x7fdaf1dc00000000, + 0x915ec87d00000000, 0xe2d5f34500000000, 0x0c51cae400000000, + 0x04c3843500000000, 0xea47bd9400000000, 0x99cc86ac00000000, + 0x7748bf0d00000000, 0xa6875cc600000000, 0x4803656700000000, + 0x3b885e5f00000000, 0xd50c67fe00000000, 0xdd9e292f00000000, + 0x331a108e00000000, 0x40912bb600000000, 0xae15121700000000, + 0x11b3c7cf00000000, 0xff37fe6e00000000, 0x8cbcc55600000000, + 0x6238fcf700000000, 0x6aaab22600000000, 0x842e8b8700000000, + 0xf7a5b0bf00000000, 0x1921891e00000000, 0x143c06f300000000, + 0xfab83f5200000000, 0x8933046a00000000, 0x67b73dcb00000000, + 0x6f25731a00000000, 0x81a14abb00000000, 0xf22a718300000000, + 0x1cae482200000000, 0xa3089dfa00000000, 0x4d8ca45b00000000, + 0x3e079f6300000000, 0xd083a6c200000000, 0xd811e81300000000, + 0x3695d1b200000000, 0x451eea8a00000000, 0xab9ad32b00000000, + 0x7a5530e000000000, 0x94d1094100000000, 0xe75a327900000000, + 0x09de0bd800000000, 0x014c450900000000, 0xefc87ca800000000, + 0x9c43479000000000, 0x72c77e3100000000, 0xcd61abe900000000, + 0x23e5924800000000, 0x506ea97000000000, 0xbeea90d100000000, + 0xb678de0000000000, 0x58fce7a100000000, 0x2b77dc9900000000, + 0xc5f3e53800000000}, + {0x0000000000000000, 0xfbf6134700000000, 0xf6ed278e00000000, + 0x0d1b34c900000000, 0xaddd3ec700000000, 0x562b2d8000000000, + 0x5b30194900000000, 0xa0c60a0e00000000, 0x1bbd0c5500000000, + 0xe04b1f1200000000, 0xed502bdb00000000, 0x16a6389c00000000, + 0xb660329200000000, 0x4d9621d500000000, 0x408d151c00000000, + 0xbb7b065b00000000, 0x367a19aa00000000, 0xcd8c0aed00000000, + 0xc0973e2400000000, 0x3b612d6300000000, 0x9ba7276d00000000, + 0x6051342a00000000, 0x6d4a00e300000000, 0x96bc13a400000000, + 0x2dc715ff00000000, 0xd63106b800000000, 0xdb2a327100000000, + 0x20dc213600000000, 0x801a2b3800000000, 0x7bec387f00000000, + 0x76f70cb600000000, 0x8d011ff100000000, 0x2df2438f00000000, + 0xd60450c800000000, 0xdb1f640100000000, 0x20e9774600000000, + 0x802f7d4800000000, 0x7bd96e0f00000000, 0x76c25ac600000000, + 0x8d34498100000000, 0x364f4fda00000000, 0xcdb95c9d00000000, + 0xc0a2685400000000, 0x3b547b1300000000, 0x9b92711d00000000, + 0x6064625a00000000, 0x6d7f569300000000, 0x968945d400000000, + 0x1b885a2500000000, 0xe07e496200000000, 0xed657dab00000000, + 0x16936eec00000000, 0xb65564e200000000, 0x4da377a500000000, + 0x40b8436c00000000, 0xbb4e502b00000000, 0x0035567000000000, + 0xfbc3453700000000, 0xf6d871fe00000000, 0x0d2e62b900000000, + 0xade868b700000000, 0x561e7bf000000000, 0x5b054f3900000000, + 0xa0f35c7e00000000, 0x1be2f6c500000000, 0xe014e58200000000, + 0xed0fd14b00000000, 0x16f9c20c00000000, 0xb63fc80200000000, + 0x4dc9db4500000000, 0x40d2ef8c00000000, 0xbb24fccb00000000, + 0x005ffa9000000000, 0xfba9e9d700000000, 0xf6b2dd1e00000000, + 0x0d44ce5900000000, 0xad82c45700000000, 0x5674d71000000000, + 0x5b6fe3d900000000, 0xa099f09e00000000, 0x2d98ef6f00000000, + 0xd66efc2800000000, 0xdb75c8e100000000, 0x2083dba600000000, + 0x8045d1a800000000, 0x7bb3c2ef00000000, 0x76a8f62600000000, + 0x8d5ee56100000000, 0x3625e33a00000000, 0xcdd3f07d00000000, + 0xc0c8c4b400000000, 0x3b3ed7f300000000, 0x9bf8ddfd00000000, + 0x600eceba00000000, 0x6d15fa7300000000, 0x96e3e93400000000, + 0x3610b54a00000000, 0xcde6a60d00000000, 0xc0fd92c400000000, + 0x3b0b818300000000, 0x9bcd8b8d00000000, 0x603b98ca00000000, + 0x6d20ac0300000000, 0x96d6bf4400000000, 0x2dadb91f00000000, + 0xd65baa5800000000, 0xdb409e9100000000, 0x20b68dd600000000, + 0x807087d800000000, 0x7b86949f00000000, 0x769da05600000000, + 0x8d6bb31100000000, 0x006aace000000000, 0xfb9cbfa700000000, + 0xf6878b6e00000000, 0x0d71982900000000, 0xadb7922700000000, + 0x5641816000000000, 0x5b5ab5a900000000, 0xa0aca6ee00000000, + 0x1bd7a0b500000000, 0xe021b3f200000000, 0xed3a873b00000000, + 0x16cc947c00000000, 0xb60a9e7200000000, 0x4dfc8d3500000000, + 0x40e7b9fc00000000, 0xbb11aabb00000000, 0x77c29c5000000000, + 0x8c348f1700000000, 0x812fbbde00000000, 0x7ad9a89900000000, + 0xda1fa29700000000, 0x21e9b1d000000000, 0x2cf2851900000000, + 0xd704965e00000000, 0x6c7f900500000000, 0x9789834200000000, + 0x9a92b78b00000000, 0x6164a4cc00000000, 0xc1a2aec200000000, + 0x3a54bd8500000000, 0x374f894c00000000, 0xccb99a0b00000000, + 0x41b885fa00000000, 0xba4e96bd00000000, 0xb755a27400000000, + 0x4ca3b13300000000, 0xec65bb3d00000000, 0x1793a87a00000000, + 0x1a889cb300000000, 0xe17e8ff400000000, 0x5a0589af00000000, + 0xa1f39ae800000000, 0xace8ae2100000000, 0x571ebd6600000000, + 0xf7d8b76800000000, 0x0c2ea42f00000000, 0x013590e600000000, + 0xfac383a100000000, 0x5a30dfdf00000000, 0xa1c6cc9800000000, + 0xacddf85100000000, 0x572beb1600000000, 0xf7ede11800000000, + 0x0c1bf25f00000000, 0x0100c69600000000, 0xfaf6d5d100000000, + 0x418dd38a00000000, 0xba7bc0cd00000000, 0xb760f40400000000, + 0x4c96e74300000000, 0xec50ed4d00000000, 0x17a6fe0a00000000, + 0x1abdcac300000000, 0xe14bd98400000000, 0x6c4ac67500000000, + 0x97bcd53200000000, 0x9aa7e1fb00000000, 0x6151f2bc00000000, + 0xc197f8b200000000, 0x3a61ebf500000000, 0x377adf3c00000000, + 0xcc8ccc7b00000000, 0x77f7ca2000000000, 0x8c01d96700000000, + 0x811aedae00000000, 0x7aecfee900000000, 0xda2af4e700000000, + 0x21dce7a000000000, 0x2cc7d36900000000, 0xd731c02e00000000, + 0x6c206a9500000000, 0x97d679d200000000, 0x9acd4d1b00000000, + 0x613b5e5c00000000, 0xc1fd545200000000, 0x3a0b471500000000, + 0x371073dc00000000, 0xcce6609b00000000, 0x779d66c000000000, + 0x8c6b758700000000, 0x8170414e00000000, 0x7a86520900000000, + 0xda40580700000000, 0x21b64b4000000000, 0x2cad7f8900000000, + 0xd75b6cce00000000, 0x5a5a733f00000000, 0xa1ac607800000000, + 0xacb754b100000000, 0x574147f600000000, 0xf7874df800000000, + 0x0c715ebf00000000, 0x016a6a7600000000, 0xfa9c793100000000, + 0x41e77f6a00000000, 0xba116c2d00000000, 0xb70a58e400000000, + 0x4cfc4ba300000000, 0xec3a41ad00000000, 0x17cc52ea00000000, + 0x1ad7662300000000, 0xe121756400000000, 0x41d2291a00000000, + 0xba243a5d00000000, 0xb73f0e9400000000, 0x4cc91dd300000000, + 0xec0f17dd00000000, 0x17f9049a00000000, 0x1ae2305300000000, + 0xe114231400000000, 0x5a6f254f00000000, 0xa199360800000000, + 0xac8202c100000000, 0x5774118600000000, 0xf7b21b8800000000, + 0x0c4408cf00000000, 0x015f3c0600000000, 0xfaa92f4100000000, + 0x77a830b000000000, 0x8c5e23f700000000, 0x8145173e00000000, + 0x7ab3047900000000, 0xda750e7700000000, 0x21831d3000000000, + 0x2c9829f900000000, 0xd76e3abe00000000, 0x6c153ce500000000, + 0x97e32fa200000000, 0x9af81b6b00000000, 0x610e082c00000000, + 0xc1c8022200000000, 0x3a3e116500000000, 0x372525ac00000000, + 0xccd336eb00000000}, + {0x0000000000000000, 0x6238282a00000000, 0xc470505400000000, + 0xa648787e00000000, 0x88e1a0a800000000, 0xead9888200000000, + 0x4c91f0fc00000000, 0x2ea9d8d600000000, 0x51c5308a00000000, + 0x33fd18a000000000, 0x95b560de00000000, 0xf78d48f400000000, + 0xd924902200000000, 0xbb1cb80800000000, 0x1d54c07600000000, + 0x7f6ce85c00000000, 0xe38c10cf00000000, 0x81b438e500000000, + 0x27fc409b00000000, 0x45c468b100000000, 0x6b6db06700000000, + 0x0955984d00000000, 0xaf1de03300000000, 0xcd25c81900000000, + 0xb249204500000000, 0xd071086f00000000, 0x7639701100000000, + 0x1401583b00000000, 0x3aa880ed00000000, 0x5890a8c700000000, + 0xfed8d0b900000000, 0x9ce0f89300000000, 0x871f504500000000, + 0xe527786f00000000, 0x436f001100000000, 0x2157283b00000000, + 0x0ffef0ed00000000, 0x6dc6d8c700000000, 0xcb8ea0b900000000, + 0xa9b6889300000000, 0xd6da60cf00000000, 0xb4e248e500000000, + 0x12aa309b00000000, 0x709218b100000000, 0x5e3bc06700000000, + 0x3c03e84d00000000, 0x9a4b903300000000, 0xf873b81900000000, + 0x6493408a00000000, 0x06ab68a000000000, 0xa0e310de00000000, + 0xc2db38f400000000, 0xec72e02200000000, 0x8e4ac80800000000, + 0x2802b07600000000, 0x4a3a985c00000000, 0x3556700000000000, + 0x576e582a00000000, 0xf126205400000000, 0x931e087e00000000, + 0xbdb7d0a800000000, 0xdf8ff88200000000, 0x79c780fc00000000, + 0x1bffa8d600000000, 0x0e3fa08a00000000, 0x6c0788a000000000, + 0xca4ff0de00000000, 0xa877d8f400000000, 0x86de002200000000, + 0xe4e6280800000000, 0x42ae507600000000, 0x2096785c00000000, + 0x5ffa900000000000, 0x3dc2b82a00000000, 0x9b8ac05400000000, + 0xf9b2e87e00000000, 0xd71b30a800000000, 0xb523188200000000, + 0x136b60fc00000000, 0x715348d600000000, 0xedb3b04500000000, + 0x8f8b986f00000000, 0x29c3e01100000000, 0x4bfbc83b00000000, + 0x655210ed00000000, 0x076a38c700000000, 0xa12240b900000000, + 0xc31a689300000000, 0xbc7680cf00000000, 0xde4ea8e500000000, + 0x7806d09b00000000, 0x1a3ef8b100000000, 0x3497206700000000, + 0x56af084d00000000, 0xf0e7703300000000, 0x92df581900000000, + 0x8920f0cf00000000, 0xeb18d8e500000000, 0x4d50a09b00000000, + 0x2f6888b100000000, 0x01c1506700000000, 0x63f9784d00000000, + 0xc5b1003300000000, 0xa789281900000000, 0xd8e5c04500000000, + 0xbadde86f00000000, 0x1c95901100000000, 0x7eadb83b00000000, + 0x500460ed00000000, 0x323c48c700000000, 0x947430b900000000, + 0xf64c189300000000, 0x6aace00000000000, 0x0894c82a00000000, + 0xaedcb05400000000, 0xcce4987e00000000, 0xe24d40a800000000, + 0x8075688200000000, 0x263d10fc00000000, 0x440538d600000000, + 0x3b69d08a00000000, 0x5951f8a000000000, 0xff1980de00000000, + 0x9d21a8f400000000, 0xb388702200000000, 0xd1b0580800000000, + 0x77f8207600000000, 0x15c0085c00000000, 0x5d7831ce00000000, + 0x3f4019e400000000, 0x9908619a00000000, 0xfb3049b000000000, + 0xd599916600000000, 0xb7a1b94c00000000, 0x11e9c13200000000, + 0x73d1e91800000000, 0x0cbd014400000000, 0x6e85296e00000000, + 0xc8cd511000000000, 0xaaf5793a00000000, 0x845ca1ec00000000, + 0xe66489c600000000, 0x402cf1b800000000, 0x2214d99200000000, + 0xbef4210100000000, 0xdccc092b00000000, 0x7a84715500000000, + 0x18bc597f00000000, 0x361581a900000000, 0x542da98300000000, + 0xf265d1fd00000000, 0x905df9d700000000, 0xef31118b00000000, + 0x8d0939a100000000, 0x2b4141df00000000, 0x497969f500000000, + 0x67d0b12300000000, 0x05e8990900000000, 0xa3a0e17700000000, + 0xc198c95d00000000, 0xda67618b00000000, 0xb85f49a100000000, + 0x1e1731df00000000, 0x7c2f19f500000000, 0x5286c12300000000, + 0x30bee90900000000, 0x96f6917700000000, 0xf4ceb95d00000000, + 0x8ba2510100000000, 0xe99a792b00000000, 0x4fd2015500000000, + 0x2dea297f00000000, 0x0343f1a900000000, 0x617bd98300000000, + 0xc733a1fd00000000, 0xa50b89d700000000, 0x39eb714400000000, + 0x5bd3596e00000000, 0xfd9b211000000000, 0x9fa3093a00000000, + 0xb10ad1ec00000000, 0xd332f9c600000000, 0x757a81b800000000, + 0x1742a99200000000, 0x682e41ce00000000, 0x0a1669e400000000, + 0xac5e119a00000000, 0xce6639b000000000, 0xe0cfe16600000000, + 0x82f7c94c00000000, 0x24bfb13200000000, 0x4687991800000000, + 0x5347914400000000, 0x317fb96e00000000, 0x9737c11000000000, + 0xf50fe93a00000000, 0xdba631ec00000000, 0xb99e19c600000000, + 0x1fd661b800000000, 0x7dee499200000000, 0x0282a1ce00000000, + 0x60ba89e400000000, 0xc6f2f19a00000000, 0xa4cad9b000000000, + 0x8a63016600000000, 0xe85b294c00000000, 0x4e13513200000000, + 0x2c2b791800000000, 0xb0cb818b00000000, 0xd2f3a9a100000000, + 0x74bbd1df00000000, 0x1683f9f500000000, 0x382a212300000000, + 0x5a12090900000000, 0xfc5a717700000000, 0x9e62595d00000000, + 0xe10eb10100000000, 0x8336992b00000000, 0x257ee15500000000, + 0x4746c97f00000000, 0x69ef11a900000000, 0x0bd7398300000000, + 0xad9f41fd00000000, 0xcfa769d700000000, 0xd458c10100000000, + 0xb660e92b00000000, 0x1028915500000000, 0x7210b97f00000000, + 0x5cb961a900000000, 0x3e81498300000000, 0x98c931fd00000000, + 0xfaf119d700000000, 0x859df18b00000000, 0xe7a5d9a100000000, + 0x41eda1df00000000, 0x23d589f500000000, 0x0d7c512300000000, + 0x6f44790900000000, 0xc90c017700000000, 0xab34295d00000000, + 0x37d4d1ce00000000, 0x55ecf9e400000000, 0xf3a4819a00000000, + 0x919ca9b000000000, 0xbf35716600000000, 0xdd0d594c00000000, + 0x7b45213200000000, 0x197d091800000000, 0x6611e14400000000, + 0x0429c96e00000000, 0xa261b11000000000, 0xc059993a00000000, + 0xeef041ec00000000, 0x8cc869c600000000, 0x2a8011b800000000, + 0x48b8399200000000}, + {0x0000000000000000, 0x4c2896a300000000, 0xd9565d9c00000000, + 0x957ecb3f00000000, 0xf3abcbe300000000, 0xbf835d4000000000, + 0x2afd967f00000000, 0x66d500dc00000000, 0xa751e61c00000000, + 0xeb7970bf00000000, 0x7e07bb8000000000, 0x322f2d2300000000, + 0x54fa2dff00000000, 0x18d2bb5c00000000, 0x8dac706300000000, + 0xc184e6c000000000, 0x4ea3cc3900000000, 0x028b5a9a00000000, + 0x97f591a500000000, 0xdbdd070600000000, 0xbd0807da00000000, + 0xf120917900000000, 0x645e5a4600000000, 0x2876cce500000000, + 0xe9f22a2500000000, 0xa5dabc8600000000, 0x30a477b900000000, + 0x7c8ce11a00000000, 0x1a59e1c600000000, 0x5671776500000000, + 0xc30fbc5a00000000, 0x8f272af900000000, 0x9c46997300000000, + 0xd06e0fd000000000, 0x4510c4ef00000000, 0x0938524c00000000, + 0x6fed529000000000, 0x23c5c43300000000, 0xb6bb0f0c00000000, + 0xfa9399af00000000, 0x3b177f6f00000000, 0x773fe9cc00000000, + 0xe24122f300000000, 0xae69b45000000000, 0xc8bcb48c00000000, + 0x8494222f00000000, 0x11eae91000000000, 0x5dc27fb300000000, + 0xd2e5554a00000000, 0x9ecdc3e900000000, 0x0bb308d600000000, + 0x479b9e7500000000, 0x214e9ea900000000, 0x6d66080a00000000, + 0xf818c33500000000, 0xb430559600000000, 0x75b4b35600000000, + 0x399c25f500000000, 0xace2eeca00000000, 0xe0ca786900000000, + 0x861f78b500000000, 0xca37ee1600000000, 0x5f49252900000000, + 0x1361b38a00000000, 0x388d32e700000000, 0x74a5a44400000000, + 0xe1db6f7b00000000, 0xadf3f9d800000000, 0xcb26f90400000000, + 0x870e6fa700000000, 0x1270a49800000000, 0x5e58323b00000000, + 0x9fdcd4fb00000000, 0xd3f4425800000000, 0x468a896700000000, + 0x0aa21fc400000000, 0x6c771f1800000000, 0x205f89bb00000000, + 0xb521428400000000, 0xf909d42700000000, 0x762efede00000000, + 0x3a06687d00000000, 0xaf78a34200000000, 0xe35035e100000000, + 0x8585353d00000000, 0xc9ada39e00000000, 0x5cd368a100000000, + 0x10fbfe0200000000, 0xd17f18c200000000, 0x9d578e6100000000, + 0x0829455e00000000, 0x4401d3fd00000000, 0x22d4d32100000000, + 0x6efc458200000000, 0xfb828ebd00000000, 0xb7aa181e00000000, + 0xa4cbab9400000000, 0xe8e33d3700000000, 0x7d9df60800000000, + 0x31b560ab00000000, 0x5760607700000000, 0x1b48f6d400000000, + 0x8e363deb00000000, 0xc21eab4800000000, 0x039a4d8800000000, + 0x4fb2db2b00000000, 0xdacc101400000000, 0x96e486b700000000, + 0xf031866b00000000, 0xbc1910c800000000, 0x2967dbf700000000, + 0x654f4d5400000000, 0xea6867ad00000000, 0xa640f10e00000000, + 0x333e3a3100000000, 0x7f16ac9200000000, 0x19c3ac4e00000000, + 0x55eb3aed00000000, 0xc095f1d200000000, 0x8cbd677100000000, + 0x4d3981b100000000, 0x0111171200000000, 0x946fdc2d00000000, + 0xd8474a8e00000000, 0xbe924a5200000000, 0xf2badcf100000000, + 0x67c417ce00000000, 0x2bec816d00000000, 0x311c141500000000, + 0x7d3482b600000000, 0xe84a498900000000, 0xa462df2a00000000, + 0xc2b7dff600000000, 0x8e9f495500000000, 0x1be1826a00000000, + 0x57c914c900000000, 0x964df20900000000, 0xda6564aa00000000, + 0x4f1baf9500000000, 0x0333393600000000, 0x65e639ea00000000, + 0x29ceaf4900000000, 0xbcb0647600000000, 0xf098f2d500000000, + 0x7fbfd82c00000000, 0x33974e8f00000000, 0xa6e985b000000000, + 0xeac1131300000000, 0x8c1413cf00000000, 0xc03c856c00000000, + 0x55424e5300000000, 0x196ad8f000000000, 0xd8ee3e3000000000, + 0x94c6a89300000000, 0x01b863ac00000000, 0x4d90f50f00000000, + 0x2b45f5d300000000, 0x676d637000000000, 0xf213a84f00000000, + 0xbe3b3eec00000000, 0xad5a8d6600000000, 0xe1721bc500000000, + 0x740cd0fa00000000, 0x3824465900000000, 0x5ef1468500000000, + 0x12d9d02600000000, 0x87a71b1900000000, 0xcb8f8dba00000000, + 0x0a0b6b7a00000000, 0x4623fdd900000000, 0xd35d36e600000000, + 0x9f75a04500000000, 0xf9a0a09900000000, 0xb588363a00000000, + 0x20f6fd0500000000, 0x6cde6ba600000000, 0xe3f9415f00000000, + 0xafd1d7fc00000000, 0x3aaf1cc300000000, 0x76878a6000000000, + 0x10528abc00000000, 0x5c7a1c1f00000000, 0xc904d72000000000, + 0x852c418300000000, 0x44a8a74300000000, 0x088031e000000000, + 0x9dfefadf00000000, 0xd1d66c7c00000000, 0xb7036ca000000000, + 0xfb2bfa0300000000, 0x6e55313c00000000, 0x227da79f00000000, + 0x099126f200000000, 0x45b9b05100000000, 0xd0c77b6e00000000, + 0x9cefedcd00000000, 0xfa3aed1100000000, 0xb6127bb200000000, + 0x236cb08d00000000, 0x6f44262e00000000, 0xaec0c0ee00000000, + 0xe2e8564d00000000, 0x77969d7200000000, 0x3bbe0bd100000000, + 0x5d6b0b0d00000000, 0x11439dae00000000, 0x843d569100000000, + 0xc815c03200000000, 0x4732eacb00000000, 0x0b1a7c6800000000, + 0x9e64b75700000000, 0xd24c21f400000000, 0xb499212800000000, + 0xf8b1b78b00000000, 0x6dcf7cb400000000, 0x21e7ea1700000000, + 0xe0630cd700000000, 0xac4b9a7400000000, 0x3935514b00000000, + 0x751dc7e800000000, 0x13c8c73400000000, 0x5fe0519700000000, + 0xca9e9aa800000000, 0x86b60c0b00000000, 0x95d7bf8100000000, + 0xd9ff292200000000, 0x4c81e21d00000000, 0x00a974be00000000, + 0x667c746200000000, 0x2a54e2c100000000, 0xbf2a29fe00000000, + 0xf302bf5d00000000, 0x3286599d00000000, 0x7eaecf3e00000000, + 0xebd0040100000000, 0xa7f892a200000000, 0xc12d927e00000000, + 0x8d0504dd00000000, 0x187bcfe200000000, 0x5453594100000000, + 0xdb7473b800000000, 0x975ce51b00000000, 0x02222e2400000000, + 0x4e0ab88700000000, 0x28dfb85b00000000, 0x64f72ef800000000, + 0xf189e5c700000000, 0xbda1736400000000, 0x7c2595a400000000, + 0x300d030700000000, 0xa573c83800000000, 0xe95b5e9b00000000, + 0x8f8e5e4700000000, 0xc3a6c8e400000000, 0x56d803db00000000, + 0x1af0957800000000}, + {0x0000000000000000, 0x939bc97f00000000, 0x263793ff00000000, + 0xb5ac5a8000000000, 0x0d68572400000000, 0x9ef39e5b00000000, + 0x2b5fc4db00000000, 0xb8c40da400000000, 0x1ad0ae4800000000, + 0x894b673700000000, 0x3ce73db700000000, 0xaf7cf4c800000000, + 0x17b8f96c00000000, 0x8423301300000000, 0x318f6a9300000000, + 0xa214a3ec00000000, 0x34a05d9100000000, 0xa73b94ee00000000, + 0x1297ce6e00000000, 0x810c071100000000, 0x39c80ab500000000, + 0xaa53c3ca00000000, 0x1fff994a00000000, 0x8c64503500000000, + 0x2e70f3d900000000, 0xbdeb3aa600000000, 0x0847602600000000, + 0x9bdca95900000000, 0x2318a4fd00000000, 0xb0836d8200000000, + 0x052f370200000000, 0x96b4fe7d00000000, 0x2946caf900000000, + 0xbadd038600000000, 0x0f71590600000000, 0x9cea907900000000, + 0x242e9ddd00000000, 0xb7b554a200000000, 0x02190e2200000000, + 0x9182c75d00000000, 0x339664b100000000, 0xa00dadce00000000, + 0x15a1f74e00000000, 0x863a3e3100000000, 0x3efe339500000000, + 0xad65faea00000000, 0x18c9a06a00000000, 0x8b52691500000000, + 0x1de6976800000000, 0x8e7d5e1700000000, 0x3bd1049700000000, + 0xa84acde800000000, 0x108ec04c00000000, 0x8315093300000000, + 0x36b953b300000000, 0xa5229acc00000000, 0x0736392000000000, + 0x94adf05f00000000, 0x2101aadf00000000, 0xb29a63a000000000, + 0x0a5e6e0400000000, 0x99c5a77b00000000, 0x2c69fdfb00000000, + 0xbff2348400000000, 0x138ae52800000000, 0x80112c5700000000, + 0x35bd76d700000000, 0xa626bfa800000000, 0x1ee2b20c00000000, + 0x8d797b7300000000, 0x38d521f300000000, 0xab4ee88c00000000, + 0x095a4b6000000000, 0x9ac1821f00000000, 0x2f6dd89f00000000, + 0xbcf611e000000000, 0x04321c4400000000, 0x97a9d53b00000000, + 0x22058fbb00000000, 0xb19e46c400000000, 0x272ab8b900000000, + 0xb4b171c600000000, 0x011d2b4600000000, 0x9286e23900000000, + 0x2a42ef9d00000000, 0xb9d926e200000000, 0x0c757c6200000000, + 0x9feeb51d00000000, 0x3dfa16f100000000, 0xae61df8e00000000, + 0x1bcd850e00000000, 0x88564c7100000000, 0x309241d500000000, + 0xa30988aa00000000, 0x16a5d22a00000000, 0x853e1b5500000000, + 0x3acc2fd100000000, 0xa957e6ae00000000, 0x1cfbbc2e00000000, + 0x8f60755100000000, 0x37a478f500000000, 0xa43fb18a00000000, + 0x1193eb0a00000000, 0x8208227500000000, 0x201c819900000000, + 0xb38748e600000000, 0x062b126600000000, 0x95b0db1900000000, + 0x2d74d6bd00000000, 0xbeef1fc200000000, 0x0b43454200000000, + 0x98d88c3d00000000, 0x0e6c724000000000, 0x9df7bb3f00000000, + 0x285be1bf00000000, 0xbbc028c000000000, 0x0304256400000000, + 0x909fec1b00000000, 0x2533b69b00000000, 0xb6a87fe400000000, + 0x14bcdc0800000000, 0x8727157700000000, 0x328b4ff700000000, + 0xa110868800000000, 0x19d48b2c00000000, 0x8a4f425300000000, + 0x3fe318d300000000, 0xac78d1ac00000000, 0x2614cb5100000000, + 0xb58f022e00000000, 0x002358ae00000000, 0x93b891d100000000, + 0x2b7c9c7500000000, 0xb8e7550a00000000, 0x0d4b0f8a00000000, + 0x9ed0c6f500000000, 0x3cc4651900000000, 0xaf5fac6600000000, + 0x1af3f6e600000000, 0x89683f9900000000, 0x31ac323d00000000, + 0xa237fb4200000000, 0x179ba1c200000000, 0x840068bd00000000, + 0x12b496c000000000, 0x812f5fbf00000000, 0x3483053f00000000, + 0xa718cc4000000000, 0x1fdcc1e400000000, 0x8c47089b00000000, + 0x39eb521b00000000, 0xaa709b6400000000, 0x0864388800000000, + 0x9bfff1f700000000, 0x2e53ab7700000000, 0xbdc8620800000000, + 0x050c6fac00000000, 0x9697a6d300000000, 0x233bfc5300000000, + 0xb0a0352c00000000, 0x0f5201a800000000, 0x9cc9c8d700000000, + 0x2965925700000000, 0xbafe5b2800000000, 0x023a568c00000000, + 0x91a19ff300000000, 0x240dc57300000000, 0xb7960c0c00000000, + 0x1582afe000000000, 0x8619669f00000000, 0x33b53c1f00000000, + 0xa02ef56000000000, 0x18eaf8c400000000, 0x8b7131bb00000000, + 0x3edd6b3b00000000, 0xad46a24400000000, 0x3bf25c3900000000, + 0xa869954600000000, 0x1dc5cfc600000000, 0x8e5e06b900000000, + 0x369a0b1d00000000, 0xa501c26200000000, 0x10ad98e200000000, + 0x8336519d00000000, 0x2122f27100000000, 0xb2b93b0e00000000, + 0x0715618e00000000, 0x948ea8f100000000, 0x2c4aa55500000000, + 0xbfd16c2a00000000, 0x0a7d36aa00000000, 0x99e6ffd500000000, + 0x359e2e7900000000, 0xa605e70600000000, 0x13a9bd8600000000, + 0x803274f900000000, 0x38f6795d00000000, 0xab6db02200000000, + 0x1ec1eaa200000000, 0x8d5a23dd00000000, 0x2f4e803100000000, + 0xbcd5494e00000000, 0x097913ce00000000, 0x9ae2dab100000000, + 0x2226d71500000000, 0xb1bd1e6a00000000, 0x041144ea00000000, + 0x978a8d9500000000, 0x013e73e800000000, 0x92a5ba9700000000, + 0x2709e01700000000, 0xb492296800000000, 0x0c5624cc00000000, + 0x9fcdedb300000000, 0x2a61b73300000000, 0xb9fa7e4c00000000, + 0x1beedda000000000, 0x887514df00000000, 0x3dd94e5f00000000, + 0xae42872000000000, 0x16868a8400000000, 0x851d43fb00000000, + 0x30b1197b00000000, 0xa32ad00400000000, 0x1cd8e48000000000, + 0x8f432dff00000000, 0x3aef777f00000000, 0xa974be0000000000, + 0x11b0b3a400000000, 0x822b7adb00000000, 0x3787205b00000000, + 0xa41ce92400000000, 0x06084ac800000000, 0x959383b700000000, + 0x203fd93700000000, 0xb3a4104800000000, 0x0b601dec00000000, + 0x98fbd49300000000, 0x2d578e1300000000, 0xbecc476c00000000, + 0x2878b91100000000, 0xbbe3706e00000000, 0x0e4f2aee00000000, + 0x9dd4e39100000000, 0x2510ee3500000000, 0xb68b274a00000000, + 0x03277dca00000000, 0x90bcb4b500000000, 0x32a8175900000000, + 0xa133de2600000000, 0x149f84a600000000, 0x87044dd900000000, + 0x3fc0407d00000000, 0xac5b890200000000, 0x19f7d38200000000, + 0x8a6c1afd00000000}, + {0x0000000000000000, 0x650b796900000000, 0xca16f2d200000000, + 0xaf1d8bbb00000000, 0xd52b957e00000000, 0xb020ec1700000000, + 0x1f3d67ac00000000, 0x7a361ec500000000, 0xaa572afd00000000, + 0xcf5c539400000000, 0x6041d82f00000000, 0x054aa14600000000, + 0x7f7cbf8300000000, 0x1a77c6ea00000000, 0xb56a4d5100000000, + 0xd061343800000000, 0x15a9252100000000, 0x70a25c4800000000, + 0xdfbfd7f300000000, 0xbab4ae9a00000000, 0xc082b05f00000000, + 0xa589c93600000000, 0x0a94428d00000000, 0x6f9f3be400000000, + 0xbffe0fdc00000000, 0xdaf576b500000000, 0x75e8fd0e00000000, + 0x10e3846700000000, 0x6ad59aa200000000, 0x0fdee3cb00000000, + 0xa0c3687000000000, 0xc5c8111900000000, 0x2a524b4200000000, + 0x4f59322b00000000, 0xe044b99000000000, 0x854fc0f900000000, + 0xff79de3c00000000, 0x9a72a75500000000, 0x356f2cee00000000, + 0x5064558700000000, 0x800561bf00000000, 0xe50e18d600000000, + 0x4a13936d00000000, 0x2f18ea0400000000, 0x552ef4c100000000, + 0x30258da800000000, 0x9f38061300000000, 0xfa337f7a00000000, + 0x3ffb6e6300000000, 0x5af0170a00000000, 0xf5ed9cb100000000, + 0x90e6e5d800000000, 0xead0fb1d00000000, 0x8fdb827400000000, + 0x20c609cf00000000, 0x45cd70a600000000, 0x95ac449e00000000, + 0xf0a73df700000000, 0x5fbab64c00000000, 0x3ab1cf2500000000, + 0x4087d1e000000000, 0x258ca88900000000, 0x8a91233200000000, + 0xef9a5a5b00000000, 0x54a4968400000000, 0x31afefed00000000, + 0x9eb2645600000000, 0xfbb91d3f00000000, 0x818f03fa00000000, + 0xe4847a9300000000, 0x4b99f12800000000, 0x2e92884100000000, + 0xfef3bc7900000000, 0x9bf8c51000000000, 0x34e54eab00000000, + 0x51ee37c200000000, 0x2bd8290700000000, 0x4ed3506e00000000, + 0xe1cedbd500000000, 0x84c5a2bc00000000, 0x410db3a500000000, + 0x2406cacc00000000, 0x8b1b417700000000, 0xee10381e00000000, + 0x942626db00000000, 0xf12d5fb200000000, 0x5e30d40900000000, + 0x3b3bad6000000000, 0xeb5a995800000000, 0x8e51e03100000000, + 0x214c6b8a00000000, 0x444712e300000000, 0x3e710c2600000000, + 0x5b7a754f00000000, 0xf467fef400000000, 0x916c879d00000000, + 0x7ef6ddc600000000, 0x1bfda4af00000000, 0xb4e02f1400000000, + 0xd1eb567d00000000, 0xabdd48b800000000, 0xced631d100000000, + 0x61cbba6a00000000, 0x04c0c30300000000, 0xd4a1f73b00000000, + 0xb1aa8e5200000000, 0x1eb705e900000000, 0x7bbc7c8000000000, + 0x018a624500000000, 0x64811b2c00000000, 0xcb9c909700000000, + 0xae97e9fe00000000, 0x6b5ff8e700000000, 0x0e54818e00000000, + 0xa1490a3500000000, 0xc442735c00000000, 0xbe746d9900000000, + 0xdb7f14f000000000, 0x74629f4b00000000, 0x1169e62200000000, + 0xc108d21a00000000, 0xa403ab7300000000, 0x0b1e20c800000000, + 0x6e1559a100000000, 0x1423476400000000, 0x71283e0d00000000, + 0xde35b5b600000000, 0xbb3eccdf00000000, 0xe94e5cd200000000, + 0x8c4525bb00000000, 0x2358ae0000000000, 0x4653d76900000000, + 0x3c65c9ac00000000, 0x596eb0c500000000, 0xf6733b7e00000000, + 0x9378421700000000, 0x4319762f00000000, 0x26120f4600000000, + 0x890f84fd00000000, 0xec04fd9400000000, 0x9632e35100000000, + 0xf3399a3800000000, 0x5c24118300000000, 0x392f68ea00000000, + 0xfce779f300000000, 0x99ec009a00000000, 0x36f18b2100000000, + 0x53faf24800000000, 0x29ccec8d00000000, 0x4cc795e400000000, + 0xe3da1e5f00000000, 0x86d1673600000000, 0x56b0530e00000000, + 0x33bb2a6700000000, 0x9ca6a1dc00000000, 0xf9add8b500000000, + 0x839bc67000000000, 0xe690bf1900000000, 0x498d34a200000000, + 0x2c864dcb00000000, 0xc31c179000000000, 0xa6176ef900000000, + 0x090ae54200000000, 0x6c019c2b00000000, 0x163782ee00000000, + 0x733cfb8700000000, 0xdc21703c00000000, 0xb92a095500000000, + 0x694b3d6d00000000, 0x0c40440400000000, 0xa35dcfbf00000000, + 0xc656b6d600000000, 0xbc60a81300000000, 0xd96bd17a00000000, + 0x76765ac100000000, 0x137d23a800000000, 0xd6b532b100000000, + 0xb3be4bd800000000, 0x1ca3c06300000000, 0x79a8b90a00000000, + 0x039ea7cf00000000, 0x6695dea600000000, 0xc988551d00000000, + 0xac832c7400000000, 0x7ce2184c00000000, 0x19e9612500000000, + 0xb6f4ea9e00000000, 0xd3ff93f700000000, 0xa9c98d3200000000, + 0xccc2f45b00000000, 0x63df7fe000000000, 0x06d4068900000000, + 0xbdeaca5600000000, 0xd8e1b33f00000000, 0x77fc388400000000, + 0x12f741ed00000000, 0x68c15f2800000000, 0x0dca264100000000, + 0xa2d7adfa00000000, 0xc7dcd49300000000, 0x17bde0ab00000000, + 0x72b699c200000000, 0xddab127900000000, 0xb8a06b1000000000, + 0xc29675d500000000, 0xa79d0cbc00000000, 0x0880870700000000, + 0x6d8bfe6e00000000, 0xa843ef7700000000, 0xcd48961e00000000, + 0x62551da500000000, 0x075e64cc00000000, 0x7d687a0900000000, + 0x1863036000000000, 0xb77e88db00000000, 0xd275f1b200000000, + 0x0214c58a00000000, 0x671fbce300000000, 0xc802375800000000, + 0xad094e3100000000, 0xd73f50f400000000, 0xb234299d00000000, + 0x1d29a22600000000, 0x7822db4f00000000, 0x97b8811400000000, + 0xf2b3f87d00000000, 0x5dae73c600000000, 0x38a50aaf00000000, + 0x4293146a00000000, 0x27986d0300000000, 0x8885e6b800000000, + 0xed8e9fd100000000, 0x3defabe900000000, 0x58e4d28000000000, + 0xf7f9593b00000000, 0x92f2205200000000, 0xe8c43e9700000000, + 0x8dcf47fe00000000, 0x22d2cc4500000000, 0x47d9b52c00000000, + 0x8211a43500000000, 0xe71add5c00000000, 0x480756e700000000, + 0x2d0c2f8e00000000, 0x573a314b00000000, 0x3231482200000000, + 0x9d2cc39900000000, 0xf827baf000000000, 0x28468ec800000000, + 0x4d4df7a100000000, 0xe2507c1a00000000, 0x875b057300000000, + 0xfd6d1bb600000000, 0x986662df00000000, 0x377be96400000000, + 0x5270900d00000000}, + {0x0000000000000000, 0xdcecb13d00000000, 0xb8d9637b00000000, + 0x6435d24600000000, 0x70b3c7f600000000, 0xac5f76cb00000000, + 0xc86aa48d00000000, 0x148615b000000000, 0xa160fe3600000000, + 0x7d8c4f0b00000000, 0x19b99d4d00000000, 0xc5552c7000000000, + 0xd1d339c000000000, 0x0d3f88fd00000000, 0x690a5abb00000000, + 0xb5e6eb8600000000, 0x42c1fc6d00000000, 0x9e2d4d5000000000, + 0xfa189f1600000000, 0x26f42e2b00000000, 0x32723b9b00000000, + 0xee9e8aa600000000, 0x8aab58e000000000, 0x5647e9dd00000000, + 0xe3a1025b00000000, 0x3f4db36600000000, 0x5b78612000000000, + 0x8794d01d00000000, 0x9312c5ad00000000, 0x4ffe749000000000, + 0x2bcba6d600000000, 0xf72717eb00000000, 0x8482f9db00000000, + 0x586e48e600000000, 0x3c5b9aa000000000, 0xe0b72b9d00000000, + 0xf4313e2d00000000, 0x28dd8f1000000000, 0x4ce85d5600000000, + 0x9004ec6b00000000, 0x25e207ed00000000, 0xf90eb6d000000000, + 0x9d3b649600000000, 0x41d7d5ab00000000, 0x5551c01b00000000, + 0x89bd712600000000, 0xed88a36000000000, 0x3164125d00000000, + 0xc64305b600000000, 0x1aafb48b00000000, 0x7e9a66cd00000000, + 0xa276d7f000000000, 0xb6f0c24000000000, 0x6a1c737d00000000, + 0x0e29a13b00000000, 0xd2c5100600000000, 0x6723fb8000000000, + 0xbbcf4abd00000000, 0xdffa98fb00000000, 0x031629c600000000, + 0x17903c7600000000, 0xcb7c8d4b00000000, 0xaf495f0d00000000, + 0x73a5ee3000000000, 0x4903826c00000000, 0x95ef335100000000, + 0xf1dae11700000000, 0x2d36502a00000000, 0x39b0459a00000000, + 0xe55cf4a700000000, 0x816926e100000000, 0x5d8597dc00000000, + 0xe8637c5a00000000, 0x348fcd6700000000, 0x50ba1f2100000000, + 0x8c56ae1c00000000, 0x98d0bbac00000000, 0x443c0a9100000000, + 0x2009d8d700000000, 0xfce569ea00000000, 0x0bc27e0100000000, + 0xd72ecf3c00000000, 0xb31b1d7a00000000, 0x6ff7ac4700000000, + 0x7b71b9f700000000, 0xa79d08ca00000000, 0xc3a8da8c00000000, + 0x1f446bb100000000, 0xaaa2803700000000, 0x764e310a00000000, + 0x127be34c00000000, 0xce97527100000000, 0xda1147c100000000, + 0x06fdf6fc00000000, 0x62c824ba00000000, 0xbe24958700000000, + 0xcd817bb700000000, 0x116dca8a00000000, 0x755818cc00000000, + 0xa9b4a9f100000000, 0xbd32bc4100000000, 0x61de0d7c00000000, + 0x05ebdf3a00000000, 0xd9076e0700000000, 0x6ce1858100000000, + 0xb00d34bc00000000, 0xd438e6fa00000000, 0x08d457c700000000, + 0x1c52427700000000, 0xc0bef34a00000000, 0xa48b210c00000000, + 0x7867903100000000, 0x8f4087da00000000, 0x53ac36e700000000, + 0x3799e4a100000000, 0xeb75559c00000000, 0xfff3402c00000000, + 0x231ff11100000000, 0x472a235700000000, 0x9bc6926a00000000, + 0x2e2079ec00000000, 0xf2ccc8d100000000, 0x96f91a9700000000, + 0x4a15abaa00000000, 0x5e93be1a00000000, 0x827f0f2700000000, + 0xe64add6100000000, 0x3aa66c5c00000000, 0x920604d900000000, + 0x4eeab5e400000000, 0x2adf67a200000000, 0xf633d69f00000000, + 0xe2b5c32f00000000, 0x3e59721200000000, 0x5a6ca05400000000, + 0x8680116900000000, 0x3366faef00000000, 0xef8a4bd200000000, + 0x8bbf999400000000, 0x575328a900000000, 0x43d53d1900000000, + 0x9f398c2400000000, 0xfb0c5e6200000000, 0x27e0ef5f00000000, + 0xd0c7f8b400000000, 0x0c2b498900000000, 0x681e9bcf00000000, + 0xb4f22af200000000, 0xa0743f4200000000, 0x7c988e7f00000000, + 0x18ad5c3900000000, 0xc441ed0400000000, 0x71a7068200000000, + 0xad4bb7bf00000000, 0xc97e65f900000000, 0x1592d4c400000000, + 0x0114c17400000000, 0xddf8704900000000, 0xb9cda20f00000000, + 0x6521133200000000, 0x1684fd0200000000, 0xca684c3f00000000, + 0xae5d9e7900000000, 0x72b12f4400000000, 0x66373af400000000, + 0xbadb8bc900000000, 0xdeee598f00000000, 0x0202e8b200000000, + 0xb7e4033400000000, 0x6b08b20900000000, 0x0f3d604f00000000, + 0xd3d1d17200000000, 0xc757c4c200000000, 0x1bbb75ff00000000, + 0x7f8ea7b900000000, 0xa362168400000000, 0x5445016f00000000, + 0x88a9b05200000000, 0xec9c621400000000, 0x3070d32900000000, + 0x24f6c69900000000, 0xf81a77a400000000, 0x9c2fa5e200000000, + 0x40c314df00000000, 0xf525ff5900000000, 0x29c94e6400000000, + 0x4dfc9c2200000000, 0x91102d1f00000000, 0x859638af00000000, + 0x597a899200000000, 0x3d4f5bd400000000, 0xe1a3eae900000000, + 0xdb0586b500000000, 0x07e9378800000000, 0x63dce5ce00000000, + 0xbf3054f300000000, 0xabb6414300000000, 0x775af07e00000000, + 0x136f223800000000, 0xcf83930500000000, 0x7a65788300000000, + 0xa689c9be00000000, 0xc2bc1bf800000000, 0x1e50aac500000000, + 0x0ad6bf7500000000, 0xd63a0e4800000000, 0xb20fdc0e00000000, + 0x6ee36d3300000000, 0x99c47ad800000000, 0x4528cbe500000000, + 0x211d19a300000000, 0xfdf1a89e00000000, 0xe977bd2e00000000, + 0x359b0c1300000000, 0x51aede5500000000, 0x8d426f6800000000, + 0x38a484ee00000000, 0xe44835d300000000, 0x807de79500000000, + 0x5c9156a800000000, 0x4817431800000000, 0x94fbf22500000000, + 0xf0ce206300000000, 0x2c22915e00000000, 0x5f877f6e00000000, + 0x836bce5300000000, 0xe75e1c1500000000, 0x3bb2ad2800000000, + 0x2f34b89800000000, 0xf3d809a500000000, 0x97eddbe300000000, + 0x4b016ade00000000, 0xfee7815800000000, 0x220b306500000000, + 0x463ee22300000000, 0x9ad2531e00000000, 0x8e5446ae00000000, + 0x52b8f79300000000, 0x368d25d500000000, 0xea6194e800000000, + 0x1d46830300000000, 0xc1aa323e00000000, 0xa59fe07800000000, + 0x7973514500000000, 0x6df544f500000000, 0xb119f5c800000000, + 0xd52c278e00000000, 0x09c096b300000000, 0xbc267d3500000000, + 0x60cacc0800000000, 0x04ff1e4e00000000, 0xd813af7300000000, + 0xcc95bac300000000, 0x10790bfe00000000, 0x744cd9b800000000, + 0xa8a0688500000000}}; + +#else /* W == 4 */ + +local const z_crc_t FAR crc_braid_table[][256] = { + {0x00000000, 0x81256527, 0xd93bcc0f, 0x581ea928, 0x69069e5f, + 0xe823fb78, 0xb03d5250, 0x31183777, 0xd20d3cbe, 0x53285999, + 0x0b36f0b1, 0x8a139596, 0xbb0ba2e1, 0x3a2ec7c6, 0x62306eee, + 0xe3150bc9, 0x7f6b7f3d, 0xfe4e1a1a, 0xa650b332, 0x2775d615, + 0x166de162, 0x97488445, 0xcf562d6d, 0x4e73484a, 0xad664383, + 0x2c4326a4, 0x745d8f8c, 0xf578eaab, 0xc460dddc, 0x4545b8fb, + 0x1d5b11d3, 0x9c7e74f4, 0xfed6fe7a, 0x7ff39b5d, 0x27ed3275, + 0xa6c85752, 0x97d06025, 0x16f50502, 0x4eebac2a, 0xcfcec90d, + 0x2cdbc2c4, 0xadfea7e3, 0xf5e00ecb, 0x74c56bec, 0x45dd5c9b, + 0xc4f839bc, 0x9ce69094, 0x1dc3f5b3, 0x81bd8147, 0x0098e460, + 0x58864d48, 0xd9a3286f, 0xe8bb1f18, 0x699e7a3f, 0x3180d317, + 0xb0a5b630, 0x53b0bdf9, 0xd295d8de, 0x8a8b71f6, 0x0bae14d1, + 0x3ab623a6, 0xbb934681, 0xe38defa9, 0x62a88a8e, 0x26dcfab5, + 0xa7f99f92, 0xffe736ba, 0x7ec2539d, 0x4fda64ea, 0xceff01cd, + 0x96e1a8e5, 0x17c4cdc2, 0xf4d1c60b, 0x75f4a32c, 0x2dea0a04, + 0xaccf6f23, 0x9dd75854, 0x1cf23d73, 0x44ec945b, 0xc5c9f17c, + 0x59b78588, 0xd892e0af, 0x808c4987, 0x01a92ca0, 0x30b11bd7, + 0xb1947ef0, 0xe98ad7d8, 0x68afb2ff, 0x8bbab936, 0x0a9fdc11, + 0x52817539, 0xd3a4101e, 0xe2bc2769, 0x6399424e, 0x3b87eb66, + 0xbaa28e41, 0xd80a04cf, 0x592f61e8, 0x0131c8c0, 0x8014ade7, + 0xb10c9a90, 0x3029ffb7, 0x6837569f, 0xe91233b8, 0x0a073871, + 0x8b225d56, 0xd33cf47e, 0x52199159, 0x6301a62e, 0xe224c309, + 0xba3a6a21, 0x3b1f0f06, 0xa7617bf2, 0x26441ed5, 0x7e5ab7fd, + 0xff7fd2da, 0xce67e5ad, 0x4f42808a, 0x175c29a2, 0x96794c85, + 0x756c474c, 0xf449226b, 0xac578b43, 0x2d72ee64, 0x1c6ad913, + 0x9d4fbc34, 0xc551151c, 0x4474703b, 0x4db9f56a, 0xcc9c904d, + 0x94823965, 0x15a75c42, 0x24bf6b35, 0xa59a0e12, 0xfd84a73a, + 0x7ca1c21d, 0x9fb4c9d4, 0x1e91acf3, 0x468f05db, 0xc7aa60fc, + 0xf6b2578b, 0x779732ac, 0x2f899b84, 0xaeacfea3, 0x32d28a57, + 0xb3f7ef70, 0xebe94658, 0x6acc237f, 0x5bd41408, 0xdaf1712f, + 0x82efd807, 0x03cabd20, 0xe0dfb6e9, 0x61fad3ce, 0x39e47ae6, + 0xb8c11fc1, 0x89d928b6, 0x08fc4d91, 0x50e2e4b9, 0xd1c7819e, + 0xb36f0b10, 0x324a6e37, 0x6a54c71f, 0xeb71a238, 0xda69954f, + 0x5b4cf068, 0x03525940, 0x82773c67, 0x616237ae, 0xe0475289, + 0xb859fba1, 0x397c9e86, 0x0864a9f1, 0x8941ccd6, 0xd15f65fe, + 0x507a00d9, 0xcc04742d, 0x4d21110a, 0x153fb822, 0x941add05, + 0xa502ea72, 0x24278f55, 0x7c39267d, 0xfd1c435a, 0x1e094893, + 0x9f2c2db4, 0xc732849c, 0x4617e1bb, 0x770fd6cc, 0xf62ab3eb, + 0xae341ac3, 0x2f117fe4, 0x6b650fdf, 0xea406af8, 0xb25ec3d0, + 0x337ba6f7, 0x02639180, 0x8346f4a7, 0xdb585d8f, 0x5a7d38a8, + 0xb9683361, 0x384d5646, 0x6053ff6e, 0xe1769a49, 0xd06ead3e, + 0x514bc819, 0x09556131, 0x88700416, 0x140e70e2, 0x952b15c5, + 0xcd35bced, 0x4c10d9ca, 0x7d08eebd, 0xfc2d8b9a, 0xa43322b2, + 0x25164795, 0xc6034c5c, 0x4726297b, 0x1f388053, 0x9e1de574, + 0xaf05d203, 0x2e20b724, 0x763e1e0c, 0xf71b7b2b, 0x95b3f1a5, + 0x14969482, 0x4c883daa, 0xcdad588d, 0xfcb56ffa, 0x7d900add, + 0x258ea3f5, 0xa4abc6d2, 0x47becd1b, 0xc69ba83c, 0x9e850114, + 0x1fa06433, 0x2eb85344, 0xaf9d3663, 0xf7839f4b, 0x76a6fa6c, + 0xead88e98, 0x6bfdebbf, 0x33e34297, 0xb2c627b0, 0x83de10c7, + 0x02fb75e0, 0x5ae5dcc8, 0xdbc0b9ef, 0x38d5b226, 0xb9f0d701, + 0xe1ee7e29, 0x60cb1b0e, 0x51d32c79, 0xd0f6495e, 0x88e8e076, + 0x09cd8551}, + {0x00000000, 0x9b73ead4, 0xed96d3e9, 0x76e5393d, 0x005ca193, + 0x9b2f4b47, 0xedca727a, 0x76b998ae, 0x00b94326, 0x9bcaa9f2, + 0xed2f90cf, 0x765c7a1b, 0x00e5e2b5, 0x9b960861, 0xed73315c, + 0x7600db88, 0x0172864c, 0x9a016c98, 0xece455a5, 0x7797bf71, + 0x012e27df, 0x9a5dcd0b, 0xecb8f436, 0x77cb1ee2, 0x01cbc56a, + 0x9ab82fbe, 0xec5d1683, 0x772efc57, 0x019764f9, 0x9ae48e2d, + 0xec01b710, 0x77725dc4, 0x02e50c98, 0x9996e64c, 0xef73df71, + 0x740035a5, 0x02b9ad0b, 0x99ca47df, 0xef2f7ee2, 0x745c9436, + 0x025c4fbe, 0x992fa56a, 0xefca9c57, 0x74b97683, 0x0200ee2d, + 0x997304f9, 0xef963dc4, 0x74e5d710, 0x03978ad4, 0x98e46000, + 0xee01593d, 0x7572b3e9, 0x03cb2b47, 0x98b8c193, 0xee5df8ae, + 0x752e127a, 0x032ec9f2, 0x985d2326, 0xeeb81a1b, 0x75cbf0cf, + 0x03726861, 0x980182b5, 0xeee4bb88, 0x7597515c, 0x05ca1930, + 0x9eb9f3e4, 0xe85ccad9, 0x732f200d, 0x0596b8a3, 0x9ee55277, + 0xe8006b4a, 0x7373819e, 0x05735a16, 0x9e00b0c2, 0xe8e589ff, + 0x7396632b, 0x052ffb85, 0x9e5c1151, 0xe8b9286c, 0x73cac2b8, + 0x04b89f7c, 0x9fcb75a8, 0xe92e4c95, 0x725da641, 0x04e43eef, + 0x9f97d43b, 0xe972ed06, 0x720107d2, 0x0401dc5a, 0x9f72368e, + 0xe9970fb3, 0x72e4e567, 0x045d7dc9, 0x9f2e971d, 0xe9cbae20, + 0x72b844f4, 0x072f15a8, 0x9c5cff7c, 0xeab9c641, 0x71ca2c95, + 0x0773b43b, 0x9c005eef, 0xeae567d2, 0x71968d06, 0x0796568e, + 0x9ce5bc5a, 0xea008567, 0x71736fb3, 0x07caf71d, 0x9cb91dc9, + 0xea5c24f4, 0x712fce20, 0x065d93e4, 0x9d2e7930, 0xebcb400d, + 0x70b8aad9, 0x06013277, 0x9d72d8a3, 0xeb97e19e, 0x70e40b4a, + 0x06e4d0c2, 0x9d973a16, 0xeb72032b, 0x7001e9ff, 0x06b87151, + 0x9dcb9b85, 0xeb2ea2b8, 0x705d486c, 0x0b943260, 0x90e7d8b4, + 0xe602e189, 0x7d710b5d, 0x0bc893f3, 0x90bb7927, 0xe65e401a, + 0x7d2daace, 0x0b2d7146, 0x905e9b92, 0xe6bba2af, 0x7dc8487b, + 0x0b71d0d5, 0x90023a01, 0xe6e7033c, 0x7d94e9e8, 0x0ae6b42c, + 0x91955ef8, 0xe77067c5, 0x7c038d11, 0x0aba15bf, 0x91c9ff6b, + 0xe72cc656, 0x7c5f2c82, 0x0a5ff70a, 0x912c1dde, 0xe7c924e3, + 0x7cbace37, 0x0a035699, 0x9170bc4d, 0xe7958570, 0x7ce66fa4, + 0x09713ef8, 0x9202d42c, 0xe4e7ed11, 0x7f9407c5, 0x092d9f6b, + 0x925e75bf, 0xe4bb4c82, 0x7fc8a656, 0x09c87dde, 0x92bb970a, + 0xe45eae37, 0x7f2d44e3, 0x0994dc4d, 0x92e73699, 0xe4020fa4, + 0x7f71e570, 0x0803b8b4, 0x93705260, 0xe5956b5d, 0x7ee68189, + 0x085f1927, 0x932cf3f3, 0xe5c9cace, 0x7eba201a, 0x08bafb92, + 0x93c91146, 0xe52c287b, 0x7e5fc2af, 0x08e65a01, 0x9395b0d5, + 0xe57089e8, 0x7e03633c, 0x0e5e2b50, 0x952dc184, 0xe3c8f8b9, + 0x78bb126d, 0x0e028ac3, 0x95716017, 0xe394592a, 0x78e7b3fe, + 0x0ee76876, 0x959482a2, 0xe371bb9f, 0x7802514b, 0x0ebbc9e5, + 0x95c82331, 0xe32d1a0c, 0x785ef0d8, 0x0f2cad1c, 0x945f47c8, + 0xe2ba7ef5, 0x79c99421, 0x0f700c8f, 0x9403e65b, 0xe2e6df66, + 0x799535b2, 0x0f95ee3a, 0x94e604ee, 0xe2033dd3, 0x7970d707, + 0x0fc94fa9, 0x94baa57d, 0xe25f9c40, 0x792c7694, 0x0cbb27c8, + 0x97c8cd1c, 0xe12df421, 0x7a5e1ef5, 0x0ce7865b, 0x97946c8f, + 0xe17155b2, 0x7a02bf66, 0x0c0264ee, 0x97718e3a, 0xe194b707, + 0x7ae75dd3, 0x0c5ec57d, 0x972d2fa9, 0xe1c81694, 0x7abbfc40, + 0x0dc9a184, 0x96ba4b50, 0xe05f726d, 0x7b2c98b9, 0x0d950017, + 0x96e6eac3, 0xe003d3fe, 0x7b70392a, 0x0d70e2a2, 0x96030876, + 0xe0e6314b, 0x7b95db9f, 0x0d2c4331, 0x965fa9e5, 0xe0ba90d8, + 0x7bc97a0c}, + {0x00000000, 0x172864c0, 0x2e50c980, 0x3978ad40, 0x5ca19300, + 0x4b89f7c0, 0x72f15a80, 0x65d93e40, 0xb9432600, 0xae6b42c0, + 0x9713ef80, 0x803b8b40, 0xe5e2b500, 0xf2cad1c0, 0xcbb27c80, + 0xdc9a1840, 0xa9f74a41, 0xbedf2e81, 0x87a783c1, 0x908fe701, + 0xf556d941, 0xe27ebd81, 0xdb0610c1, 0xcc2e7401, 0x10b46c41, + 0x079c0881, 0x3ee4a5c1, 0x29ccc101, 0x4c15ff41, 0x5b3d9b81, + 0x624536c1, 0x756d5201, 0x889f92c3, 0x9fb7f603, 0xa6cf5b43, + 0xb1e73f83, 0xd43e01c3, 0xc3166503, 0xfa6ec843, 0xed46ac83, + 0x31dcb4c3, 0x26f4d003, 0x1f8c7d43, 0x08a41983, 0x6d7d27c3, + 0x7a554303, 0x432dee43, 0x54058a83, 0x2168d882, 0x3640bc42, + 0x0f381102, 0x181075c2, 0x7dc94b82, 0x6ae12f42, 0x53998202, + 0x44b1e6c2, 0x982bfe82, 0x8f039a42, 0xb67b3702, 0xa15353c2, + 0xc48a6d82, 0xd3a20942, 0xeadaa402, 0xfdf2c0c2, 0xca4e23c7, + 0xdd664707, 0xe41eea47, 0xf3368e87, 0x96efb0c7, 0x81c7d407, + 0xb8bf7947, 0xaf971d87, 0x730d05c7, 0x64256107, 0x5d5dcc47, + 0x4a75a887, 0x2fac96c7, 0x3884f207, 0x01fc5f47, 0x16d43b87, + 0x63b96986, 0x74910d46, 0x4de9a006, 0x5ac1c4c6, 0x3f18fa86, + 0x28309e46, 0x11483306, 0x066057c6, 0xdafa4f86, 0xcdd22b46, + 0xf4aa8606, 0xe382e2c6, 0x865bdc86, 0x9173b846, 0xa80b1506, + 0xbf2371c6, 0x42d1b104, 0x55f9d5c4, 0x6c817884, 0x7ba91c44, + 0x1e702204, 0x095846c4, 0x3020eb84, 0x27088f44, 0xfb929704, + 0xecbaf3c4, 0xd5c25e84, 0xc2ea3a44, 0xa7330404, 0xb01b60c4, + 0x8963cd84, 0x9e4ba944, 0xeb26fb45, 0xfc0e9f85, 0xc57632c5, + 0xd25e5605, 0xb7876845, 0xa0af0c85, 0x99d7a1c5, 0x8effc505, + 0x5265dd45, 0x454db985, 0x7c3514c5, 0x6b1d7005, 0x0ec44e45, + 0x19ec2a85, 0x209487c5, 0x37bce305, 0x4fed41cf, 0x58c5250f, + 0x61bd884f, 0x7695ec8f, 0x134cd2cf, 0x0464b60f, 0x3d1c1b4f, + 0x2a347f8f, 0xf6ae67cf, 0xe186030f, 0xd8feae4f, 0xcfd6ca8f, + 0xaa0ff4cf, 0xbd27900f, 0x845f3d4f, 0x9377598f, 0xe61a0b8e, + 0xf1326f4e, 0xc84ac20e, 0xdf62a6ce, 0xbabb988e, 0xad93fc4e, + 0x94eb510e, 0x83c335ce, 0x5f592d8e, 0x4871494e, 0x7109e40e, + 0x662180ce, 0x03f8be8e, 0x14d0da4e, 0x2da8770e, 0x3a8013ce, + 0xc772d30c, 0xd05ab7cc, 0xe9221a8c, 0xfe0a7e4c, 0x9bd3400c, + 0x8cfb24cc, 0xb583898c, 0xa2abed4c, 0x7e31f50c, 0x691991cc, + 0x50613c8c, 0x4749584c, 0x2290660c, 0x35b802cc, 0x0cc0af8c, + 0x1be8cb4c, 0x6e85994d, 0x79adfd8d, 0x40d550cd, 0x57fd340d, + 0x32240a4d, 0x250c6e8d, 0x1c74c3cd, 0x0b5ca70d, 0xd7c6bf4d, + 0xc0eedb8d, 0xf99676cd, 0xeebe120d, 0x8b672c4d, 0x9c4f488d, + 0xa537e5cd, 0xb21f810d, 0x85a36208, 0x928b06c8, 0xabf3ab88, + 0xbcdbcf48, 0xd902f108, 0xce2a95c8, 0xf7523888, 0xe07a5c48, + 0x3ce04408, 0x2bc820c8, 0x12b08d88, 0x0598e948, 0x6041d708, + 0x7769b3c8, 0x4e111e88, 0x59397a48, 0x2c542849, 0x3b7c4c89, + 0x0204e1c9, 0x152c8509, 0x70f5bb49, 0x67dddf89, 0x5ea572c9, + 0x498d1609, 0x95170e49, 0x823f6a89, 0xbb47c7c9, 0xac6fa309, + 0xc9b69d49, 0xde9ef989, 0xe7e654c9, 0xf0ce3009, 0x0d3cf0cb, + 0x1a14940b, 0x236c394b, 0x34445d8b, 0x519d63cb, 0x46b5070b, + 0x7fcdaa4b, 0x68e5ce8b, 0xb47fd6cb, 0xa357b20b, 0x9a2f1f4b, + 0x8d077b8b, 0xe8de45cb, 0xfff6210b, 0xc68e8c4b, 0xd1a6e88b, + 0xa4cbba8a, 0xb3e3de4a, 0x8a9b730a, 0x9db317ca, 0xf86a298a, + 0xef424d4a, 0xd63ae00a, 0xc11284ca, 0x1d889c8a, 0x0aa0f84a, + 0x33d8550a, 0x24f031ca, 0x41290f8a, 0x56016b4a, 0x6f79c60a, + 0x7851a2ca}, + {0x00000000, 0x9fda839e, 0xe4c4017d, 0x7b1e82e3, 0x12f904bb, + 0x8d238725, 0xf63d05c6, 0x69e78658, 0x25f20976, 0xba288ae8, + 0xc136080b, 0x5eec8b95, 0x370b0dcd, 0xa8d18e53, 0xd3cf0cb0, + 0x4c158f2e, 0x4be412ec, 0xd43e9172, 0xaf201391, 0x30fa900f, + 0x591d1657, 0xc6c795c9, 0xbdd9172a, 0x220394b4, 0x6e161b9a, + 0xf1cc9804, 0x8ad21ae7, 0x15089979, 0x7cef1f21, 0xe3359cbf, + 0x982b1e5c, 0x07f19dc2, 0x97c825d8, 0x0812a646, 0x730c24a5, + 0xecd6a73b, 0x85312163, 0x1aeba2fd, 0x61f5201e, 0xfe2fa380, + 0xb23a2cae, 0x2de0af30, 0x56fe2dd3, 0xc924ae4d, 0xa0c32815, + 0x3f19ab8b, 0x44072968, 0xdbddaaf6, 0xdc2c3734, 0x43f6b4aa, + 0x38e83649, 0xa732b5d7, 0xced5338f, 0x510fb011, 0x2a1132f2, + 0xb5cbb16c, 0xf9de3e42, 0x6604bddc, 0x1d1a3f3f, 0x82c0bca1, + 0xeb273af9, 0x74fdb967, 0x0fe33b84, 0x9039b81a, 0xf4e14df1, + 0x6b3bce6f, 0x10254c8c, 0x8fffcf12, 0xe618494a, 0x79c2cad4, + 0x02dc4837, 0x9d06cba9, 0xd1134487, 0x4ec9c719, 0x35d745fa, + 0xaa0dc664, 0xc3ea403c, 0x5c30c3a2, 0x272e4141, 0xb8f4c2df, + 0xbf055f1d, 0x20dfdc83, 0x5bc15e60, 0xc41bddfe, 0xadfc5ba6, + 0x3226d838, 0x49385adb, 0xd6e2d945, 0x9af7566b, 0x052dd5f5, + 0x7e335716, 0xe1e9d488, 0x880e52d0, 0x17d4d14e, 0x6cca53ad, + 0xf310d033, 0x63296829, 0xfcf3ebb7, 0x87ed6954, 0x1837eaca, + 0x71d06c92, 0xee0aef0c, 0x95146def, 0x0aceee71, 0x46db615f, + 0xd901e2c1, 0xa21f6022, 0x3dc5e3bc, 0x542265e4, 0xcbf8e67a, + 0xb0e66499, 0x2f3ce707, 0x28cd7ac5, 0xb717f95b, 0xcc097bb8, + 0x53d3f826, 0x3a347e7e, 0xa5eefde0, 0xdef07f03, 0x412afc9d, + 0x0d3f73b3, 0x92e5f02d, 0xe9fb72ce, 0x7621f150, 0x1fc67708, + 0x801cf496, 0xfb027675, 0x64d8f5eb, 0x32b39da3, 0xad691e3d, + 0xd6779cde, 0x49ad1f40, 0x204a9918, 0xbf901a86, 0xc48e9865, + 0x5b541bfb, 0x174194d5, 0x889b174b, 0xf38595a8, 0x6c5f1636, + 0x05b8906e, 0x9a6213f0, 0xe17c9113, 0x7ea6128d, 0x79578f4f, + 0xe68d0cd1, 0x9d938e32, 0x02490dac, 0x6bae8bf4, 0xf474086a, + 0x8f6a8a89, 0x10b00917, 0x5ca58639, 0xc37f05a7, 0xb8618744, + 0x27bb04da, 0x4e5c8282, 0xd186011c, 0xaa9883ff, 0x35420061, + 0xa57bb87b, 0x3aa13be5, 0x41bfb906, 0xde653a98, 0xb782bcc0, + 0x28583f5e, 0x5346bdbd, 0xcc9c3e23, 0x8089b10d, 0x1f533293, + 0x644db070, 0xfb9733ee, 0x9270b5b6, 0x0daa3628, 0x76b4b4cb, + 0xe96e3755, 0xee9faa97, 0x71452909, 0x0a5babea, 0x95812874, + 0xfc66ae2c, 0x63bc2db2, 0x18a2af51, 0x87782ccf, 0xcb6da3e1, + 0x54b7207f, 0x2fa9a29c, 0xb0732102, 0xd994a75a, 0x464e24c4, + 0x3d50a627, 0xa28a25b9, 0xc652d052, 0x598853cc, 0x2296d12f, + 0xbd4c52b1, 0xd4abd4e9, 0x4b715777, 0x306fd594, 0xafb5560a, + 0xe3a0d924, 0x7c7a5aba, 0x0764d859, 0x98be5bc7, 0xf159dd9f, + 0x6e835e01, 0x159ddce2, 0x8a475f7c, 0x8db6c2be, 0x126c4120, + 0x6972c3c3, 0xf6a8405d, 0x9f4fc605, 0x0095459b, 0x7b8bc778, + 0xe45144e6, 0xa844cbc8, 0x379e4856, 0x4c80cab5, 0xd35a492b, + 0xbabdcf73, 0x25674ced, 0x5e79ce0e, 0xc1a34d90, 0x519af58a, + 0xce407614, 0xb55ef4f7, 0x2a847769, 0x4363f131, 0xdcb972af, + 0xa7a7f04c, 0x387d73d2, 0x7468fcfc, 0xebb27f62, 0x90acfd81, + 0x0f767e1f, 0x6691f847, 0xf94b7bd9, 0x8255f93a, 0x1d8f7aa4, + 0x1a7ee766, 0x85a464f8, 0xfebae61b, 0x61606585, 0x0887e3dd, + 0x975d6043, 0xec43e2a0, 0x7399613e, 0x3f8cee10, 0xa0566d8e, + 0xdb48ef6d, 0x44926cf3, 0x2d75eaab, 0xb2af6935, 0xc9b1ebd6, + 0x566b6848}}; + +local const z_word_t FAR crc_braid_big_table[][256] = { + {0x00000000, 0x9e83da9f, 0x7d01c4e4, 0xe3821e7b, 0xbb04f912, + 0x2587238d, 0xc6053df6, 0x5886e769, 0x7609f225, 0xe88a28ba, + 0x0b0836c1, 0x958bec5e, 0xcd0d0b37, 0x538ed1a8, 0xb00ccfd3, + 0x2e8f154c, 0xec12e44b, 0x72913ed4, 0x911320af, 0x0f90fa30, + 0x57161d59, 0xc995c7c6, 0x2a17d9bd, 0xb4940322, 0x9a1b166e, + 0x0498ccf1, 0xe71ad28a, 0x79990815, 0x211fef7c, 0xbf9c35e3, + 0x5c1e2b98, 0xc29df107, 0xd825c897, 0x46a61208, 0xa5240c73, + 0x3ba7d6ec, 0x63213185, 0xfda2eb1a, 0x1e20f561, 0x80a32ffe, + 0xae2c3ab2, 0x30afe02d, 0xd32dfe56, 0x4dae24c9, 0x1528c3a0, + 0x8bab193f, 0x68290744, 0xf6aadddb, 0x34372cdc, 0xaab4f643, + 0x4936e838, 0xd7b532a7, 0x8f33d5ce, 0x11b00f51, 0xf232112a, + 0x6cb1cbb5, 0x423edef9, 0xdcbd0466, 0x3f3f1a1d, 0xa1bcc082, + 0xf93a27eb, 0x67b9fd74, 0x843be30f, 0x1ab83990, 0xf14de1f4, + 0x6fce3b6b, 0x8c4c2510, 0x12cfff8f, 0x4a4918e6, 0xd4cac279, + 0x3748dc02, 0xa9cb069d, 0x874413d1, 0x19c7c94e, 0xfa45d735, + 0x64c60daa, 0x3c40eac3, 0xa2c3305c, 0x41412e27, 0xdfc2f4b8, + 0x1d5f05bf, 0x83dcdf20, 0x605ec15b, 0xfedd1bc4, 0xa65bfcad, + 0x38d82632, 0xdb5a3849, 0x45d9e2d6, 0x6b56f79a, 0xf5d52d05, + 0x1657337e, 0x88d4e9e1, 0xd0520e88, 0x4ed1d417, 0xad53ca6c, + 0x33d010f3, 0x29682963, 0xb7ebf3fc, 0x5469ed87, 0xcaea3718, + 0x926cd071, 0x0cef0aee, 0xef6d1495, 0x71eece0a, 0x5f61db46, + 0xc1e201d9, 0x22601fa2, 0xbce3c53d, 0xe4652254, 0x7ae6f8cb, + 0x9964e6b0, 0x07e73c2f, 0xc57acd28, 0x5bf917b7, 0xb87b09cc, + 0x26f8d353, 0x7e7e343a, 0xe0fdeea5, 0x037ff0de, 0x9dfc2a41, + 0xb3733f0d, 0x2df0e592, 0xce72fbe9, 0x50f12176, 0x0877c61f, + 0x96f41c80, 0x757602fb, 0xebf5d864, 0xa39db332, 0x3d1e69ad, + 0xde9c77d6, 0x401fad49, 0x18994a20, 0x861a90bf, 0x65988ec4, + 0xfb1b545b, 0xd5944117, 0x4b179b88, 0xa89585f3, 0x36165f6c, + 0x6e90b805, 0xf013629a, 0x13917ce1, 0x8d12a67e, 0x4f8f5779, + 0xd10c8de6, 0x328e939d, 0xac0d4902, 0xf48bae6b, 0x6a0874f4, + 0x898a6a8f, 0x1709b010, 0x3986a55c, 0xa7057fc3, 0x448761b8, + 0xda04bb27, 0x82825c4e, 0x1c0186d1, 0xff8398aa, 0x61004235, + 0x7bb87ba5, 0xe53ba13a, 0x06b9bf41, 0x983a65de, 0xc0bc82b7, + 0x5e3f5828, 0xbdbd4653, 0x233e9ccc, 0x0db18980, 0x9332531f, + 0x70b04d64, 0xee3397fb, 0xb6b57092, 0x2836aa0d, 0xcbb4b476, + 0x55376ee9, 0x97aa9fee, 0x09294571, 0xeaab5b0a, 0x74288195, + 0x2cae66fc, 0xb22dbc63, 0x51afa218, 0xcf2c7887, 0xe1a36dcb, + 0x7f20b754, 0x9ca2a92f, 0x022173b0, 0x5aa794d9, 0xc4244e46, + 0x27a6503d, 0xb9258aa2, 0x52d052c6, 0xcc538859, 0x2fd19622, + 0xb1524cbd, 0xe9d4abd4, 0x7757714b, 0x94d56f30, 0x0a56b5af, + 0x24d9a0e3, 0xba5a7a7c, 0x59d86407, 0xc75bbe98, 0x9fdd59f1, + 0x015e836e, 0xe2dc9d15, 0x7c5f478a, 0xbec2b68d, 0x20416c12, + 0xc3c37269, 0x5d40a8f6, 0x05c64f9f, 0x9b459500, 0x78c78b7b, + 0xe64451e4, 0xc8cb44a8, 0x56489e37, 0xb5ca804c, 0x2b495ad3, + 0x73cfbdba, 0xed4c6725, 0x0ece795e, 0x904da3c1, 0x8af59a51, + 0x147640ce, 0xf7f45eb5, 0x6977842a, 0x31f16343, 0xaf72b9dc, + 0x4cf0a7a7, 0xd2737d38, 0xfcfc6874, 0x627fb2eb, 0x81fdac90, + 0x1f7e760f, 0x47f89166, 0xd97b4bf9, 0x3af95582, 0xa47a8f1d, + 0x66e77e1a, 0xf864a485, 0x1be6bafe, 0x85656061, 0xdde38708, + 0x43605d97, 0xa0e243ec, 0x3e619973, 0x10ee8c3f, 0x8e6d56a0, + 0x6def48db, 0xf36c9244, 0xabea752d, 0x3569afb2, 0xd6ebb1c9, + 0x48686b56}, + {0x00000000, 0xc0642817, 0x80c9502e, 0x40ad7839, 0x0093a15c, + 0xc0f7894b, 0x805af172, 0x403ed965, 0x002643b9, 0xc0426bae, + 0x80ef1397, 0x408b3b80, 0x00b5e2e5, 0xc0d1caf2, 0x807cb2cb, + 0x40189adc, 0x414af7a9, 0x812edfbe, 0xc183a787, 0x01e78f90, + 0x41d956f5, 0x81bd7ee2, 0xc11006db, 0x01742ecc, 0x416cb410, + 0x81089c07, 0xc1a5e43e, 0x01c1cc29, 0x41ff154c, 0x819b3d5b, + 0xc1364562, 0x01526d75, 0xc3929f88, 0x03f6b79f, 0x435bcfa6, + 0x833fe7b1, 0xc3013ed4, 0x036516c3, 0x43c86efa, 0x83ac46ed, + 0xc3b4dc31, 0x03d0f426, 0x437d8c1f, 0x8319a408, 0xc3277d6d, + 0x0343557a, 0x43ee2d43, 0x838a0554, 0x82d86821, 0x42bc4036, + 0x0211380f, 0xc2751018, 0x824bc97d, 0x422fe16a, 0x02829953, + 0xc2e6b144, 0x82fe2b98, 0x429a038f, 0x02377bb6, 0xc25353a1, + 0x826d8ac4, 0x4209a2d3, 0x02a4daea, 0xc2c0f2fd, 0xc7234eca, + 0x074766dd, 0x47ea1ee4, 0x878e36f3, 0xc7b0ef96, 0x07d4c781, + 0x4779bfb8, 0x871d97af, 0xc7050d73, 0x07612564, 0x47cc5d5d, + 0x87a8754a, 0xc796ac2f, 0x07f28438, 0x475ffc01, 0x873bd416, + 0x8669b963, 0x460d9174, 0x06a0e94d, 0xc6c4c15a, 0x86fa183f, + 0x469e3028, 0x06334811, 0xc6576006, 0x864ffada, 0x462bd2cd, + 0x0686aaf4, 0xc6e282e3, 0x86dc5b86, 0x46b87391, 0x06150ba8, + 0xc67123bf, 0x04b1d142, 0xc4d5f955, 0x8478816c, 0x441ca97b, + 0x0422701e, 0xc4465809, 0x84eb2030, 0x448f0827, 0x049792fb, + 0xc4f3baec, 0x845ec2d5, 0x443aeac2, 0x040433a7, 0xc4601bb0, + 0x84cd6389, 0x44a94b9e, 0x45fb26eb, 0x859f0efc, 0xc53276c5, + 0x05565ed2, 0x456887b7, 0x850cafa0, 0xc5a1d799, 0x05c5ff8e, + 0x45dd6552, 0x85b94d45, 0xc514357c, 0x05701d6b, 0x454ec40e, + 0x852aec19, 0xc5879420, 0x05e3bc37, 0xcf41ed4f, 0x0f25c558, + 0x4f88bd61, 0x8fec9576, 0xcfd24c13, 0x0fb66404, 0x4f1b1c3d, + 0x8f7f342a, 0xcf67aef6, 0x0f0386e1, 0x4faefed8, 0x8fcad6cf, + 0xcff40faa, 0x0f9027bd, 0x4f3d5f84, 0x8f597793, 0x8e0b1ae6, + 0x4e6f32f1, 0x0ec24ac8, 0xcea662df, 0x8e98bbba, 0x4efc93ad, + 0x0e51eb94, 0xce35c383, 0x8e2d595f, 0x4e497148, 0x0ee40971, + 0xce802166, 0x8ebef803, 0x4edad014, 0x0e77a82d, 0xce13803a, + 0x0cd372c7, 0xccb75ad0, 0x8c1a22e9, 0x4c7e0afe, 0x0c40d39b, + 0xcc24fb8c, 0x8c8983b5, 0x4cedaba2, 0x0cf5317e, 0xcc911969, + 0x8c3c6150, 0x4c584947, 0x0c669022, 0xcc02b835, 0x8cafc00c, + 0x4ccbe81b, 0x4d99856e, 0x8dfdad79, 0xcd50d540, 0x0d34fd57, + 0x4d0a2432, 0x8d6e0c25, 0xcdc3741c, 0x0da75c0b, 0x4dbfc6d7, + 0x8ddbeec0, 0xcd7696f9, 0x0d12beee, 0x4d2c678b, 0x8d484f9c, + 0xcde537a5, 0x0d811fb2, 0x0862a385, 0xc8068b92, 0x88abf3ab, + 0x48cfdbbc, 0x08f102d9, 0xc8952ace, 0x883852f7, 0x485c7ae0, + 0x0844e03c, 0xc820c82b, 0x888db012, 0x48e99805, 0x08d74160, + 0xc8b36977, 0x881e114e, 0x487a3959, 0x4928542c, 0x894c7c3b, + 0xc9e10402, 0x09852c15, 0x49bbf570, 0x89dfdd67, 0xc972a55e, + 0x09168d49, 0x490e1795, 0x896a3f82, 0xc9c747bb, 0x09a36fac, + 0x499db6c9, 0x89f99ede, 0xc954e6e7, 0x0930cef0, 0xcbf03c0d, + 0x0b94141a, 0x4b396c23, 0x8b5d4434, 0xcb639d51, 0x0b07b546, + 0x4baacd7f, 0x8bcee568, 0xcbd67fb4, 0x0bb257a3, 0x4b1f2f9a, + 0x8b7b078d, 0xcb45dee8, 0x0b21f6ff, 0x4b8c8ec6, 0x8be8a6d1, + 0x8abacba4, 0x4adee3b3, 0x0a739b8a, 0xca17b39d, 0x8a296af8, + 0x4a4d42ef, 0x0ae03ad6, 0xca8412c1, 0x8a9c881d, 0x4af8a00a, + 0x0a55d833, 0xca31f024, 0x8a0f2941, 0x4a6b0156, 0x0ac6796f, + 0xcaa25178}, + {0x00000000, 0xd4ea739b, 0xe9d396ed, 0x3d39e576, 0x93a15c00, + 0x474b2f9b, 0x7a72caed, 0xae98b976, 0x2643b900, 0xf2a9ca9b, + 0xcf902fed, 0x1b7a5c76, 0xb5e2e500, 0x6108969b, 0x5c3173ed, + 0x88db0076, 0x4c867201, 0x986c019a, 0xa555e4ec, 0x71bf9777, + 0xdf272e01, 0x0bcd5d9a, 0x36f4b8ec, 0xe21ecb77, 0x6ac5cb01, + 0xbe2fb89a, 0x83165dec, 0x57fc2e77, 0xf9649701, 0x2d8ee49a, + 0x10b701ec, 0xc45d7277, 0x980ce502, 0x4ce69699, 0x71df73ef, + 0xa5350074, 0x0badb902, 0xdf47ca99, 0xe27e2fef, 0x36945c74, + 0xbe4f5c02, 0x6aa52f99, 0x579ccaef, 0x8376b974, 0x2dee0002, + 0xf9047399, 0xc43d96ef, 0x10d7e574, 0xd48a9703, 0x0060e498, + 0x3d5901ee, 0xe9b37275, 0x472bcb03, 0x93c1b898, 0xaef85dee, + 0x7a122e75, 0xf2c92e03, 0x26235d98, 0x1b1ab8ee, 0xcff0cb75, + 0x61687203, 0xb5820198, 0x88bbe4ee, 0x5c519775, 0x3019ca05, + 0xe4f3b99e, 0xd9ca5ce8, 0x0d202f73, 0xa3b89605, 0x7752e59e, + 0x4a6b00e8, 0x9e817373, 0x165a7305, 0xc2b0009e, 0xff89e5e8, + 0x2b639673, 0x85fb2f05, 0x51115c9e, 0x6c28b9e8, 0xb8c2ca73, + 0x7c9fb804, 0xa875cb9f, 0x954c2ee9, 0x41a65d72, 0xef3ee404, + 0x3bd4979f, 0x06ed72e9, 0xd2070172, 0x5adc0104, 0x8e36729f, + 0xb30f97e9, 0x67e5e472, 0xc97d5d04, 0x1d972e9f, 0x20aecbe9, + 0xf444b872, 0xa8152f07, 0x7cff5c9c, 0x41c6b9ea, 0x952cca71, + 0x3bb47307, 0xef5e009c, 0xd267e5ea, 0x068d9671, 0x8e569607, + 0x5abce59c, 0x678500ea, 0xb36f7371, 0x1df7ca07, 0xc91db99c, + 0xf4245cea, 0x20ce2f71, 0xe4935d06, 0x30792e9d, 0x0d40cbeb, + 0xd9aab870, 0x77320106, 0xa3d8729d, 0x9ee197eb, 0x4a0be470, + 0xc2d0e406, 0x163a979d, 0x2b0372eb, 0xffe90170, 0x5171b806, + 0x859bcb9d, 0xb8a22eeb, 0x6c485d70, 0x6032940b, 0xb4d8e790, + 0x89e102e6, 0x5d0b717d, 0xf393c80b, 0x2779bb90, 0x1a405ee6, + 0xceaa2d7d, 0x46712d0b, 0x929b5e90, 0xafa2bbe6, 0x7b48c87d, + 0xd5d0710b, 0x013a0290, 0x3c03e7e6, 0xe8e9947d, 0x2cb4e60a, + 0xf85e9591, 0xc56770e7, 0x118d037c, 0xbf15ba0a, 0x6bffc991, + 0x56c62ce7, 0x822c5f7c, 0x0af75f0a, 0xde1d2c91, 0xe324c9e7, + 0x37ceba7c, 0x9956030a, 0x4dbc7091, 0x708595e7, 0xa46fe67c, + 0xf83e7109, 0x2cd40292, 0x11ede7e4, 0xc507947f, 0x6b9f2d09, + 0xbf755e92, 0x824cbbe4, 0x56a6c87f, 0xde7dc809, 0x0a97bb92, + 0x37ae5ee4, 0xe3442d7f, 0x4ddc9409, 0x9936e792, 0xa40f02e4, + 0x70e5717f, 0xb4b80308, 0x60527093, 0x5d6b95e5, 0x8981e67e, + 0x27195f08, 0xf3f32c93, 0xcecac9e5, 0x1a20ba7e, 0x92fbba08, + 0x4611c993, 0x7b282ce5, 0xafc25f7e, 0x015ae608, 0xd5b09593, + 0xe88970e5, 0x3c63037e, 0x502b5e0e, 0x84c12d95, 0xb9f8c8e3, + 0x6d12bb78, 0xc38a020e, 0x17607195, 0x2a5994e3, 0xfeb3e778, + 0x7668e70e, 0xa2829495, 0x9fbb71e3, 0x4b510278, 0xe5c9bb0e, + 0x3123c895, 0x0c1a2de3, 0xd8f05e78, 0x1cad2c0f, 0xc8475f94, + 0xf57ebae2, 0x2194c979, 0x8f0c700f, 0x5be60394, 0x66dfe6e2, + 0xb2359579, 0x3aee950f, 0xee04e694, 0xd33d03e2, 0x07d77079, + 0xa94fc90f, 0x7da5ba94, 0x409c5fe2, 0x94762c79, 0xc827bb0c, + 0x1ccdc897, 0x21f42de1, 0xf51e5e7a, 0x5b86e70c, 0x8f6c9497, + 0xb25571e1, 0x66bf027a, 0xee64020c, 0x3a8e7197, 0x07b794e1, + 0xd35de77a, 0x7dc55e0c, 0xa92f2d97, 0x9416c8e1, 0x40fcbb7a, + 0x84a1c90d, 0x504bba96, 0x6d725fe0, 0xb9982c7b, 0x1700950d, + 0xc3eae696, 0xfed303e0, 0x2a39707b, 0xa2e2700d, 0x76080396, + 0x4b31e6e0, 0x9fdb957b, 0x31432c0d, 0xe5a95f96, 0xd890bae0, + 0x0c7ac97b}, + {0x00000000, 0x27652581, 0x0fcc3bd9, 0x28a91e58, 0x5f9e0669, + 0x78fb23e8, 0x50523db0, 0x77371831, 0xbe3c0dd2, 0x99592853, + 0xb1f0360b, 0x9695138a, 0xe1a20bbb, 0xc6c72e3a, 0xee6e3062, + 0xc90b15e3, 0x3d7f6b7f, 0x1a1a4efe, 0x32b350a6, 0x15d67527, + 0x62e16d16, 0x45844897, 0x6d2d56cf, 0x4a48734e, 0x834366ad, + 0xa426432c, 0x8c8f5d74, 0xabea78f5, 0xdcdd60c4, 0xfbb84545, + 0xd3115b1d, 0xf4747e9c, 0x7afed6fe, 0x5d9bf37f, 0x7532ed27, + 0x5257c8a6, 0x2560d097, 0x0205f516, 0x2aaceb4e, 0x0dc9cecf, + 0xc4c2db2c, 0xe3a7fead, 0xcb0ee0f5, 0xec6bc574, 0x9b5cdd45, + 0xbc39f8c4, 0x9490e69c, 0xb3f5c31d, 0x4781bd81, 0x60e49800, + 0x484d8658, 0x6f28a3d9, 0x181fbbe8, 0x3f7a9e69, 0x17d38031, + 0x30b6a5b0, 0xf9bdb053, 0xded895d2, 0xf6718b8a, 0xd114ae0b, + 0xa623b63a, 0x814693bb, 0xa9ef8de3, 0x8e8aa862, 0xb5fadc26, + 0x929ff9a7, 0xba36e7ff, 0x9d53c27e, 0xea64da4f, 0xcd01ffce, + 0xe5a8e196, 0xc2cdc417, 0x0bc6d1f4, 0x2ca3f475, 0x040aea2d, + 0x236fcfac, 0x5458d79d, 0x733df21c, 0x5b94ec44, 0x7cf1c9c5, + 0x8885b759, 0xafe092d8, 0x87498c80, 0xa02ca901, 0xd71bb130, + 0xf07e94b1, 0xd8d78ae9, 0xffb2af68, 0x36b9ba8b, 0x11dc9f0a, + 0x39758152, 0x1e10a4d3, 0x6927bce2, 0x4e429963, 0x66eb873b, + 0x418ea2ba, 0xcf040ad8, 0xe8612f59, 0xc0c83101, 0xe7ad1480, + 0x909a0cb1, 0xb7ff2930, 0x9f563768, 0xb83312e9, 0x7138070a, + 0x565d228b, 0x7ef43cd3, 0x59911952, 0x2ea60163, 0x09c324e2, + 0x216a3aba, 0x060f1f3b, 0xf27b61a7, 0xd51e4426, 0xfdb75a7e, + 0xdad27fff, 0xade567ce, 0x8a80424f, 0xa2295c17, 0x854c7996, + 0x4c476c75, 0x6b2249f4, 0x438b57ac, 0x64ee722d, 0x13d96a1c, + 0x34bc4f9d, 0x1c1551c5, 0x3b707444, 0x6af5b94d, 0x4d909ccc, + 0x65398294, 0x425ca715, 0x356bbf24, 0x120e9aa5, 0x3aa784fd, + 0x1dc2a17c, 0xd4c9b49f, 0xf3ac911e, 0xdb058f46, 0xfc60aac7, + 0x8b57b2f6, 0xac329777, 0x849b892f, 0xa3feacae, 0x578ad232, + 0x70eff7b3, 0x5846e9eb, 0x7f23cc6a, 0x0814d45b, 0x2f71f1da, + 0x07d8ef82, 0x20bdca03, 0xe9b6dfe0, 0xced3fa61, 0xe67ae439, + 0xc11fc1b8, 0xb628d989, 0x914dfc08, 0xb9e4e250, 0x9e81c7d1, + 0x100b6fb3, 0x376e4a32, 0x1fc7546a, 0x38a271eb, 0x4f9569da, + 0x68f04c5b, 0x40595203, 0x673c7782, 0xae376261, 0x895247e0, + 0xa1fb59b8, 0x869e7c39, 0xf1a96408, 0xd6cc4189, 0xfe655fd1, + 0xd9007a50, 0x2d7404cc, 0x0a11214d, 0x22b83f15, 0x05dd1a94, + 0x72ea02a5, 0x558f2724, 0x7d26397c, 0x5a431cfd, 0x9348091e, + 0xb42d2c9f, 0x9c8432c7, 0xbbe11746, 0xccd60f77, 0xebb32af6, + 0xc31a34ae, 0xe47f112f, 0xdf0f656b, 0xf86a40ea, 0xd0c35eb2, + 0xf7a67b33, 0x80916302, 0xa7f44683, 0x8f5d58db, 0xa8387d5a, + 0x613368b9, 0x46564d38, 0x6eff5360, 0x499a76e1, 0x3ead6ed0, + 0x19c84b51, 0x31615509, 0x16047088, 0xe2700e14, 0xc5152b95, + 0xedbc35cd, 0xcad9104c, 0xbdee087d, 0x9a8b2dfc, 0xb22233a4, + 0x95471625, 0x5c4c03c6, 0x7b292647, 0x5380381f, 0x74e51d9e, + 0x03d205af, 0x24b7202e, 0x0c1e3e76, 0x2b7b1bf7, 0xa5f1b395, + 0x82949614, 0xaa3d884c, 0x8d58adcd, 0xfa6fb5fc, 0xdd0a907d, + 0xf5a38e25, 0xd2c6aba4, 0x1bcdbe47, 0x3ca89bc6, 0x1401859e, + 0x3364a01f, 0x4453b82e, 0x63369daf, 0x4b9f83f7, 0x6cfaa676, + 0x988ed8ea, 0xbfebfd6b, 0x9742e333, 0xb027c6b2, 0xc710de83, + 0xe075fb02, 0xc8dce55a, 0xefb9c0db, 0x26b2d538, 0x01d7f0b9, + 0x297eeee1, 0x0e1bcb60, 0x792cd351, 0x5e49f6d0, 0x76e0e888, + 0x5185cd09}}; + +#endif + +#endif + +#endif + +local const z_crc_t FAR x2n_table[] = { + 0x40000000, 0x20000000, 0x08000000, 0x00800000, 0x00008000, + 0xedb88320, 0xb1e6b092, 0xa06a2517, 0xed627dae, 0x88d14467, + 0xd7bbfe6a, 0xec447f11, 0x8e7ea170, 0x6427800e, 0x4d47bae0, + 0x09fe548f, 0x83852d0f, 0x30362f1a, 0x7b5a9cc3, 0x31fec169, + 0x9fec022a, 0x6c8dedc4, 0x15d6874d, 0x5fde7a4e, 0xbad90e37, + 0x2e4e5eef, 0x4eaba214, 0xa8a472c0, 0x429a969e, 0x148d302a, + 0xc40ba6d0, 0xc4e22c3c}; diff --git a/qtbase/src/3rdparty/zlib/src/deflate.c b/qtbase/src/3rdparty/zlib/src/deflate.c index 1ec761448d..799fb93cc0 100644 --- a/qtbase/src/3rdparty/zlib/src/deflate.c +++ b/qtbase/src/3rdparty/zlib/src/deflate.c @@ -1,5 +1,5 @@ /* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + * Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -52,7 +52,7 @@ #include "deflate.h" const char deflate_copyright[] = - " deflate 1.2.11 Copyright 1995-2017 Jean-loup Gailly and Mark Adler "; + " deflate 1.2.12 Copyright 1995-2022 Jean-loup Gailly and Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -190,8 +190,11 @@ local const config configuration_table[10] = { * prev[] will be initialized on the fly. */ #define CLEAR_HASH(s) \ - s->head[s->hash_size-1] = NIL; \ - zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); + do { \ + s->head[s->hash_size-1] = NIL; \ + zmemzero((Bytef *)s->head, \ + (unsigned)(s->hash_size-1)*sizeof(*s->head)); \ + } while (0) /* =========================================================================== * Slide the hash table when sliding the window down (could be avoided with 32 @@ -252,11 +255,6 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, int wrap = 1; static const char my_version[] = ZLIB_VERSION; - ushf *overlay; - /* We overlay pending_buf and d_buf+l_buf. This works since the average - * output size for (length,distance) codes is <= 24 bits. - */ - if (version == Z_NULL || version[0] != my_version[0] || stream_size != sizeof(z_stream)) { return Z_VERSION_ERROR; @@ -326,9 +324,47 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ - overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); - s->pending_buf = (uchf *) overlay; - s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); + /* We overlay pending_buf and sym_buf. This works since the average size + * for length/distance pairs over any compressed block is assured to be 31 + * bits or less. + * + * Analysis: The longest fixed codes are a length code of 8 bits plus 5 + * extra bits, for lengths 131 to 257. The longest fixed distance codes are + * 5 bits plus 13 extra bits, for distances 16385 to 32768. The longest + * possible fixed-codes length/distance pair is then 31 bits total. + * + * sym_buf starts one-fourth of the way into pending_buf. So there are + * three bytes in sym_buf for every four bytes in pending_buf. Each symbol + * in sym_buf is three bytes -- two for the distance and one for the + * literal/length. As each symbol is consumed, the pointer to the next + * sym_buf value to read moves forward three bytes. From that symbol, up to + * 31 bits are written to pending_buf. The closest the written pending_buf + * bits gets to the next sym_buf symbol to read is just before the last + * code is written. At that time, 31*(n-2) bits have been written, just + * after 24*(n-2) bits have been consumed from sym_buf. sym_buf starts at + * 8*n bits into pending_buf. (Note that the symbol buffer fills when n-1 + * symbols are written.) The closest the writing gets to what is unread is + * then n+14 bits. Here n is lit_bufsize, which is 16384 by default, and + * can range from 128 to 32768. + * + * Therefore, at a minimum, there are 142 bits of space between what is + * written and what is read in the overlain buffers, so the symbols cannot + * be overwritten by the compressed data. That space is actually 139 bits, + * due to the three-bit fixed-code block header. + * + * That covers the case where either Z_FIXED is specified, forcing fixed + * codes, or when the use of fixed codes is chosen, because that choice + * results in a smaller compressed block than dynamic codes. That latter + * condition then assures that the above analysis also covers all dynamic + * blocks. A dynamic-code block will only be chosen to be emitted if it has + * fewer bits than a fixed-code block would for the same set of symbols. + * Therefore its average symbol length is assured to be less than 31. So + * the compressed data for a dynamic block also cannot overwrite the + * symbols from which it is being constructed. + */ + + s->pending_buf = (uchf *) ZALLOC(strm, s->lit_bufsize, 4); + s->pending_buf_size = (ulg)s->lit_bufsize * 4; if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || s->pending_buf == Z_NULL) { @@ -337,8 +373,12 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, deflateEnd (strm); return Z_MEM_ERROR; } - s->d_buf = overlay + s->lit_bufsize/sizeof(ush); - s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; + s->sym_buf = s->pending_buf + s->lit_bufsize; + s->sym_end = (s->lit_bufsize - 1) * 3; + /* We avoid equality with lit_bufsize*3 because of wraparound at 64K + * on 16 bit machines and because stored blocks are restricted to + * 64K-1 bytes. + */ s->level = level; s->strategy = strategy; @@ -488,13 +528,13 @@ int ZEXPORT deflateResetKeep (strm) #ifdef GZIP s->wrap == 2 ? GZIP_STATE : #endif - s->wrap ? INIT_STATE : BUSY_STATE; + INIT_STATE; strm->adler = #ifdef GZIP s->wrap == 2 ? crc32(0L, Z_NULL, 0) : #endif adler32(0L, Z_NULL, 0); - s->last_flush = Z_NO_FLUSH; + s->last_flush = -2; _tr_init(s); @@ -549,7 +589,8 @@ int ZEXPORT deflatePrime (strm, bits, value) if (deflateStateCheck(strm)) return Z_STREAM_ERROR; s = strm->state; - if ((Bytef *)(s->d_buf) < s->pending_out + ((Buf_size + 7) >> 3)) + if (bits < 0 || bits > 16 || + s->sym_buf < s->pending_out + ((Buf_size + 7) >> 3)) return Z_BUF_ERROR; do { put = Buf_size - s->bi_valid; @@ -587,12 +628,12 @@ int ZEXPORT deflateParams(strm, level, strategy) func = configuration_table[s->level].func; if ((strategy != s->strategy || func != configuration_table[level].func) && - s->high_water) { + s->last_flush != -2) { /* Flush the last buffer: */ int err = deflate(strm, Z_BLOCK); if (err == Z_STREAM_ERROR) return err; - if (strm->avail_out == 0) + if (strm->avail_in || (s->strstart - s->block_start) + s->lookahead) return Z_BUF_ERROR; } if (s->level != level) { @@ -811,6 +852,8 @@ int ZEXPORT deflate (strm, flush) } /* Write the header */ + if (s->status == INIT_STATE && s->wrap == 0) + s->status = BUSY_STATE; if (s->status == INIT_STATE) { /* zlib header */ uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; @@ -1108,7 +1151,6 @@ int ZEXPORT deflateCopy (dest, source) #else deflate_state *ds; deflate_state *ss; - ushf *overlay; if (deflateStateCheck(source) || dest == Z_NULL) { @@ -1128,8 +1170,7 @@ int ZEXPORT deflateCopy (dest, source) ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); - overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); - ds->pending_buf = (uchf *) overlay; + ds->pending_buf = (uchf *) ZALLOC(dest, ds->lit_bufsize, 4); if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || ds->pending_buf == Z_NULL) { @@ -1143,8 +1184,7 @@ int ZEXPORT deflateCopy (dest, source) zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); - ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); - ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; + ds->sym_buf = ds->pending_buf + ds->lit_bufsize; ds->l_desc.dyn_tree = ds->dyn_ltree; ds->d_desc.dyn_tree = ds->dyn_dtree; @@ -1513,6 +1553,8 @@ local void fill_window(s) s->match_start -= wsize; s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ s->block_start -= (long) wsize; + if (s->insert > s->strstart) + s->insert = s->strstart; slide_hash(s); more += wsize; } @@ -1742,6 +1784,7 @@ local block_state deflate_stored(s, flush) s->matches = 2; /* clear hash */ zmemcpy(s->window, s->strm->next_in - s->w_size, s->w_size); s->strstart = s->w_size; + s->insert = s->strstart; } else { if (s->window_size - s->strstart <= used) { @@ -1750,12 +1793,14 @@ local block_state deflate_stored(s, flush) zmemcpy(s->window, s->window + s->w_size, s->strstart); if (s->matches < 2) s->matches++; /* add a pending slide_hash() */ + if (s->insert > s->strstart) + s->insert = s->strstart; } zmemcpy(s->window + s->strstart, s->strm->next_in - used, used); s->strstart += used; + s->insert += MIN(used, s->w_size - s->insert); } s->block_start = s->strstart; - s->insert += MIN(used, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; @@ -1770,7 +1815,7 @@ local block_state deflate_stored(s, flush) return block_done; /* Fill the window with any remaining input. */ - have = s->window_size - s->strstart - 1; + have = s->window_size - s->strstart; if (s->strm->avail_in > have && s->block_start >= (long)s->w_size) { /* Slide the window down. */ s->block_start -= s->w_size; @@ -1779,12 +1824,15 @@ local block_state deflate_stored(s, flush) if (s->matches < 2) s->matches++; /* add a pending slide_hash() */ have += s->w_size; /* more space now */ + if (s->insert > s->strstart) + s->insert = s->strstart; } if (have > s->strm->avail_in) have = s->strm->avail_in; if (have) { read_buf(s->strm, s->window + s->strstart, have); s->strstart += have; + s->insert += MIN(have, s->w_size - s->insert); } if (s->high_water < s->strstart) s->high_water = s->strstart; @@ -1912,7 +1960,7 @@ local block_state deflate_fast(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } @@ -2043,7 +2091,7 @@ local block_state deflate_slow(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } @@ -2118,7 +2166,7 @@ local block_state deflate_rle(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } @@ -2157,7 +2205,7 @@ local block_state deflate_huff(s, flush) FLUSH_BLOCK(s, 1); return finish_done; } - if (s->last_lit) + if (s->sym_next) FLUSH_BLOCK(s, 0); return block_done; } diff --git a/qtbase/src/3rdparty/zlib/src/deflate.h b/qtbase/src/3rdparty/zlib/src/deflate.h index 23ecdd312b..17c226113b 100644 --- a/qtbase/src/3rdparty/zlib/src/deflate.h +++ b/qtbase/src/3rdparty/zlib/src/deflate.h @@ -1,5 +1,5 @@ /* deflate.h -- internal compression state - * Copyright (C) 1995-2016 Jean-loup Gailly + * Copyright (C) 1995-2018 Jean-loup Gailly * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -217,7 +217,7 @@ typedef struct internal_state { /* Depth of each subtree used as tie breaker for trees of equal frequency */ - uchf *l_buf; /* buffer for literals or lengths */ + uchf *sym_buf; /* buffer for distances and literals/lengths */ uInt lit_bufsize; /* Size of match buffer for literals/lengths. There are 4 reasons for @@ -239,13 +239,8 @@ typedef struct internal_state { * - I can't count above 4 */ - uInt last_lit; /* running index in l_buf */ - - ushf *d_buf; - /* Buffer for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */ + uInt sym_next; /* running index in sym_buf */ + uInt sym_end; /* symbol table full when sym_next reaches this */ ulg opt_len; /* bit length of current block with optimal trees */ ulg static_len; /* bit length of current block with static trees */ @@ -325,20 +320,22 @@ void ZLIB_INTERNAL _tr_stored_block OF((deflate_state *s, charf *buf, # define _tr_tally_lit(s, c, flush) \ { uch cc = (c); \ - s->d_buf[s->last_lit] = 0; \ - s->l_buf[s->last_lit++] = cc; \ + s->sym_buf[s->sym_next++] = 0; \ + s->sym_buf[s->sym_next++] = 0; \ + s->sym_buf[s->sym_next++] = cc; \ s->dyn_ltree[cc].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ + flush = (s->sym_next == s->sym_end); \ } # define _tr_tally_dist(s, distance, length, flush) \ { uch len = (uch)(length); \ ush dist = (ush)(distance); \ - s->d_buf[s->last_lit] = dist; \ - s->l_buf[s->last_lit++] = len; \ + s->sym_buf[s->sym_next++] = dist; \ + s->sym_buf[s->sym_next++] = dist >> 8; \ + s->sym_buf[s->sym_next++] = len; \ dist--; \ s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ s->dyn_dtree[d_code(dist)].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ + flush = (s->sym_next == s->sym_end); \ } #else # define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) diff --git a/qtbase/src/3rdparty/zlib/src/gzguts.h b/qtbase/src/3rdparty/zlib/src/gzguts.h index 20de7cb4ce..3ec32af25f 100644 --- a/qtbase/src/3rdparty/zlib/src/gzguts.h +++ b/qtbase/src/3rdparty/zlib/src/gzguts.h @@ -1,5 +1,5 @@ /* gzguts.h -- zlib internal header definitions for gz* operations - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler + * Copyright (C) 2004-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -10,15 +10,8 @@ # ifndef _CRT_NONSTDC_NO_DEPRECATE # define _CRT_NONSTDC_NO_DEPRECATE # endif -#endif - -#ifdef _LARGEFILE64_SOURCE -# ifndef _LARGEFILE_SOURCE -# define _LARGEFILE_SOURCE 1 -# endif -# ifdef _FILE_OFFSET_BITS -# undef _FILE_OFFSET_BITS -# endif +// disable warnings like '=': conversion from 'size_t' to 'unsigned int', possible loss of data +# pragma warning(disable: 4267; disable: 4244) #endif #ifndef QT_BOOTSTRAPPED @@ -29,6 +22,14 @@ #define HAVE_HIDDEN #endif +#ifdef _LARGEFILE64_SOURCE +# ifndef _LARGEFILE_SOURCE +# define _LARGEFILE_SOURCE 1 +# endif +# ifdef _FILE_OFFSET_BITS +# undef _FILE_OFFSET_BITS +# endif +#endif #ifdef HAVE_HIDDEN # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) @@ -57,7 +58,7 @@ # include #endif -#if defined(_WIN32) || defined(__CYGWIN__) +#if defined(_WIN32) # define WIDECHAR #endif @@ -208,6 +209,7 @@ typedef struct { /* just for writing */ int level; /* compression level */ int strategy; /* compression strategy */ + int reset; /* true if a reset is pending after a Z_FINISH */ /* seek request */ z_off64_t skip; /* amount to skip (already rewound if backwards) */ int seek; /* true if seek request pending */ diff --git a/qtbase/src/3rdparty/zlib/src/gzlib.c b/qtbase/src/3rdparty/zlib/src/gzlib.c index 4105e6aff9..dddaf26873 100644 --- a/qtbase/src/3rdparty/zlib/src/gzlib.c +++ b/qtbase/src/3rdparty/zlib/src/gzlib.c @@ -1,11 +1,11 @@ /* gzlib.c -- zlib functions common to reading and writing gzip files - * Copyright (C) 2004-2017 Mark Adler + * Copyright (C) 2004-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ #include "gzguts.h" -#if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__) +#if defined(_WIN32) && !defined(__BORLANDC__) # define LSEEK _lseeki64 #else #if defined(_LARGEFILE64_SOURCE) && _LFS64_LARGEFILE-0 @@ -81,6 +81,8 @@ local void gz_reset(state) state->past = 0; /* have not read past end yet */ state->how = LOOK; /* look for gzip header */ } + else /* for writing ... */ + state->reset = 0; /* no deflateReset pending */ state->seek = 0; /* no seek request pending */ gz_error(state, Z_OK, NULL); /* clear error */ state->x.pos = 0; /* no uncompressed data yet */ @@ -397,7 +399,7 @@ z_off64_t ZEXPORT gzseek64(file, offset, whence) /* if within raw area while reading, just go there */ if (state->mode == GZ_READ && state->how == COPY && state->x.pos + offset >= 0) { - ret = LSEEK(state->fd, offset - state->x.have, SEEK_CUR); + ret = LSEEK(state->fd, offset - (z_off64_t)state->x.have, SEEK_CUR); if (ret == -1) return -1; state->x.have = 0; diff --git a/qtbase/src/3rdparty/zlib/src/gzread.c b/qtbase/src/3rdparty/zlib/src/gzread.c index 956b91ea7d..884c9bfe4c 100644 --- a/qtbase/src/3rdparty/zlib/src/gzread.c +++ b/qtbase/src/3rdparty/zlib/src/gzread.c @@ -1,5 +1,5 @@ /* gzread.c -- zlib functions for reading gzip files - * Copyright (C) 2004, 2005, 2010, 2011, 2012, 2013, 2016 Mark Adler + * Copyright (C) 2004-2017 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -314,9 +314,9 @@ local z_size_t gz_read(state, buf, len) got = 0; do { /* set n to the maximum amount of len that fits in an unsigned int */ - n = -1; + n = (unsigned)-1; if (n > len) - n = len; + n = (unsigned)len; /* first just try copying data from the output buffer */ if (state->x.have) { @@ -397,7 +397,7 @@ int ZEXPORT gzread(file, buf, len) } /* read len or fewer bytes to buf */ - len = gz_read(state, buf, len); + len = (unsigned)gz_read(state, buf, len); /* check for an error */ if (len == 0 && state->err != Z_OK && state->err != Z_BUF_ERROR) @@ -447,7 +447,6 @@ z_size_t ZEXPORT gzfread(buf, size, nitems, file) int ZEXPORT gzgetc(file) gzFile file; { - int ret; unsigned char buf[1]; gz_statep state; @@ -469,8 +468,7 @@ int ZEXPORT gzgetc(file) } /* nothing there -- try gz_read() */ - ret = gz_read(state, buf, 1); - return ret < 1 ? -1 : buf[0]; + return gz_read(state, buf, 1) < 1 ? -1 : buf[0]; } int ZEXPORT gzgetc_(file) diff --git a/qtbase/src/3rdparty/zlib/src/gzwrite.c b/qtbase/src/3rdparty/zlib/src/gzwrite.c index c7b5651d70..a8ffc8f53d 100644 --- a/qtbase/src/3rdparty/zlib/src/gzwrite.c +++ b/qtbase/src/3rdparty/zlib/src/gzwrite.c @@ -1,5 +1,5 @@ /* gzwrite.c -- zlib functions for writing gzip files - * Copyright (C) 2004-2017 Mark Adler + * Copyright (C) 2004-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -97,6 +97,15 @@ local int gz_comp(state, flush) return 0; } + /* check for a pending reset */ + if (state->reset) { + /* don't start a new gzip member unless there is data to write */ + if (strm->avail_in == 0) + return 0; + deflateReset(strm); + state->reset = 0; + } + /* run deflate() on provided input until it produces no more output */ ret = Z_OK; do { @@ -134,7 +143,7 @@ local int gz_comp(state, flush) /* if that completed a deflate stream, allow another to start */ if (flush == Z_FINISH) - deflateReset(strm); + state->reset = 1; /* all done, no errors */ return 0; @@ -209,7 +218,7 @@ local z_size_t gz_write(state, buf, len) state->in); copy = state->size - have; if (copy > len) - copy = len; + copy = (unsigned)len; memcpy(state->in + have, buf, copy); state->strm.avail_in += copy; state->x.pos += copy; @@ -229,7 +238,7 @@ local z_size_t gz_write(state, buf, len) do { unsigned n = (unsigned)-1; if (n > len) - n = len; + n = (unsigned)len; state->strm.avail_in = n; state->x.pos += n; if (gz_comp(state, Z_NO_FLUSH) == -1) @@ -349,12 +358,11 @@ int ZEXPORT gzputc(file, c) } /* -- see zlib.h -- */ -int ZEXPORT gzputs(file, str) +int ZEXPORT gzputs(file, s) gzFile file; - const char *str; + const char *s; { - int ret; - z_size_t len; + z_size_t len, put; gz_statep state; /* get internal structure */ @@ -367,9 +375,13 @@ int ZEXPORT gzputs(file, str) return -1; /* write string */ - len = strlen(str); - ret = gz_write(state, str, len); - return ret == 0 && len != 0 ? -1 : ret; + len = strlen(s); + if ((int)len < 0 || (unsigned)len != len) { + gz_error(state, Z_STREAM_ERROR, "string length does not fit in int"); + return -1; + } + put = gz_write(state, s, len); + return put < len ? -1 : (int)len; } #if defined(STDC) || defined(Z_HAVE_STDARG_H) @@ -441,7 +453,7 @@ int ZEXPORTVA gzvprintf(gzFile file, const char *format, va_list va) strm->avail_in = state->size; if (gz_comp(state, Z_NO_FLUSH) == -1) return state->err; - memcpy(state->in, state->in + state->size, left); + memmove(state->in, state->in + state->size, left); strm->next_in = state->in; strm->avail_in = left; } @@ -540,7 +552,7 @@ int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, strm->avail_in = state->size; if (gz_comp(state, Z_NO_FLUSH) == -1) return state->err; - memcpy(state->in, state->in + state->size, left); + memmove(state->in, state->in + state->size, left); strm->next_in = state->in; strm->avail_in = left; } diff --git a/qtbase/src/3rdparty/zlib/src/infback.c b/qtbase/src/3rdparty/zlib/src/infback.c index 59679ecbfc..a390c58e81 100644 --- a/qtbase/src/3rdparty/zlib/src/infback.c +++ b/qtbase/src/3rdparty/zlib/src/infback.c @@ -1,5 +1,5 @@ /* infback.c -- inflate using a call-back interface - * Copyright (C) 1995-2016 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -477,6 +477,7 @@ void FAR *out_desc; } Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN; + /* fallthrough */ case LEN: /* use inflate_fast() if we have enough input and output */ diff --git a/qtbase/src/3rdparty/zlib/src/inffast.c b/qtbase/src/3rdparty/zlib/src/inffast.c index 0dbd1dbc09..1fec7f363f 100644 --- a/qtbase/src/3rdparty/zlib/src/inffast.c +++ b/qtbase/src/3rdparty/zlib/src/inffast.c @@ -70,7 +70,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ code const FAR *dcode; /* local strm->distcode */ unsigned lmask; /* mask for first level of length codes */ unsigned dmask; /* mask for first level of distance codes */ - code here; /* retrieved table entry */ + code const *here; /* retrieved table entry */ unsigned op; /* code bits, operation, extra bits, or */ /* window position, window bytes to copy */ unsigned len; /* match length, unused bytes */ @@ -107,20 +107,20 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = lcode[hold & lmask]; + here = lcode + (hold & lmask); dolen: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op == 0) { /* literal */ - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", here.val)); - *out++ = (unsigned char)(here.val); + "inflate: literal 0x%02x\n", here->val)); + *out++ = (unsigned char)(here->val); } else if (op & 16) { /* length base */ - len = (unsigned)(here.val); + len = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (op) { if (bits < op) { @@ -138,14 +138,14 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ hold += (unsigned long)(*in++) << bits; bits += 8; } - here = dcode[hold & dmask]; + here = dcode + (hold & dmask); dodist: - op = (unsigned)(here.bits); + op = (unsigned)(here->bits); hold >>= op; bits -= op; - op = (unsigned)(here.op); + op = (unsigned)(here->op); if (op & 16) { /* distance base */ - dist = (unsigned)(here.val); + dist = (unsigned)(here->val); op &= 15; /* number of extra bits */ if (bits < op) { hold += (unsigned long)(*in++) << bits; @@ -264,7 +264,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level distance code */ - here = dcode[here.val + (hold & ((1U << op) - 1))]; + here = dcode + here->val + (hold & ((1U << op) - 1)); goto dodist; } else { @@ -274,7 +274,7 @@ unsigned start; /* inflate()'s starting value for strm->avail_out */ } } else if ((op & 64) == 0) { /* 2nd level length code */ - here = lcode[here.val + (hold & ((1U << op) - 1))]; + here = lcode + here->val + (hold & ((1U << op) - 1)); goto dolen; } else if (op & 32) { /* end-of-block */ diff --git a/qtbase/src/3rdparty/zlib/src/inflate.c b/qtbase/src/3rdparty/zlib/src/inflate.c index ac333e8c2e..7be8c63662 100644 --- a/qtbase/src/3rdparty/zlib/src/inflate.c +++ b/qtbase/src/3rdparty/zlib/src/inflate.c @@ -1,5 +1,5 @@ /* inflate.c -- zlib decompression - * Copyright (C) 1995-2016 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -130,6 +130,7 @@ z_streamp strm; state->mode = HEAD; state->last = 0; state->havedict = 0; + state->flags = -1; state->dmax = 32768U; state->head = Z_NULL; state->hold = 0; @@ -447,10 +448,10 @@ unsigned copy; /* check function to use adler32() for zlib or crc32() for gzip */ #ifdef GUNZIP -# define UPDATE(check, buf, len) \ +# define UPDATE_CHECK(check, buf, len) \ (state->flags ? crc32(check, buf, len) : adler32(check, buf, len)) #else -# define UPDATE(check, buf, len) adler32(check, buf, len) +# define UPDATE_CHECK(check, buf, len) adler32(check, buf, len) #endif /* check macros for header crc */ @@ -670,7 +671,6 @@ int flush; state->mode = FLAGS; break; } - state->flags = 0; /* expect zlib header */ if (state->head != Z_NULL) state->head->done = -1; if (!(state->wrap & 1) || /* check if zlib header allowed */ @@ -697,6 +697,7 @@ int flush; break; } state->dmax = 1U << len; + state->flags = 0; /* indicate zlib header */ Tracev((stderr, "inflate: zlib header ok\n")); strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = hold & 0x200 ? DICTID : TYPE; @@ -722,6 +723,7 @@ int flush; CRC2(state->check, hold); INITBITS(); state->mode = TIME; + /* fallthrough */ case TIME: NEEDBITS(32); if (state->head != Z_NULL) @@ -730,6 +732,7 @@ int flush; CRC4(state->check, hold); INITBITS(); state->mode = OS; + /* fallthrough */ case OS: NEEDBITS(16); if (state->head != Z_NULL) { @@ -740,6 +743,7 @@ int flush; CRC2(state->check, hold); INITBITS(); state->mode = EXLEN; + /* fallthrough */ case EXLEN: if (state->flags & 0x0400) { NEEDBITS(16); @@ -753,6 +757,7 @@ int flush; else if (state->head != Z_NULL) state->head->extra = Z_NULL; state->mode = EXTRA; + /* fallthrough */ case EXTRA: if (state->flags & 0x0400) { copy = state->length; @@ -775,6 +780,7 @@ int flush; } state->length = 0; state->mode = NAME; + /* fallthrough */ case NAME: if (state->flags & 0x0800) { if (have == 0) goto inf_leave; @@ -796,6 +802,7 @@ int flush; state->head->name = Z_NULL; state->length = 0; state->mode = COMMENT; + /* fallthrough */ case COMMENT: if (state->flags & 0x1000) { if (have == 0) goto inf_leave; @@ -816,6 +823,7 @@ int flush; else if (state->head != Z_NULL) state->head->comment = Z_NULL; state->mode = HCRC; + /* fallthrough */ case HCRC: if (state->flags & 0x0200) { NEEDBITS(16); @@ -839,6 +847,7 @@ int flush; strm->adler = state->check = ZSWAP32(hold); INITBITS(); state->mode = DICT; + /* fallthrough */ case DICT: if (state->havedict == 0) { RESTORE(); @@ -846,8 +855,10 @@ int flush; } strm->adler = state->check = adler32(0L, Z_NULL, 0); state->mode = TYPE; + /* fallthrough */ case TYPE: if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave; + /* fallthrough */ case TYPEDO: if (state->last) { BYTEBITS(); @@ -898,8 +909,10 @@ int flush; INITBITS(); state->mode = COPY_; if (flush == Z_TREES) goto inf_leave; + /* fallthrough */ case COPY_: state->mode = COPY; + /* fallthrough */ case COPY: copy = state->length; if (copy) { @@ -935,6 +948,7 @@ int flush; Tracev((stderr, "inflate: table sizes ok\n")); state->have = 0; state->mode = LENLENS; + /* fallthrough */ case LENLENS: while (state->have < state->ncode) { NEEDBITS(3); @@ -956,6 +970,7 @@ int flush; Tracev((stderr, "inflate: code lengths ok\n")); state->have = 0; state->mode = CODELENS; + /* fallthrough */ case CODELENS: while (state->have < state->nlen + state->ndist) { for (;;) { @@ -1039,8 +1054,10 @@ int flush; Tracev((stderr, "inflate: codes ok\n")); state->mode = LEN_; if (flush == Z_TREES) goto inf_leave; + /* fallthrough */ case LEN_: state->mode = LEN; + /* fallthrough */ case LEN: if (have >= 6 && left >= 258) { RESTORE(); @@ -1090,6 +1107,7 @@ int flush; } state->extra = (unsigned)(here.op) & 15; state->mode = LENEXT; + /* fallthrough */ case LENEXT: if (state->extra) { NEEDBITS(state->extra); @@ -1100,6 +1118,7 @@ int flush; Tracevv((stderr, "inflate: length %u\n", state->length)); state->was = state->length; state->mode = DIST; + /* fallthrough */ case DIST: for (;;) { here = state->distcode[BITS(state->distbits)]; @@ -1127,6 +1146,7 @@ int flush; state->offset = (unsigned)here.val; state->extra = (unsigned)(here.op) & 15; state->mode = DISTEXT; + /* fallthrough */ case DISTEXT: if (state->extra) { NEEDBITS(state->extra); @@ -1143,6 +1163,7 @@ int flush; #endif Tracevv((stderr, "inflate: distance %u\n", state->offset)); state->mode = MATCH; + /* fallthrough */ case MATCH: if (left == 0) goto inf_leave; copy = out - left; @@ -1202,7 +1223,7 @@ int flush; state->total += out; if ((state->wrap & 4) && out) strm->adler = state->check = - UPDATE(state->check, put - out, out); + UPDATE_CHECK(state->check, put - out, out); out = left; if ((state->wrap & 4) && ( #ifdef GUNZIP @@ -1218,10 +1239,11 @@ int flush; } #ifdef GUNZIP state->mode = LENGTH; + /* fallthrough */ case LENGTH: if (state->wrap && state->flags) { NEEDBITS(32); - if (hold != (state->total & 0xffffffffUL)) { + if ((state->wrap & 4) && hold != (state->total & 0xffffffff)) { strm->msg = (char *)"incorrect length check"; state->mode = BAD; break; @@ -1231,6 +1253,7 @@ int flush; } #endif state->mode = DONE; + /* fallthrough */ case DONE: ret = Z_STREAM_END; goto inf_leave; @@ -1240,6 +1263,7 @@ int flush; case MEM: return Z_MEM_ERROR; case SYNC: + /* fallthrough */ default: return Z_STREAM_ERROR; } @@ -1265,7 +1289,7 @@ int flush; state->total += out; if ((state->wrap & 4) && out) strm->adler = state->check = - UPDATE(state->check, strm->next_out - out, out); + UPDATE_CHECK(state->check, strm->next_out - out, out); strm->data_type = (int)state->bits + (state->last ? 64 : 0) + (state->mode == TYPE ? 128 : 0) + (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0); @@ -1401,6 +1425,7 @@ int ZEXPORT inflateSync(strm) z_streamp strm; { unsigned len; /* number of bytes to look at or looked at */ + int flags; /* temporary to save header status */ unsigned long in, out; /* temporary to save total_in and total_out */ unsigned char buf[4]; /* to restore bit buffer to byte string */ struct inflate_state FAR *state; @@ -1433,9 +1458,15 @@ z_streamp strm; /* return no joy or set up to restart inflate() on a new block */ if (state->have != 4) return Z_DATA_ERROR; + if (state->flags == -1) + state->wrap = 0; /* if no header yet, treat as raw */ + else + state->wrap &= ~4; /* no point in computing a check value now */ + flags = state->flags; in = strm->total_in; out = strm->total_out; inflateReset(strm); strm->total_in = in; strm->total_out = out; + state->flags = flags; state->mode = TYPE; return Z_OK; } @@ -1531,7 +1562,7 @@ int check; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; state = (struct inflate_state FAR *)strm->state; - if (check) + if (check && state->wrap) state->wrap |= 4; else state->wrap &= ~4; diff --git a/qtbase/src/3rdparty/zlib/src/inflate.h b/qtbase/src/3rdparty/zlib/src/inflate.h index a46cce6b6d..f127b6b1fa 100644 --- a/qtbase/src/3rdparty/zlib/src/inflate.h +++ b/qtbase/src/3rdparty/zlib/src/inflate.h @@ -1,5 +1,5 @@ /* inflate.h -- internal inflate state definition - * Copyright (C) 1995-2016 Mark Adler + * Copyright (C) 1995-2019 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -86,7 +86,8 @@ struct inflate_state { int wrap; /* bit 0 true for zlib, bit 1 true for gzip, bit 2 true to validate check value */ int havedict; /* true if dictionary provided */ - int flags; /* gzip header method and flags (0 if zlib) */ + int flags; /* gzip header method and flags, 0 if zlib, or + -1 if raw or no header yet */ unsigned dmax; /* zlib header max distance (INFLATE_STRICT) */ unsigned long check; /* protected copy of check value */ unsigned long total; /* protected copy of output count */ diff --git a/qtbase/src/3rdparty/zlib/src/inftrees.c b/qtbase/src/3rdparty/zlib/src/inftrees.c index 2ea08fc13e..09462a740b 100644 --- a/qtbase/src/3rdparty/zlib/src/inftrees.c +++ b/qtbase/src/3rdparty/zlib/src/inftrees.c @@ -1,5 +1,5 @@ /* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2017 Mark Adler + * Copyright (C) 1995-2022 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -9,7 +9,7 @@ #define MAXBITS 15 const char inflate_copyright[] = - " inflate 1.2.11 Copyright 1995-2017 Mark Adler "; + " inflate 1.2.12 Copyright 1995-2022 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -62,7 +62,7 @@ unsigned short FAR *work; 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 77, 202}; + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 199, 202}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, diff --git a/qtbase/src/3rdparty/zlib/src/trees.c b/qtbase/src/3rdparty/zlib/src/trees.c index 50cf4b4571..f73fd99c37 100644 --- a/qtbase/src/3rdparty/zlib/src/trees.c +++ b/qtbase/src/3rdparty/zlib/src/trees.c @@ -1,5 +1,5 @@ /* trees.c -- output deflated data using Huffman coding - * Copyright (C) 1995-2017 Jean-loup Gailly + * Copyright (C) 1995-2021 Jean-loup Gailly * detect_data_type() function provided freely by Cosmin Truta, 2006 * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -149,7 +149,7 @@ local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, local void compress_block OF((deflate_state *s, const ct_data *ltree, const ct_data *dtree)); local int detect_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned value, int length)); +local unsigned bi_reverse OF((unsigned code, int len)); local void bi_windup OF((deflate_state *s)); local void bi_flush OF((deflate_state *s)); @@ -416,7 +416,7 @@ local void init_block(s) s->dyn_ltree[END_BLOCK].Freq = 1; s->opt_len = s->static_len = 0L; - s->last_lit = s->matches = 0; + s->sym_next = s->matches = 0; } #define SMALLEST 1 @@ -870,7 +870,8 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) bi_windup(s); /* align on byte boundary */ put_short(s, (ush)stored_len); put_short(s, (ush)~stored_len); - zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); + if (stored_len) + zmemcpy(s->pending_buf + s->pending, (Bytef *)buf, stored_len); s->pending += stored_len; #ifdef ZLIB_DEBUG s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; @@ -947,7 +948,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, - s->last_lit)); + s->sym_next / 3)); if (static_lenb <= opt_lenb) opt_lenb = static_lenb; @@ -1016,8 +1017,9 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc) unsigned dist; /* distance of matched string */ unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ { - s->d_buf[s->last_lit] = (ush)dist; - s->l_buf[s->last_lit++] = (uch)lc; + s->sym_buf[s->sym_next++] = dist; + s->sym_buf[s->sym_next++] = dist >> 8; + s->sym_buf[s->sym_next++] = lc; if (dist == 0) { /* lc is the unmatched char */ s->dyn_ltree[lc].Freq++; @@ -1032,30 +1034,7 @@ int ZLIB_INTERNAL _tr_tally (s, dist, lc) s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; s->dyn_dtree[d_code(dist)].Freq++; } - -#ifdef TRUNCATE_BLOCK - /* Try to guess if it is profitable to stop the current block here */ - if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { - /* Compute an upper bound for the compressed length */ - ulg out_length = (ulg)s->last_lit*8L; - ulg in_length = (ulg)((long)s->strstart - s->block_start); - int dcode; - for (dcode = 0; dcode < D_CODES; dcode++) { - out_length += (ulg)s->dyn_dtree[dcode].Freq * - (5L+extra_dbits[dcode]); - } - out_length >>= 3; - Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", - s->last_lit, in_length, out_length, - 100L - out_length*100L/in_length)); - if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; - } -#endif - return (s->last_lit == s->lit_bufsize-1); - /* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ + return (s->sym_next == s->sym_end); } /* =========================================================================== @@ -1068,13 +1047,14 @@ local void compress_block(s, ltree, dtree) { unsigned dist; /* distance of matched string */ int lc; /* match length or unmatched char (if dist == 0) */ - unsigned lx = 0; /* running index in l_buf */ + unsigned sx = 0; /* running index in sym_buf */ unsigned code; /* the code to send */ int extra; /* number of extra bits to send */ - if (s->last_lit != 0) do { - dist = s->d_buf[lx]; - lc = s->l_buf[lx++]; + if (s->sym_next != 0) do { + dist = s->sym_buf[sx++] & 0xff; + dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8; + lc = s->sym_buf[sx++]; if (dist == 0) { send_code(s, lc, ltree); /* send a literal byte */ Tracecv(isgraph(lc), (stderr," '%c' ", lc)); @@ -1099,11 +1079,10 @@ local void compress_block(s, ltree, dtree) } } /* literal or match pair ? */ - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx, - "pendingBuf overflow"); + /* Check that the overlay between pending_buf and sym_buf is ok: */ + Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow"); - } while (lx < s->last_lit); + } while (sx < s->sym_next); send_code(s, END_BLOCK, ltree); } @@ -1112,9 +1091,9 @@ local void compress_block(s, ltree, dtree) * Check if the data type is TEXT or BINARY, using the following algorithm: * - TEXT if the two conditions below are satisfied: * a) There are no non-portable control characters belonging to the - * "black list" (0..6, 14..25, 28..31). + * "block list" (0..6, 14..25, 28..31). * b) There is at least one printable character belonging to the - * "white list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). * - BINARY otherwise. * - The following partially-portable control characters form a * "gray list" that is ignored in this detection algorithm: @@ -1124,19 +1103,19 @@ local void compress_block(s, ltree, dtree) local int detect_data_type(s) deflate_state *s; { - /* black_mask is the bit mask of black-listed bytes + /* block_mask is the bit mask of block-listed bytes * set bits 0..6, 14..25, and 28..31 * 0xf3ffc07f = binary 11110011111111111100000001111111 */ - unsigned long black_mask = 0xf3ffc07fUL; + unsigned long block_mask = 0xf3ffc07fUL; int n; - /* Check for non-textual ("black-listed") bytes. */ - for (n = 0; n <= 31; n++, black_mask >>= 1) - if ((black_mask & 1) && (s->dyn_ltree[n].Freq != 0)) + /* Check for non-textual ("block-listed") bytes. */ + for (n = 0; n <= 31; n++, block_mask >>= 1) + if ((block_mask & 1) && (s->dyn_ltree[n].Freq != 0)) return Z_BINARY; - /* Check for textual ("white-listed") bytes. */ + /* Check for textual ("allow-listed") bytes. */ if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 || s->dyn_ltree[13].Freq != 0) return Z_TEXT; @@ -1144,7 +1123,7 @@ local int detect_data_type(s) if (s->dyn_ltree[n].Freq != 0) return Z_TEXT; - /* There are no "black-listed" or "white-listed" bytes: + /* There are no "block-listed" or "allow-listed" bytes: * this stream either is empty or has tolerated ("gray-listed") bytes only. */ return Z_BINARY; diff --git a/qtbase/src/3rdparty/zlib/src/zlib.h b/qtbase/src/3rdparty/zlib/src/zlib.h index 32c2ce0957..84087ef332 100644 --- a/qtbase/src/3rdparty/zlib/src/zlib.h +++ b/qtbase/src/3rdparty/zlib/src/zlib.h @@ -1,7 +1,7 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.11, January 15th, 2017 + version 1.2.12, March 11th, 2022 - Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -41,11 +41,11 @@ extern "C" { #endif -#define ZLIB_VERSION "1.2.11 (Qt)" -#define ZLIB_VERNUM 0x12b0f +#define ZLIB_VERSION "1.2.12 (Qt)" +#define ZLIB_VERNUM 0x12c0 #define ZLIB_VER_MAJOR 1 #define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 11 +#define ZLIB_VER_REVISION 12 #define ZLIB_VER_SUBREVISION 0 /* @@ -547,8 +547,7 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, int strategy)); This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by the - caller. + fields zalloc, zfree and opaque must be initialized before by the caller. The method parameter is the compression method. It must be Z_DEFLATED in this version of the library. @@ -716,11 +715,12 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, used to switch between compression and straight copy of the input data, or to switch to a different kind of input data requiring a different strategy. If the compression approach (which is a function of the level) or the - strategy is changed, and if any input has been consumed in a previous - deflate() call, then the input available so far is compressed with the old - level and strategy using deflate(strm, Z_BLOCK). There are three approaches - for the compression levels 0, 1..3, and 4..9 respectively. The new level - and strategy will take effect at the next call of deflate(). + strategy is changed, and if there have been any deflate() calls since the + state was initialized or reset, then the input available so far is + compressed with the old level and strategy using deflate(strm, Z_BLOCK). + There are three approaches for the compression levels 0, 1..3, and 4..9 + respectively. The new level and strategy will take effect at the next call + of deflate(). If a deflate(strm, Z_BLOCK) is performed by deflateParams(), and it does not have enough output space to complete, then the parameter change will not @@ -869,9 +869,11 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, detection, or add 16 to decode only the gzip format (the zlib format will return a Z_DATA_ERROR). If a gzip stream is being decoded, strm->adler is a CRC-32 instead of an Adler-32. Unlike the gunzip utility and gzread() (see - below), inflate() will not automatically decode concatenated gzip streams. - inflate() will return Z_STREAM_END at the end of the gzip stream. The state - would need to be reset to continue decoding a subsequent gzip stream. + below), inflate() will *not* automatically decode concatenated gzip members. + inflate() will return Z_STREAM_END at the end of the gzip member. The state + would need to be reset to continue decoding a subsequent gzip member. This + *must* be done if there is more data after a gzip member, in order for the + decompression to be compliant with the gzip standard (RFC 1952). inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -1306,14 +1308,14 @@ typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); - Opens a gzip (.gz) file for reading or writing. The mode parameter is as - in fopen ("rb" or "wb") but can also include a compression level ("wb9") or - a strategy: 'f' for filtered data as in "wb6f", 'h' for Huffman-only - compression as in "wb1h", 'R' for run-length encoding as in "wb1R", or 'F' - for fixed code compression as in "wb9F". (See the description of - deflateInit2 for more information about the strategy parameter.) 'T' will - request transparent writing or appending with no compression and not using - the gzip format. + Open the gzip (.gz) file at path for reading and decompressing, or + compressing and writing. The mode parameter is as in fopen ("rb" or "wb") + but can also include a compression level ("wb9") or a strategy: 'f' for + filtered data as in "wb6f", 'h' for Huffman-only compression as in "wb1h", + 'R' for run-length encoding as in "wb1R", or 'F' for fixed code compression + as in "wb9F". (See the description of deflateInit2 for more information + about the strategy parameter.) 'T' will request transparent writing or + appending with no compression and not using the gzip format. "a" can be used instead of "w" to request that the gzip stream that will be written be appended to the file. "+" will result in an error, since @@ -1343,9 +1345,9 @@ ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); /* - gzdopen associates a gzFile with the file descriptor fd. File descriptors - are obtained from calls like open, dup, creat, pipe or fileno (if the file - has been previously opened with fopen). The mode parameter is as in gzopen. + Associate a gzFile with the file descriptor fd. File descriptors are + obtained from calls like open, dup, creat, pipe or fileno (if the file has + been previously opened with fopen). The mode parameter is as in gzopen. The next call of gzclose on the returned gzFile will also close the file descriptor fd, just like fclose(fdopen(fd, mode)) closes the file descriptor @@ -1366,13 +1368,13 @@ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); /* - Set the internal buffer size used by this library's functions. The - default buffer size is 8192 bytes. This function must be called after - gzopen() or gzdopen(), and before any other calls that read or write the - file. The buffer memory allocation is always deferred to the first read or - write. Three times that size in buffer space is allocated. A larger buffer - size of, for example, 64K or 128K bytes will noticeably increase the speed - of decompression (reading). + Set the internal buffer size used by this library's functions for file to + size. The default buffer size is 8192 bytes. This function must be called + after gzopen() or gzdopen(), and before any other calls that read or write + the file. The buffer memory allocation is always deferred to the first read + or write. Three times that size in buffer space is allocated. A larger + buffer size of, for example, 64K or 128K bytes will noticeably increase the + speed of decompression (reading). The new buffer size also affects the maximum length for gzprintf(). @@ -1382,9 +1384,9 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); /* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. Previously provided - data is flushed before the parameter change. + Dynamically update the compression level and strategy for file. See the + description of deflateInit2 for the meaning of these parameters. Previously + provided data is flushed before applying the parameter changes. gzsetparams returns Z_OK if success, Z_STREAM_ERROR if the file was not opened for writing, Z_ERRNO if there is an error writing the flushed data, @@ -1393,7 +1395,7 @@ ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); /* - Reads the given number of uncompressed bytes from the compressed file. If + Read and decompress up to len uncompressed bytes from file into buf. If the input file is not in gzip format, gzread copies the given number of bytes into the buffer directly from the file. @@ -1424,11 +1426,11 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, gzFile file)); /* - Read up to nitems items of size size from file to buf, otherwise operating - as gzread() does. This duplicates the interface of stdio's fread(), with - size_t request and return types. If the library defines size_t, then - z_size_t is identical to size_t. If not, then z_size_t is an unsigned - integer type that can contain a pointer. + Read and decompress up to nitems items of size size from file into buf, + otherwise operating as gzread() does. This duplicates the interface of + stdio's fread(), with size_t request and return types. If the library + defines size_t, then z_size_t is identical to size_t. If not, then z_size_t + is an unsigned integer type that can contain a pointer. gzfread() returns the number of full items read of size size, or zero if the end of the file was reached and a full item could not be read, or if @@ -1447,18 +1449,16 @@ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, file, reseting and retrying on end-of-file, when size is not 1. */ -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, - voidpc buf, unsigned len)); +ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len)); /* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes written or 0 in case of - error. + Compress and write the len uncompressed bytes at buf to file. gzwrite + returns the number of uncompressed bytes written or 0 in case of error. */ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, z_size_t nitems, gzFile file)); /* - gzfwrite() writes nitems items of size size from buf to file, duplicating + Compress and write nitems items of size size from buf to file, duplicating the interface of stdio's fwrite(), with size_t request and return types. If the library defines size_t, then z_size_t is identical to size_t. If not, then z_size_t is an unsigned integer type that can contain a pointer. @@ -1471,22 +1471,22 @@ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); /* - Converts, formats, and writes the arguments to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of + Convert, format, compress, and write the arguments (...) to file under + control of the string format, as in fprintf. gzprintf returns the number of uncompressed bytes actually written, or a negative zlib error code in case of error. The number of uncompressed bytes written is limited to 8191, or one less than the buffer size given to gzbuffer(). The caller should assure that this limit is not exceeded. If it is exceeded, then gzprintf() will return an error (0) with nothing written. In this case, there may also be a buffer overflow with unpredictable consequences, which is possible only if - zlib was compiled with the insecure functions sprintf() or vsprintf() + zlib was compiled with the insecure functions sprintf() or vsprintf(), because the secure snprintf() or vsnprintf() functions were not available. This can be determined using zlibCompileFlags(). */ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); /* - Writes the given null-terminated string to the compressed file, excluding + Compress and write the given null-terminated string s to file, excluding the terminating null character. gzputs returns the number of characters written, or -1 in case of error. @@ -1494,11 +1494,12 @@ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); /* - Reads bytes from the compressed file until len-1 characters are read, or a - newline character is read and transferred to buf, or an end-of-file - condition is encountered. If any characters are read or if len == 1, the - string is terminated with a null character. If no characters are read due - to an end-of-file or len < 1, then the buffer is left untouched. + Read and decompress bytes from file into buf, until len-1 characters are + read, or until a newline character is read and transferred to buf, or an + end-of-file condition is encountered. If any characters are read or if len + is one, the string is terminated with a null character. If no characters + are read due to an end-of-file or len is less than one, then the buffer is + left untouched. gzgets returns buf which is a null-terminated string, or it returns NULL for end-of-file or in case of error. If there was an error, the contents at @@ -1507,13 +1508,13 @@ ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); /* - Writes c, converted to an unsigned char, into the compressed file. gzputc + Compress and write c, converted to an unsigned char, into file. gzputc returns the value that was written, or -1 in case of error. */ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); /* - Reads one byte from the compressed file. gzgetc returns this byte or -1 + Read and decompress one byte from file. gzgetc returns this byte or -1 in case of end of file or error. This is implemented as a macro for speed. As such, it does not do all of the checking the other functions do. I.e. it does not check to see if file is NULL, nor whether the structure file @@ -1522,8 +1523,8 @@ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); /* - Push one character back onto the stream to be read as the first character - on the next read. At least one character of push-back is allowed. + Push c back onto the stream for file to be read as the first character on + the next read. At least one character of push-back is always allowed. gzungetc() returns the character pushed, or -1 on failure. gzungetc() will fail if c is -1, and may fail if a character has been pushed but not read yet. If gzungetc is used immediately after gzopen or gzdopen, at least the @@ -1534,9 +1535,9 @@ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); /* - Flushes all pending output into the compressed file. The parameter flush - is as in the deflate() function. The return value is the zlib error number - (see function gzerror below). gzflush is only permitted when writing. + Flush all pending output to file. The parameter flush is as in the + deflate() function. The return value is the zlib error number (see function + gzerror below). gzflush is only permitted when writing. If the flush parameter is Z_FINISH, the remaining data is written and the gzip stream is completed in the output. If gzwrite() is called again, a new @@ -1551,8 +1552,8 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the + Set the starting position to offset relative to whence for the next gzread + or gzwrite on file. The offset represents a number of bytes in the uncompressed data stream. The whence parameter is defined as in lseek(2); the value SEEK_END is not supported. @@ -1569,18 +1570,18 @@ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); /* - Rewinds the given file. This function is supported only for reading. + Rewind file. This function is supported only for reading. - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) + gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET). */ /* ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); - Returns the starting position for the next gzread or gzwrite on the given - compressed file. This position represents a number of bytes in the - uncompressed data stream, and is zero when starting, even if appending or - reading a gzip stream from the middle of a file using gzdopen(). + Return the starting position for the next gzread or gzwrite on file. + This position represents a number of bytes in the uncompressed data stream, + and is zero when starting, even if appending or reading a gzip stream from + the middle of a file using gzdopen(). gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) */ @@ -1588,22 +1589,22 @@ ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); /* ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); - Returns the current offset in the file being read or written. This offset - includes the count of bytes that precede the gzip stream, for example when - appending or when using gzdopen() for reading. When reading, the offset - does not include as yet unused buffered input. This information can be used - for a progress indicator. On error, gzoffset() returns -1. + Return the current compressed (actual) read or write offset of file. This + offset includes the count of bytes that precede the gzip stream, for example + when appending or when using gzdopen() for reading. When reading, the + offset does not include as yet unused buffered input. This information can + be used for a progress indicator. On error, gzoffset() returns -1. */ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); /* - Returns true (1) if the end-of-file indicator has been set while reading, - false (0) otherwise. Note that the end-of-file indicator is set only if the - read tried to go past the end of the input, but came up short. Therefore, - just like feof(), gzeof() may return false even if there is no more data to - read, in the event that the last read request was for the exact number of - bytes remaining in the input file. This will happen if the input file size - is an exact multiple of the buffer size. + Return true (1) if the end-of-file indicator for file has been set while + reading, false (0) otherwise. Note that the end-of-file indicator is set + only if the read tried to go past the end of the input, but came up short. + Therefore, just like feof(), gzeof() may return false even if there is no + more data to read, in the event that the last read request was for the exact + number of bytes remaining in the input file. This will happen if the input + file size is an exact multiple of the buffer size. If gzeof() returns true, then the read functions will return no more data, unless the end-of-file indicator is reset by gzclearerr() and the input file @@ -1612,7 +1613,7 @@ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); /* - Returns true (1) if file is being copied directly while reading, or false + Return true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. If the input file is empty, gzdirect() will return true, since the input @@ -1633,8 +1634,8 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); ZEXTERN int ZEXPORT gzclose OF((gzFile file)); /* - Flushes all pending output if necessary, closes the compressed file and - deallocates the (de)compression state. Note that once file is closed, you + Flush all pending output for file, if necessary, close file and + deallocate the (de)compression state. Note that once file is closed, you cannot call gzerror with file, since its structures have been deallocated. gzclose must not be called more than once on the same file, just as free must not be called more than once on the same allocation. @@ -1658,10 +1659,10 @@ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); /* - Returns the error message for the last error which occurred on the given - compressed file. errnum is set to zlib error number. If an error occurred - in the file system and not in the compression library, errnum is set to - Z_ERRNO and the application may consult errno to get the exact error code. + Return the error message for the last error which occurred on file. + errnum is set to zlib error number. If an error occurred in the file system + and not in the compression library, errnum is set to Z_ERRNO and the + application may consult errno to get the exact error code. The application must not modify the returned string. Future calls to this function may invalidate the previously returned string. If file is @@ -1674,7 +1675,7 @@ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); /* - Clears the error and end-of-file flags for file. This is analogous to the + Clear the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip file that is being written concurrently. */ @@ -1692,8 +1693,9 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is Z_NULL, this function returns the - required initial value for the checksum. + return the updated checksum. An Adler-32 value is in the range of a 32-bit + unsigned integer. If buf is Z_NULL, this function returns the required + initial value for the checksum. An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed much faster. @@ -1726,12 +1728,13 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, negative, the result has no meaning or utility. */ -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the - updated CRC-32. If buf is Z_NULL, this function returns the required - initial value for the crc. Pre- and post-conditioning (one's complement) is - performed within this function so it shouldn't be done by the application. + updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer. + If buf is Z_NULL, this function returns the required initial value for the + crc. Pre- and post-conditioning (one's complement) is performed within this + function so it shouldn't be done by the application. Usage example: @@ -1743,7 +1746,7 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, +ZEXTERN uLong ZEXPORT crc32_z OF((uLong crc, const Bytef *buf, z_size_t len)); /* Same as crc32(), but with a size_t length. @@ -1759,6 +1762,20 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); len2. */ +/* +ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t len2)); + + Return the operator corresponding to length len2, to be used with + crc32_combine_op(). +*/ + +ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); +/* + Give the same result as crc32_combine(), using op in place of len2. op is + is generated from len2 by crc32_combine_gen(). This will be faster than + crc32_combine() if the generated op is used more than once. +*/ + /* various hacks, don't look :) */ @@ -1846,6 +1863,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off64_t)); #endif #if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) @@ -1856,6 +1874,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define z_gzoffset z_gzoffset64 # define z_adler32_combine z_adler32_combine64 # define z_crc32_combine z_crc32_combine64 +# define z_crc32_combine_gen z_crc32_combine_gen64 # else # define gzopen gzopen64 # define gzseek gzseek64 @@ -1863,6 +1882,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define gzoffset gzoffset64 # define adler32_combine adler32_combine64 # define crc32_combine crc32_combine64 +# define crc32_combine_gen crc32_combine_gen64 # endif # ifndef Z_LARGE64 ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); @@ -1871,6 +1891,7 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t)); # endif #else ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); @@ -1879,12 +1900,14 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); #endif #else /* Z_SOLO */ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); + ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); #endif /* !Z_SOLO */ @@ -1897,7 +1920,7 @@ ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF ((z_streamp)); ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); -#if (defined(_WIN32) || defined(__CYGWIN__)) && !defined(Z_SOLO) +#if defined(_WIN32) && !defined(Z_SOLO) ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, const char *mode)); #endif diff --git a/qtbase/src/3rdparty/zlib/src/zutil.c b/qtbase/src/3rdparty/zlib/src/zutil.c index a76c6b0c7e..dcab28a0d5 100644 --- a/qtbase/src/3rdparty/zlib/src/zutil.c +++ b/qtbase/src/3rdparty/zlib/src/zutil.c @@ -136,8 +136,8 @@ const char * ZEXPORT zError(err) return ERR_MSG(err); } -#if defined(_WIN32_WCE) - /* The Microsoft C Run-Time Library for Windows CE doesn't have +#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 + /* The older Microsoft C Run-Time Library for Windows CE doesn't have * errno. We define it as a global variable to simplify porting. * Its value is always 0 and should not be used. */ diff --git a/qtbase/src/3rdparty/zlib/src/zutil.h b/qtbase/src/3rdparty/zlib/src/zutil.h index 38066137fc..0d78483358 100644 --- a/qtbase/src/3rdparty/zlib/src/zutil.h +++ b/qtbase/src/3rdparty/zlib/src/zutil.h @@ -1,5 +1,5 @@ /* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-2016 Jean-loup Gailly, Mark Adler + * Copyright (C) 1995-2022 Jean-loup Gailly, Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -21,7 +21,6 @@ #define HAVE_HIDDEN #endif - #ifdef HAVE_HIDDEN # define ZLIB_INTERNAL __attribute__((visibility ("hidden"))) #else @@ -38,10 +37,6 @@ # include #endif -#ifdef Z_SOLO - typedef long ptrdiff_t; /* guess -- will be caught if guess is wrong */ -#endif - #ifndef local # define local static #endif @@ -55,6 +50,17 @@ typedef unsigned short ush; typedef ush FAR ushf; typedef unsigned long ulg; +#if !defined(Z_U8) && !defined(Z_SOLO) && defined(STDC) +# include +# if (ULONG_MAX == 0xffffffffffffffff) +# define Z_U8 unsigned long +# elif (ULLONG_MAX == 0xffffffffffffffff) +# define Z_U8 unsigned long long +# elif (UINT_MAX == 0xffffffffffffffff) +# define Z_U8 unsigned +# endif +#endif + extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ /* (size given to avoid silly warnings with Visual C++) */ @@ -184,10 +190,6 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ #if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX # if defined(_WIN32_WCE) # define fdopen(fd,mode) NULL /* No fdopen() */ -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif # else # define fdopen(fd,type) _fdopen(fd,type) # endif diff --git a/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java index a15a06a302..6aa935c2b1 100644 --- a/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -263,7 +263,7 @@ public class QtActivityDelegate }, 5); } - public void showSoftwareKeyboard(final int x, final int y, final int width, final int height, final int editorHeight, final int inputHints, final int enterKeyType) + public void showSoftwareKeyboard(final int x, final int y, final int width, final int height, final int inputHints, final int enterKeyType) { if (m_imm == null) return; @@ -285,7 +285,7 @@ public class QtActivityDelegate if (softInputIsHidden) return; } else { - if (editorHeight > visibleHeight) + if (height > visibleHeight) m_activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); else m_activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_UNCHANGED | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); @@ -402,12 +402,12 @@ public class QtActivityDelegate if (metrics.widthPixels > metrics.heightPixels) { // landscape if (m_landscapeKeyboardHeight != r.bottom) { m_landscapeKeyboardHeight = r.bottom; - showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); + showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); } } else { if (m_portraitKeyboardHeight != r.bottom) { m_portraitKeyboardHeight = r.bottom; - showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); + showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); } } } else { @@ -558,13 +558,6 @@ public class QtActivityDelegate } } - public void updateInputItemRectangle(final int x, final int y, final int w, final int h) - { - if (m_layout == null || m_editText == null || !m_keyboardIsVisible) - return; - m_layout.setLayoutParams(m_editText, new QtLayout.LayoutParams(w, h, x, y), true); - } - public boolean loadApplication(Activity activity, ClassLoader classLoader, Bundle loaderParams) { /// check parameters integrity diff --git a/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index dbd356f7a5..23beccbf74 100644 --- a/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/qtbase/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -114,6 +114,7 @@ public class QtNative public static QtThread m_qtThread = new QtThread(); private static HashMap m_cachedUris = new HashMap(); private static ArrayList m_knownDirs = new ArrayList(); + private static final String NoPermissionErrorMessage = "No permissions to open Uri"; private static final Runnable runPendingCppRunnablesRunnable = new Runnable() { @Override @@ -191,11 +192,10 @@ public class QtNative return iterUri; } - // Android 6 and earlier could still manage to open the file so we can return the - // parsed uri here - if (Build.VERSION.SDK_INT < 24) - return parsedUri; - return null; + // if we only have transient permissions on uri all the above will fail, + // but we will be able to read the file anyway, so continue with uri here anyway + // and check for SecurityExceptions later + return parsedUri; } catch (SecurityException e) { e.printStackTrace(); return null; @@ -242,7 +242,7 @@ public class QtNative int error = -1; if (uri == null) { - Log.e(QtTAG, "openFdForContentUrl(): No permissions to open Uri"); + Log.e(QtTAG, "openFdForContentUrl(): " + NoPermissionErrorMessage); return error; } @@ -252,12 +252,13 @@ public class QtNative return fdDesc.detachFd(); } catch (FileNotFoundException e) { e.printStackTrace(); - return error; } catch (IllegalArgumentException e) { Log.e(QtTAG, "openFdForContentUrl(): Invalid Uri"); e.printStackTrace(); - return error; + } catch (SecurityException e) { + Log.e(QtTAG, NoPermissionErrorMessage); } + return error; } public static long getSize(Context context, String contentUrl) @@ -268,7 +269,7 @@ public class QtNative uri = getUriWithValidPermission(context, contentUrl, "r"); if (uri == null) { - Log.e(QtTAG, "getSize(): No permissions to open Uri"); + Log.e(QtTAG, NoPermissionErrorMessage); return size; } else if (!m_cachedUris.containsKey(contentUrl)) { m_cachedUris.put(contentUrl, uri); @@ -286,12 +287,13 @@ public class QtNative } catch (IllegalArgumentException e) { Log.e(QtTAG, "getSize(): Invalid Uri"); e.printStackTrace(); - return size; } catch (UnsupportedOperationException e) { Log.e(QtTAG, "getSize(): Unsupported operation for given Uri"); e.printStackTrace(); - return size; + } catch (SecurityException e) { + Log.e(QtTAG, NoPermissionErrorMessage); } + return size; } public static boolean checkFileExists(Context context, String contentUrl) @@ -301,7 +303,7 @@ public class QtNative if (uri == null) uri = getUriWithValidPermission(context, contentUrl, "r"); if (uri == null) { - Log.e(QtTAG, "checkFileExists(): No permissions to open Uri"); + Log.e(QtTAG, NoPermissionErrorMessage); return exists; } else { if (!m_cachedUris.containsKey(contentUrl)) @@ -319,12 +321,13 @@ public class QtNative } catch (IllegalArgumentException e) { Log.e(QtTAG, "checkFileExists(): Invalid Uri"); e.printStackTrace(); - return exists; } catch (UnsupportedOperationException e) { Log.e(QtTAG, "checkFileExists(): Unsupported operation for given Uri"); e.printStackTrace(); - return false; + } catch (SecurityException e) { + Log.e(QtTAG, NoPermissionErrorMessage); } + return exists; } public static boolean checkIfWritable(Context context, String contentUrl) @@ -342,7 +345,7 @@ public class QtNative uri = getUriWithValidPermission(context, contentUrl, "r"); } if (uri == null) { - Log.e(QtTAG, "isDir(): No permissions to open Uri"); + Log.e(QtTAG, NoPermissionErrorMessage); return isDir; } else { if (!m_cachedUris.containsKey(contentUrl)) @@ -372,12 +375,13 @@ public class QtNative } catch (IllegalArgumentException e) { Log.e(QtTAG, "checkIfDir(): Invalid Uri"); e.printStackTrace(); - return false; } catch (UnsupportedOperationException e) { Log.e(QtTAG, "checkIfDir(): Unsupported operation for given Uri"); e.printStackTrace(); - return false; + } catch (SecurityException e) { + Log.e(QtTAG, NoPermissionErrorMessage); } + return false; } public static String[] listContentsFromTreeUri(Context context, String contentUrl) { @@ -878,25 +882,10 @@ public class QtNative }); } - private static void updateInputItemRectangle(final int x, - final int y, - final int w, - final int h) - { - runAction(new Runnable() { - @Override - public void run() { - m_activityDelegate.updateInputItemRectangle(x, y, w, h); - } - }); - } - - private static void showSoftwareKeyboard(final int x, final int y, final int width, final int height, - final int editorHeight, final int inputHints, final int enterKeyType) { @@ -904,7 +893,7 @@ public class QtNative @Override public void run() { if (m_activityDelegate != null) - m_activityDelegate.showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); + m_activityDelegate.showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); } }); } diff --git a/qtbase/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java b/qtbase/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java index b27f03fc7d..b257a16567 100644 --- a/qtbase/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java +++ b/qtbase/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java @@ -1079,11 +1079,6 @@ public class QtActivity extends Activity QtNative.activityDelegate().resetSoftwareKeyboard(); } - public void updateInputItemRectangle(final int x, final int y, final int w, final int h) - { - QtNative.activityDelegate().updateInputItemRectangle(x, y, w, h); - } - public boolean setKeyboardVisibility(boolean visibility, long timeStamp) { return QtNative.activityDelegate().setKeyboardVisibility(visibility, timeStamp); @@ -1095,10 +1090,10 @@ public class QtActivity extends Activity } public void showSoftwareKeyboard(final int x, final int y, final int width, - final int height, final int editorHeight, - final int inputHints, final int enterKeyType) + final int height, final int inputHints, + final int enterKeyType) { - QtNative.activityDelegate().showSoftwareKeyboard(x, y, width, height, editorHeight, inputHints, enterKeyType); + QtNative.activityDelegate().showSoftwareKeyboard(x, y, width, height, inputHints, enterKeyType); } public boolean startApplication() diff --git a/qtbase/src/corelib/animation/qvariantanimation.cpp b/qtbase/src/corelib/animation/qvariantanimation.cpp index 98b02f0202..eac1524107 100644 --- a/qtbase/src/corelib/animation/qvariantanimation.cpp +++ b/qtbase/src/corelib/animation/qvariantanimation.cpp @@ -276,7 +276,9 @@ void QVariantAnimationPrivate::setCurrentValueForProgress(const qreal progress) const qreal startProgress = currentInterval.start.first; const qreal endProgress = currentInterval.end.first; - const qreal localProgress = (progress - startProgress) / (endProgress - startProgress); + const qreal localProgress = + qIsNull(progress - startProgress) ? 0.0 // avoid 0/0 below + /* else */ : (progress - startProgress) / (endProgress - startProgress); QVariant ret = q->interpolated(currentInterval.start.second, currentInterval.end.second, diff --git a/qtbase/src/corelib/global/qendian.h b/qtbase/src/corelib/global/qendian.h index a97776c761..339f53abb6 100644 --- a/qtbase/src/corelib/global/qendian.h +++ b/qtbase/src/corelib/global/qendian.h @@ -1,7 +1,7 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. -** Copyright (C) 2016 Intel Corporation. +** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2021 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. diff --git a/qtbase/src/corelib/global/qlibraryinfo.cpp b/qtbase/src/corelib/global/qlibraryinfo.cpp index 8ceb763491..a1558a6abe 100644 --- a/qtbase/src/corelib/global/qlibraryinfo.cpp +++ b/qtbase/src/corelib/global/qlibraryinfo.cpp @@ -333,8 +333,10 @@ QLibraryInfo::buildDate() # define COMPILER_STRING "MSVC 2015" # elif _MSC_VER < 1917 # define COMPILER_STRING "MSVC 2017" -# elif _MSC_VER < 2000 +# elif _MSC_VER < 1930 # define COMPILER_STRING "MSVC 2019" +# elif _MSC_VER < 2000 +# define COMPILER_STRING "MSVC 2022" # else # define COMPILER_STRING "MSVC _MSC_VER " QT_STRINGIFY(_MSC_VER) # endif diff --git a/qtbase/src/corelib/global/qnamespace.h b/qtbase/src/corelib/global/qnamespace.h index ad4150b317..bf19b1627b 100644 --- a/qtbase/src/corelib/global/qnamespace.h +++ b/qtbase/src/corelib/global/qnamespace.h @@ -1864,7 +1864,7 @@ public: QT_Q_ENUM(TimerType) QT_Q_ENUM(ScrollPhase) QT_Q_ENUM(MouseEventSource) - QT_Q_FLAG(MouseEventFlag) + QT_Q_FLAG(MouseEventFlags) QT_Q_ENUM(ChecksumType) QT_Q_ENUM(HighDpiScaleFactorRoundingPolicy) QT_Q_ENUM(TabFocusBehavior) diff --git a/qtbase/src/corelib/global/qrandom.cpp b/qtbase/src/corelib/global/qrandom.cpp index 10672c1f92..25f87c7e6a 100644 --- a/qtbase/src/corelib/global/qrandom.cpp +++ b/qtbase/src/corelib/global/qrandom.cpp @@ -383,7 +383,6 @@ struct QRandomGenerator::SystemAndGlobalGenerators constexpr SystemAndGlobalGenerators g = {}; Q_UNUSED(g); - Q_STATIC_ASSERT(std::is_literal_type::value); #endif } diff --git a/qtbase/src/corelib/io/qabstractfileengine.cpp b/qtbase/src/corelib/io/qabstractfileengine.cpp index 070139b608..ef6e91d826 100644 --- a/qtbase/src/corelib/io/qabstractfileengine.cpp +++ b/qtbase/src/corelib/io/qabstractfileengine.cpp @@ -101,7 +101,7 @@ QT_BEGIN_NAMESPACE \sa QAbstractFileEngine, QAbstractFileEngine::create() */ -static bool qt_file_engine_handlers_in_use = false; +static QBasicAtomicInt qt_file_engine_handlers_in_use = Q_BASIC_ATOMIC_INITIALIZER(false); /* All application-wide handlers are stored in this list. The mutex must be @@ -132,7 +132,7 @@ Q_GLOBAL_STATIC(QAbstractFileEngineHandlerList, fileEngineHandlers) QAbstractFileEngineHandler::QAbstractFileEngineHandler() { QWriteLocker locker(fileEngineHandlerMutex()); - qt_file_engine_handlers_in_use = true; + qt_file_engine_handlers_in_use.storeRelaxed(true); fileEngineHandlers()->prepend(this); } @@ -148,7 +148,7 @@ QAbstractFileEngineHandler::~QAbstractFileEngineHandler() QAbstractFileEngineHandlerList *handlers = fileEngineHandlers(); handlers->removeOne(this); if (handlers->isEmpty()) - qt_file_engine_handlers_in_use = false; + qt_file_engine_handlers_in_use.storeRelaxed(false); } } @@ -161,7 +161,7 @@ QAbstractFileEngine *qt_custom_file_engine_handler_create(const QString &path) { QAbstractFileEngine *engine = nullptr; - if (qt_file_engine_handlers_in_use) { + if (qt_file_engine_handlers_in_use.loadRelaxed()) { QReadLocker locker(fileEngineHandlerMutex()); // check for registered handlers that can load the file diff --git a/qtbase/src/corelib/io/qfilesystemwatcher_inotify.cpp b/qtbase/src/corelib/io/qfilesystemwatcher_inotify.cpp index 94d9d06bcb..27e0b13b0b 100644 --- a/qtbase/src/corelib/io/qfilesystemwatcher_inotify.cpp +++ b/qtbase/src/corelib/io/qfilesystemwatcher_inotify.cpp @@ -366,7 +366,9 @@ void QInotifyFileSystemWatcherEngine::readFromInotify() // qDebug("QInotifyFileSystemWatcherEngine::readFromInotify"); int buffSize = 0; - ioctl(inotifyFd, FIONREAD, (char *) &buffSize); + if (ioctl(inotifyFd, FIONREAD, (char *) &buffSize) == -1 || buffSize == 0) + return; + QVarLengthArray buffer(buffSize); buffSize = read(inotifyFd, buffer.data(), buffSize); char *at = buffer.data(); diff --git a/qtbase/src/corelib/io/qlockfile_win.cpp b/qtbase/src/corelib/io/qlockfile_win.cpp index 277f8d4230..38ecef5550 100644 --- a/qtbase/src/corelib/io/qlockfile_win.cpp +++ b/qtbase/src/corelib/io/qlockfile_win.cpp @@ -48,6 +48,8 @@ #include "QtCore/qdebug.h" #include "QtCore/qthread.h" +#include "private/qsystemlibrary_p.h" + QT_BEGIN_NAMESPACE static inline bool fileExists(const wchar_t *fileName) @@ -150,7 +152,7 @@ QString QLockFilePrivate::processNameByPid(qint64 pid) #if !defined(Q_OS_WINRT) typedef DWORD (WINAPI *GetModuleFileNameExFunc)(HANDLE, HMODULE, LPTSTR, DWORD); - HMODULE hPsapi = LoadLibraryA("psapi"); + HMODULE hPsapi = QSystemLibrary::load(L"psapi"); if (!hPsapi) return QString(); GetModuleFileNameExFunc qGetModuleFileNameEx = reinterpret_cast( diff --git a/qtbase/src/corelib/io/qprocess_unix.cpp b/qtbase/src/corelib/io/qprocess_unix.cpp index 50390e57f5..15c8f30745 100644 --- a/qtbase/src/corelib/io/qprocess_unix.cpp +++ b/qtbase/src/corelib/io/qprocess_unix.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. -** Copyright (C) 2016 Intel Corporation. +** Copyright (C) 2022 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -422,14 +422,15 @@ void QProcessPrivate::startProcess() // Add the program name to the argument list. argv[0] = nullptr; if (!program.contains(QLatin1Char('/'))) { + // findExecutable() returns its argument if it's an absolute path, + // otherwise it searches $PATH; returns empty if not found (we handle + // that case much later) const QString &exeFilePath = QStandardPaths::findExecutable(program); - if (!exeFilePath.isEmpty()) { - const QByteArray &tmp = QFile::encodeName(exeFilePath); - argv[0] = ::strdup(tmp.constData()); - } - } - if (!argv[0]) + const QByteArray &tmp = QFile::encodeName(exeFilePath); + argv[0] = ::strdup(tmp.constData()); + } else { argv[0] = ::strdup(encodedProgramName.constData()); + } // Add every argument to the list for (int i = 0; i < arguments.count(); ++i) @@ -983,15 +984,16 @@ bool QProcessPrivate::startDetached(qint64 *pid) envp = _q_dupEnvironment(environment.d.constData()->vars, &envc); } - QByteArray tmp; if (!program.contains(QLatin1Char('/'))) { + // findExecutable() returns its argument if it's an absolute path, + // otherwise it searches $PATH; returns empty if not found (we handle + // that case much later) const QString &exeFilePath = QStandardPaths::findExecutable(program); - if (!exeFilePath.isEmpty()) - tmp = QFile::encodeName(exeFilePath); + const QByteArray &tmp = QFile::encodeName(exeFilePath); + argv[0] = ::strdup(tmp.constData()); + } else { + argv[0] = ::strdup(QFile::encodeName(program)); } - if (tmp.isEmpty()) - tmp = QFile::encodeName(program); - argv[0] = tmp.data(); if (envp) qt_safe_execve(argv[0], argv, envp); diff --git a/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp index 1abdafcdbe..c5e287ee84 100644 --- a/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp +++ b/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp @@ -307,6 +307,8 @@ public: QHash::const_iterator create_mapping( const QModelIndex &source_parent) const; + QHash::const_iterator create_mapping_recursive( + const QModelIndex &source_parent) const; QModelIndex proxy_to_source(const QModelIndex &proxyIndex) const; QModelIndex source_to_proxy(const QModelIndex &sourceIndex) const; bool can_create_mapping(const QModelIndex &source_parent) const; @@ -533,6 +535,29 @@ IndexMap::const_iterator QSortFilterProxyModelPrivate::create_mapping( return it; } +// Go up the tree, creating mappings, unless of course the parent is filtered out +IndexMap::const_iterator QSortFilterProxyModelPrivate::create_mapping_recursive(const QModelIndex &source_parent) const +{ + if (source_parent.isValid()) { + const QModelIndex source_grand_parent = source_parent.parent(); + IndexMap::const_iterator it = source_index_mapping.constFind(source_grand_parent); + IndexMap::const_iterator end = source_index_mapping.constEnd(); + if (it == end) { + it = create_mapping_recursive(source_grand_parent); + end = source_index_mapping.constEnd(); + if (it == end) + return end; + } + Mapping *gm = it.value(); + if (gm->proxy_rows.at(source_parent.row()) == -1 || + gm->proxy_columns.at(source_parent.column()) == -1) { + // Can't do, parent is filtered + return end; + } + } + return create_mapping(source_parent); +} + QModelIndex QSortFilterProxyModelPrivate::proxy_to_source(const QModelIndex &proxy_index) const { if (!proxy_index.isValid()) @@ -751,8 +776,10 @@ void QSortFilterProxyModelPrivate::remove_source_items( { Q_Q(QSortFilterProxyModel); QModelIndex proxy_parent = q->mapFromSource(source_parent); - if (!proxy_parent.isValid() && source_parent.isValid()) + if (!proxy_parent.isValid() && source_parent.isValid()) { + proxy_to_source.clear(); return; // nothing to do (already removed) + } const auto proxy_intervals = proxy_intervals_for_source_items( source_to_proxy, source_items); @@ -912,8 +939,9 @@ void QSortFilterProxyModelPrivate::insert_source_items( q->beginInsertColumns(proxy_parent, proxy_start, proxy_end); } - for (int i = 0; i < source_items.size(); ++i) - proxy_to_source.insert(proxy_start + i, source_items.at(i)); + // TODO: use the range QList::insert() overload once it is implemented (QTBUG-58633). + proxy_to_source.insert(proxy_start, source_items.size(), 0); + std::copy(source_items.cbegin(), source_items.cend(), proxy_to_source.begin() + proxy_start); build_source_to_proxy_mapping(proxy_to_source, source_to_proxy); @@ -1404,11 +1432,20 @@ void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &sourc const QModelIndex &source_bottom_right = data_changed.bottomRight; const QModelIndex source_parent = source_top_left.parent(); + bool change_in_unmapped_parent = false; IndexMap::const_iterator it = source_index_mapping.constFind(source_parent); if (it == source_index_mapping.constEnd()) { - // Don't care, since we don't have mapping for this index - continue; + // We don't have mapping for this index, so we cannot know how things + // changed (in case the change affects filtering) in order to forward + // the change correctly. + // But we can at least forward the signal "as is", if the row isn't + // filtered out, this is better than nothing. + it = create_mapping_recursive(source_parent); + if (it == source_index_mapping.constEnd()) + continue; + change_in_unmapped_parent = true; } + Mapping *m = it.value(); // Figure out how the source changes affect us @@ -1418,7 +1455,7 @@ void QSortFilterProxyModelPrivate::_q_sourceDataChanged(const QModelIndex &sourc QVector source_rows_resort; int end = qMin(source_bottom_right.row(), m->proxy_rows.count() - 1); for (int source_row = source_top_left.row(); source_row <= end; ++source_row) { - if (dynamic_sortfilter) { + if (dynamic_sortfilter && !change_in_unmapped_parent) { if (m->proxy_rows.at(source_row) != -1) { if (!filterAcceptsRowInternal(source_row, source_parent)) { // This source row no longer satisfies the filter, so it must be removed @@ -1568,7 +1605,6 @@ void QSortFilterProxyModelPrivate::_q_sourceReset() _q_clearMapping(); // All internal structures are deleted in clear() q->endResetModel(); - create_mapping(QModelIndex()); update_source_sort_column(); if (dynamic_sortfilter && update_source_sort_column()) sort(); @@ -1634,8 +1670,8 @@ void QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted( const bool toplevel = !source_parent.isValid(); const bool recursive_accepted = filter_recursive && !toplevel && filterAcceptsRowInternal(source_parent.row(), source_parent.parent()); - //Force the creation of a mapping now, even if its empty. - //We need it because the proxy can be acessed at the moment it emits rowsAboutToBeInserted in insert_source_items + //Force the creation of a mapping now, even if it's empty. + //We need it because the proxy can be accessed at the moment it emits rowsAboutToBeInserted in insert_source_items if (!filter_recursive || toplevel || recursive_accepted) { if (can_create_mapping(source_parent)) create_mapping(source_parent); @@ -1754,8 +1790,8 @@ void QSortFilterProxyModelPrivate::_q_sourceColumnsAboutToBeInserted( { Q_UNUSED(start); Q_UNUSED(end); - //Force the creation of a mapping now, even if its empty. - //We need it because the proxy can be acessed at the moment it emits columnsAboutToBeInserted in insert_source_items + //Force the creation of a mapping now, even if it's empty. + //We need it because the proxy can be accessed at the moment it emits columnsAboutToBeInserted in insert_source_items if (can_create_mapping(source_parent)) create_mapping(source_parent); } @@ -2149,7 +2185,6 @@ void QSortFilterProxyModel::setSourceModel(QAbstractItemModel *sourceModel) connect(d->model, SIGNAL(modelReset()), this, SLOT(_q_sourceReset())); endResetModel(); - d->create_mapping(QModelIndex()); if (d->update_source_sort_column() && d->dynamic_sortfilter) d->sort(); } @@ -3089,8 +3124,9 @@ bool QSortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex & if (d->filter_data.isEmpty()) return true; + + int column_count = d->model->columnCount(source_parent); if (d->filter_column == -1) { - int column_count = d->model->columnCount(source_parent); for (int column = 0; column < column_count; ++column) { QModelIndex source_index = d->model->index(source_row, column, source_parent); QString key = d->model->data(source_index, d->filter_role).toString(); @@ -3099,9 +3135,10 @@ bool QSortFilterProxyModel::filterAcceptsRow(int source_row, const QModelIndex & } return false; } - QModelIndex source_index = d->model->index(source_row, d->filter_column, source_parent); - if (!source_index.isValid()) // the column may not exist + + if (d->filter_column >= column_count) // the column may not exist return true; + QModelIndex source_index = d->model->index(source_row, d->filter_column, source_parent); QString key = d->model->data(source_index, d->filter_role).toString(); return d->filter_data.hasMatch(key); } diff --git a/qtbase/src/corelib/kernel/qtranslator.cpp b/qtbase/src/corelib/kernel/qtranslator.cpp index 36d9ea4998..b610fb0b24 100644 --- a/qtbase/src/corelib/kernel/qtranslator.cpp +++ b/qtbase/src/corelib/kernel/qtranslator.cpp @@ -897,7 +897,7 @@ static QString getMessage(const uchar *m, const uchar *end, const char *context, goto end; case Tag_Translation: { int len = read32(m); - if (len % 1) + if (len & 1) return QString(); m += 4; if (!numerus--) { diff --git a/qtbase/src/corelib/mimetypes/mime/packages/freedesktop.org.xml b/qtbase/src/corelib/mimetypes/mime/packages/freedesktop.org.xml index d384ffb2d5..e73929c9bb 100644 --- a/qtbase/src/corelib/mimetypes/mime/packages/freedesktop.org.xml +++ b/qtbase/src/corelib/mimetypes/mime/packages/freedesktop.org.xml @@ -1,183 +1,177 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - אטארי 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Atari 2600 - Атари 2600 - Atari 2600 - Atari 2600 - Atari 2600 - 雅达利 2600 - Atari 2600 + Atari 2600 ROM + ROM — Atari 2600 + ROM d'Atari 2600 + Atari 2600-ROM + Atari 2600 ROM + Atari 2600 ROM + ROM de Atari 2600 + Atari 2600 ROMa + Atari 2600 ROM + ROM Atari 2600 + ROM Atari 2600 + Atari 2600 ROM + Atari 2600 ROM + Atari 2600 ROM + ROM Atari 2600 + Atari 2600 ROM + 아타리 2600 롬 + Plik ROM konsoli Atari 2600 + ROM Atari 2600 + ROM do Atari 2600 + Atari 2600 ROM + Atari 2600-rom + Atari 2600 ROM + Atari 2600 ROM + 雅达利 2600 ROM + 雅達利 2600 ROM - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - אטארי 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Atari 7800 - Атари 7800 - Atari 7800 - Atari 7800 - Atari 7800 - 雅达利 7800 - Atari 7800 + Atari 7800 ROM + ROM — Atari 7800 + ROM d'Atari 7800 + Atari 7800-ROM + Atari 7800 ROM + Atari 7800 ROM + ROM de Atari 7800 + Atari 7800 ROMa + Atari 7800 ROM + ROM Atari 7800 + ROM Atari 7800 + Atari 7800 ROM + Atari 7800 ROM + Atari 7800 ROM + ROM Atari 7800 + Atari 7800 ROM + 아타리 7800 롬 + Plik ROM konsoli Atari 7800 + ROM Atari 7800 + ROM do Atari 7800 + Atari 7800 ROM + Atari 7800-rom + Atari 7800 ROM + Atari 7800 ROM + 雅达利 7800 ROM + 雅達利 7800 ROM - + - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - Atari Lynx - 雅达利 Lynx - Atari Lynx + Atari Lynx ROM + ROM — Atari Lynx + ROM d'Atari Lynx + Atari Lynx-ROM + Atari Lynx ROM + Atari Lynx ROM + ROM de Atari Lynx + Atari Lynx ROMa + Atari Lynx ROM + ROM Atari Lynx + ROM Atari Lynx + Atari Lynx ROM + Atari Lynx ROM + Atari Lynx ROM + ROM Atari Lynx + Atari Lynx ROM + 아타리 링스 롬 + Plik ROM konsoli Atari Lynx + ROM Atari Lynx + ROM do Atari Lynx + Atari Lynx ROM + Atari Lynx-rom + Atari Lynx ROM + Atari Lynx ROM + 雅达利 Lynx ROM + 雅達利 Lynx ROM - + ATK inset شكل ATK - Ustaŭka ATK - Сбор — ATK + Ustaŭka ATK + Притурка — ATK ATK inset vložka ATK ATK-indsættelse ATK-Inset Ένθετο ATK - ATK inset + ATK inset inserción ATK ATK sartzapena ATK-osio ATK innskot encart ATK + inset ATK intlis ATK conxunto ATK תוספת ATK @@ -197,7 +191,7 @@ encart ATK Wstawka ATK Suplemento ATK - Conjunto de entrada do ATK + Conjunto de entrada do ATK Inset ATK Вкладка ATK Vložka ATK @@ -208,8 +202,8 @@ ATK iç metni вкладка ATK Bộ dát ATK - ATK 嵌入对象 - ATK 內嵌 + ATK 嵌入对象 + ATK 內嵌 ATK Andrew Toolkit @@ -217,21 +211,23 @@ electronic book document + elektronieseboekdokument مستند كتاب إلكتروني documentu de llibru electrónicu - elektronnaja kniha + elektronnaja kniha Документ — електронна книга document de llibre electrònic dokument elektronické knihy elektronisk bogdokument Elektronisches Buch Έγγραφο ηλεκτρονικού βιβλίου - electronic book document + electronic book document documento de libro electrónico liburu elektronikoaren dokumentua elektroninen kirja elektroniskbóka skjal document livre électronique + document libri eletronic leabhar leictreonach documento de libro electrónico מסמך מסוג ספר אלקטרוני @@ -250,7 +246,7 @@ document libre electronic Dokument książki elektronicznej documento de livro eletrónico - Documento de livro eletrônico + Documento de livro eletrônico document carte electronică Электронная книга Dokument elektronickej knihy @@ -261,45 +257,77 @@ elektronik kitap belgesi документ електронної книги tài liệu cuốn sách điện tử - 电子书文档 - 電子書文件 + 电子书文档 + 電子書文件 - - - - + + + + + + Kindle book document + document de llibre Kindle + Kindle-bogdokument + Kindle-Buch-Dokument + Kindle book document + documento de libro de Kindle + Kindle book -asiakirja + document livre Kindle + Dokument Kindle knjige + Kindle könyvdokumentum + Dokumen buku Kindle + Documento libro Kindle + Kindle кітап құжаты + Kindle 책 문서 + Kindle knygos dokumentas + Dokument książki Kindle + documento de livro eletrónico do Kindle + Documento livro do Kindle + Электронная книга Kindle + Kindle-bokdokument + Kindle kitap belgesi + документ книги Kindle + Kindle 电子书文档 + Kindle 書文件 + + + + + Adobe Illustrator document + Adobe Illustrator-dokument مستند أدوبي المصور Documentu d'Adobe Illustrator - Dakument Adobe Illustrator + Dakument Adobe Illustrator Документ — Adobe Illustrator document d'Adobe Illustrator dokument Adobe Illustrator Adobe Illustrator-dokument Adobe-Illustrator-Dokument Έγγραφο Adobe Illustrator - Adobe Illustrator document + Adobe Illustrator document dokumento de Adobe Illustrator documento de Adobe Illustrator Adobe Illustrator dokumentua Adobe Illustrator -asiakirja Adobe Illustrator skjal document Adobe Illustrator + document Adobe Illustrator cáipéis Adobe Illustrator documento de Adobe Ilustrator מסמך Adobe Ill Adobe Illustrator dokument Adobe Illustrator-dokumentum Documento Adobe Illustrator - dokumen Adobe Illustrator + Dokumen Adobe Illustrator Documento Adobe Illustrator Adobe Illustrator ドキュメント Adobe Illustrator-ის დოკუმენტი @@ -314,7 +342,7 @@ document Adobe Illustrator Dokument Adobe Illustrator documento Adobe Illustrator - Documento do Adobe Illustrator + Documento do Adobe Illustrator Document Adobe Illustrator Документ Adobe Illustrator Dokument Adobe Illustrator @@ -325,18 +353,19 @@ Adobe Illustrator belgesi документ Adobe Illustrator Tài liệu Adobe Illustrator - Adobe Illustrator 文档 - Adobe Illustrator 文件 + Adobe Illustrator 文档 + Adobe Illustrator 文件 Macintosh BinHex-encoded file + Macintosh BinHex-geënkodeerde lêer ملف Macintosh BinHex مشفر Ficheru codificáu en BinHex de Machintosh Macintosh BinHex-kodlanmış fayl - Fajł Macintosh, BinHex-zakadavany + Fajł Macintosh, BinHex-zakadavany Файл — кодиран във формат BinHex за Macintosh fitxer amb codificació BinHex de Macintosh soubor kódovaný pomocí Macintosh BinHex @@ -344,20 +373,21 @@ Macintosh BinHex-kodet fil Macintosh-Datei (BinHex-kodiert) Αρχείο Macintosh κωδικοποίησης BinHex - Macintosh BinHex-encoded file + Macintosh BinHex-encoded file dosiero kodigita laŭ Macintosh BinHex archivo Macintosh codificado con BinHex Macintosh BinHex-ekin kodetutako fitxategia Macintosh BinHex -koodattu tiedosto Macintosh BinHex-bronglað fíla fichier codé Macintosh BinHex + file di Macintosh codificât BinHex comhad ionchódaithe le Macintosh BinHex ficheiro de Macintosh codificado con BinHex קובץ בקידוד Macintosh BinHex Macintosh BinHex-kôdirana datoteka Macintosh BinHex kódolású fájl File codificate in BinHex de Macintosh - berkas tersandi Macintosh BinHex + Berkas tersandi Macintosh BinHex File Macintosh codificato BinHex Macintosh BinHex エンコードファイル Macintosh BinHex кодталған файлы @@ -371,7 +401,7 @@ fichièr encodat Macintosh BinHex Zakodowany w BinHex plik Macintosh ficheiro codificado em BinHex de Macintosh - Arquivo do Macintosh codificado com BinHex + Arquivo do Macintosh codificado com BinHex Fișier codat Macintosh BinHex Файл (закодированный Macintosh BinHex) Súbor kódovaný pomocou Macintosh BinHex @@ -382,61 +412,40 @@ Macintosh BinHex-şifreli dosya файл закодований Macintosh BinHex Tập tin đã mã hoá BinHex của Macintosh - Macintosh BinHex 编码的文件 - Macintosh BinHex 編碼檔 + Macintosh BinHex 编码的文件 + Macintosh BinHex 編碼檔 - + - Mathematica Notebook - مذكرة رياضيات - Natatnik Mathematica - Тетрадка — Mathematica - llibreta de notes de Mathematica - sešit Mathematica - Mathematica Notebook - Mathematica-Dokument - Σημειωματάριο Mathematica - Mathematica Notebook - libreta de Mathematica - Mathematica Notebook - Mathematica-muistilehtiö - Mathematica skriviblokkur - carnet de notes Mathematica - leabhar nótaí Mathematica - notebook de Mathematica - מחברת מתמטיקה - Matematička bilježnica - Mathematica notesz - Carnet de notas Mathematica - Mathematica Notebook - Notebook Mathematica - Mathematica ノートブック - Mathematica Notebook - Mathematica 노트북 - Mathematica užrašinė - Mathematica bloknots - Mathematica notisblokk - Mathematica-notitieboek - Mathematica-notatbok - quasernet de nòtas Mathematica - Notatnik Mathematica - Bloco notas Mathematica - Caderno do Mathematica - Carnețel Mathematica - Mathematica Notebook - Zošit programu Mathematica - Datoteka dokumenta Mathematica - Notebook matematike - бележница Математике - Mathematica Notebook-dokument - Mathematica Defteri - математичний записник - Cuốn vở Mathematica - Mathematica 笔记本 - Mathematica Notebook + Mathematica Notebook file + Скицник — Mathematica + llibreta de Mathematica Notebook + Mathematica Notebook-fil + Mathematica-Notebook-Datei + Mathematica Notebook file + archivo de Mathematica Notebook + Mathematica Notebook fitxategia + Mathematica Notebook -tiedosto + fichier carnet Mathematica + Mathematica Notebook datoteka + Mathematica munkafüzetfájl + Berkas Mathematica Notebook + File Mathematica Notebook + Mathematica блокнот файлы + 매쓰매티카 기록장 파일 + Plik notatnika Mathematica + ficheiro de Mathematica Notebook do Wolfram + Arquivo Notebook do Mathematica + Файл Mathematica Notebook + Datoteka Mathematica Notebook + Mathematica-anteckningsboksfil + Mathematica Notebook dosyası + файл нотатника Mathematica + Mathematica 笔记本文件 + Mathematica 筆記本檔案 @@ -449,10 +458,11 @@ MathML document + MathML-dokument مستند MathML Documentu MathML MathML sənədi - Dakument MathML + Dakument MathML Документ — MathML document MathML dokument MathML @@ -460,20 +470,21 @@ MathML-dokument MathML-Dokument Έγγραφο MathML - MathML document + MathML document MathML-dokumento documento MathML MathML dokumentua MathML-asiakirja MathML skjal document MathML + document MathML cáipéis MathML documento de MathML מסמך MathML MathML dokument MathML-dokumentum Documento MathML - dokumen MathML + Dokumen MathML Documento MathML MathML ドキュメント MathML-ის დოკუმენტი @@ -488,7 +499,7 @@ document MathML Dokument MathML documento MathML - Documento do MathML + Documento do MathML Document MathML Документ MathML Dokument MathML @@ -499,8 +510,8 @@ MathML belgesi документ MathML Tài liệu MathML - MathML 文档 - MathML 文件 + MathML 文档 + MathML 文件 MathML Mathematical Markup Language @@ -510,20 +521,22 @@ mailbox file + mailbox-lêer ملف صندوق البريد - fajł paštovaj skryni + fajł paštovaj skryni Файл — Mailbox fitxer mailbox soubor mailbox postkassefil Mailbox-Datei Αρχείο mailbox - mailbox file + mailbox file archivo de buzón de correo mailbox fitxategia mailbox-tiedosto postkassafíla fichier boîte aux lettres + file mailbox comhad bhosca poist ficheiro de caixa de correo קובץ תיבת-דואר @@ -543,7 +556,7 @@ fichièr bóstia de letras Plik poczty (Mailbox) ficheiro de caixa de correio - Arquivo de caixa de correio + Arquivo de caixa de correio fișier căsuță poștală Файл почтового ящика Súbor mailbox @@ -551,20 +564,21 @@ File mailbox датотека поштанског сандучета brevlådefil - posta kutusu dosyası + mailbox dosyası файл поштової скриньки tập tin hộp thư - 邮箱文件 - 郵箱檔 + 邮箱文件 + 郵箱檔 - + Metalink file + Metalink-lêer ملف ميتالنك Ficheru d'enllaz meta Изтегляне — Metalink @@ -573,20 +587,21 @@ Metahenvisningsfil Metalink-Datei Αρχείο Metalink - Metalink file + Metalink file Metalink-dosiero archivo de Metalink Metaestekaren fitxategia Metalink-tiedosto Metalink fíla fichier metalink + file Metalink comhad Metalink ficheiro Metalink קובץ Metalink Datoteka meta poveznice Metalink fájl File Metalink - berkas Metalink + Berkas Metalink File Metalink Metalink ファイル Metalink файлы @@ -597,7 +612,7 @@ fichièr metalink Plik Metalink ficheiro Metalink - Arquivo Metalink + Arquivo Metalink Fișier Metalink Файл Metalink Súbor Metalink @@ -606,17 +621,18 @@ Metalink-fil Metalink dosyası файл метапосилання - Metalink 文件 - Metalink 檔案 + Metalink 文件 + Metalink 檔案 - + Metalink file + Metalink-lêer ملف ميتالنك Ficheru d'enllaz meta Изтегляне — Metalink @@ -625,20 +641,21 @@ Metahenvisningsfil Metalink-Datei Αρχείο Metalink - Metalink file + Metalink file Metalink-dosiero archivo de Metalink Metaestekaren fitxategia Metalink-tiedosto Metalink fíla fichier metalink + file Metalink comhad Metalink ficheiro Metalink קובץ Metalink Datoteka meta poveznice Metalink fájl File Metalink - berkas Metalink + Berkas Metalink File Metalink Metalink ファイル Metalink файлы @@ -649,7 +666,7 @@ fichièr metalink Plik Metalink ficheiro Metalink - Arquivo Metalink + Arquivo Metalink Fișier Metalink Файл Metalink Súbor Metalink @@ -658,33 +675,35 @@ Metalink-fil Metalink dosyası файл метапосилання - Metalink 文件 - Metalink 檔案 + Metalink 文件 + Metalink 檔案 - + unknown + onbekend مجهول desconozse - nieviadomy + nieviadomy Неизвестен тип desconegut neznámý ukendt unbekannt Άγνωστο - unknown + unknown nekonate desconocido ezezaguna tuntematon ókent inconnu + no cognossût anaithnid descoñecido לא ידוע @@ -706,7 +725,7 @@ desconegut Nieznany typ desconhecido - Desconhecido + Desconhecido necunoscut Неизвестно Neznámy @@ -717,22 +736,25 @@ bilinmeyen невідомо không rõ - 未知 - 不明 + 未知 + 不明 Partially downloaded file + Gedeeltelik afgelaaide lêer Ficheru baxáu parcialmente + Частично изтеглен файл fitxer baixat parcialment částečně stažený soubor - Delvist hentet fil + Delvist downloadet fil Teilweise heruntergeladene Datei Μερικώς ληφθέντο αρχείο - Partially downloaded file + Partially downloaded file archivo descargado parcialmente Partzialki deskargatutako fitxategia Osittain ladattu tiedosto fichier partiellement téléchargé + file no discjariât dal dut Comhad leath-íoslódáilte Ficheiro descargado parcialmente קובץ שהתקבל חלקית @@ -743,10 +765,11 @@ File parzialmente scaricato Жартылай жүктелген файл 일부 다운로드한 파일 + Dalinai atsiųstas failas fichièr parcialament telecargat Częściowo pobrany plik - Ficheiro parcialmente transferido - Arquivo baixado parcialmente + ficheiro descarregado parcialmente + Arquivo baixado parcialmente Частично загруженный файл Čiastočne stiahnutý súbor Delno prenesena datoteka @@ -754,8 +777,8 @@ Delvis hämtad fil Kısmen indirilmiş dosya частково отриманий файл - 部分下载的文件 - 已部份下載的檔案 + 部分下载的文件 + 已部份下載的檔案 @@ -763,10 +786,11 @@ ODA document + ODA-dokument مستند ODA Documentu ODA ODA sənədi - Dakument ODA + Dakument ODA Документ — ODA document ODA dokument ODA @@ -774,13 +798,14 @@ ODA-dokument ODA-Dokument Έγγραφο ODA - ODA document + ODA document ODA-dokumento documento ODA ODA dokumentua ODA-asiakirja ODA skjal document ODA + document ODA cáipéis ODA documento ODA מסמך ODA @@ -802,7 +827,7 @@ document ODA Dokument ODA documento ODA - Documento ODA + Documento ODA Document ODA Документ ODA Dokument ODA @@ -813,8 +838,8 @@ ODA belgesi документ ODA Tài liệu ODA - ODA 文档 - ODA 文件 + ODA 文档 + ODA 文件 ODA Office Document Architecture @@ -822,6 +847,7 @@ WWF document + WWF-dokument Documentu WWF Документ — WWF document WWF @@ -829,12 +855,13 @@ WWF-dokument WWF-Dokument Έγγραφο WWF - WWF document + WWF document WWF-dokumento documento WWF WWF dokumentua WWF-asiakirja document WWF + document WWF cáipéis WWF documento de WWF מסמך WWF @@ -847,12 +874,13 @@ WWF დოკუმენტი WWF құжаты WWF 문서 + WWF dokumentas WWF dokuments WWF document document WWF Dokument WWF documento WWF - Documento WWF + Documento WWF Документ WWF Dokument WWF Dokument WWF @@ -860,8 +888,8 @@ WWF-dokument WWF belgesi документ WWF - WWF - WWF 文件 + WWF + WWF 文件 @@ -869,9 +897,10 @@ PDF document + PDF-dokument مستند PDF Documentu PDF - Dakument PDF + Dakument PDF Документ — PDF document PDF dokument PDF @@ -879,13 +908,14 @@ PDF-dokument PDF-Dokument Έγγραφο PDF - PDF document + PDF document PDF-dokumento documento PDF PDF dokumentua PDF-asiakirja PDF skjal document PDF + document PDF cáipéis PDF documento PDF מסמך PDF @@ -906,7 +936,7 @@ document PDF Dokument PDF documento PDF - Documento PDF + Documento PDF Document PDF Документ PDF Dokument PDF @@ -917,13 +947,13 @@ PDF belgesi документ PDF Tài liệu PDF - PDF 文档 - PDF 文件 + PDF 文档 + PDF 文件 PDF Portable Document Format - + @@ -933,22 +963,24 @@ XSPF playlist + XSPF-speellys قائمة تشغيل XSPF Llista de reproducción XSPF - Śpis piesień XSPF + Śpis piesień XSPF Списък за изпълнение — XSPF llista de reproducció XSPF seznam k přehrání XSPF XSPF-afspilningsliste XSPF-Wiedergabeliste Λίστα αναπαραγωγής XSPF - XSPF playlist + XSPF playlist XSPF-ludlisto lista de reproducción XSPF XSPF erreprodukzio-zerrenda XSPF-soittolista XSPF avspælingarlisti liste de lecture XSPF + liste di riproduzion XSPF seinmliosta XSPF lista de reprodución XSPF רשימת נגינה XSPF @@ -968,7 +1000,7 @@ lista de lectura XSPF Lista odtwarzania XSPF lista de reprodução XSPF - Lista de reprodução XSPF + Lista de reprodução XSPF Listă XSPF Список воспроизведения XSPF Zoznam skladieb XSPF @@ -979,15 +1011,15 @@ XSPF çalma listesi список програвання XSPF Danh mục nhạc XSPF - XSPF 播放列表 - XSPF 播放清單 + XSPF 播放列表 + XSPF 播放清單 XSPF XML Shareable Playlist Format - - + + @@ -995,6 +1027,7 @@ Microsoft Windows theme pack + Microsoft Windows-temapak حزمة سمات Microsoft Works Paquete de temes de Microsoft Windows Пакет с тема — Microsoft Windows @@ -1003,12 +1036,13 @@ Microsoft Windows-temapakke Microsoft-Windows-Themenpaket Πακέτο θέματος Microsoft Windows - Microsoft Windows theme pack + Microsoft Windows theme pack paquete de tema para Microsoft Windows Microsoft Windows-en gaiaren paketea Microsoft Windows -teemapaketti Microsoft Windows tema pakki paquet de thèmes Microsoft Windows + pachet temis di Microsoft Windows paca téamaí Microsoft Windows paquete de tema de Microsoft Windows חבילת ערכות נושא של Microsoft Windows @@ -1027,7 +1061,7 @@ paquet de tèmas Microsoft Windows Pakiet motywu Microsoft Windows pacote de tema Microsoft Windows - Pacote de temas do Microsoft Windows + Pacote de temas do Microsoft Windows Pachet de teme Microsoft Windows Пакет темы Microsoft Windows Balík tém Microsoft Windows @@ -1036,24 +1070,28 @@ Microsoft Windows-temapaket Microsoft Windows tema paketi пакунок з темою Microsoft Windows - Microsoft Windows 主题包 - 微軟視窗佈景主題包 + Microsoft Windows 主题包 + 微軟視窗佈景主題包 AmazonMP3 download file + AmazonMP3-aflaailêer Ficheru de descarga AmazonMP3 + Файл за изтегляне — AmazonMP3 fitxer baixat d'AmazonMP3 soubor stahování AmazonMP3 AmazonMP3-downloadfil AmazonMP3-Herunterladedatei Αρχείο λήψης AmazonMP3 - AmazonMP3 download file + AmazonMP3 download file archivo de descarga de AmazonMP3 AmazonMP3 deskarga fitxategia + AmazonMP3-lataustiedosto fichier téléchargé AmazonMP3 + file discjariât AmazonMP3 comhad íoslódáilte AmazonMP3 Ficheiro de descarga de AmazonMP3 קובץ הורדת AmazonMP3 @@ -1069,7 +1107,7 @@ fichièr telecargat AmazonMP3 Pobrany plik AmazonMP3 ficheiro transferido AmazonMP3 - Arquivo de download AmazonMP3 + Arquivo de download AmazonMP3 Файл загрузки AmazonMP3 Stiahnutý súbor AmazonMP3 Datoteka prenosa AmazonMP3 @@ -1077,12 +1115,13 @@ AmazonMP3-hämtningsfil AmazonMP3 indirme dosyası файл завантаження AmazonMP3 - AmazonMP3 下载文件 - AmazonMP3 下載檔 + AmazonMP3 下载文件 + AmazonMP3 下載檔 GSM 06.10 audio + GSM 06.10-oudio GSM 06.10 سمعي Audiu GSM 6.10 Аудио — GSM 06.10 @@ -1091,12 +1130,13 @@ GSM 06.10-lyd GSM-06.10-Audio Ήχος GSM 06.10 - GSM 06.10 audio - sonido GSM 06.10 + GSM 06.10 audio + audio GSM 06.10 GSM 06.10 audioa GSM 06.10 -ääni GSM 06.10 ljóður audio GSM 06.10 + audio GSM 06.10 fuaim GSM 06.10 son de GSM 06.10 שמע GSM 06.10 @@ -1115,7 +1155,7 @@ àudio GSM 06.10 Plik dźwiękowy GSM 06.10 áudio GSM 06.10 - Áudio GSM 06.10 + Áudio GSM 06.10 GSM 06.10 audio Аудио GSM 06.10 Zvuk GSM 06.10 @@ -1125,85 +1165,65 @@ GSM 06.10 ses dosyası звук GSM 06.10 Âm thanh GSM 06.10 - GSM 06.10 音频 - GSM 06.10 音訊 + GSM 06.10 音频 + GSM 06.10 音訊 GSM Global System for Mobile communications - iRiver Playlist - قائمة تشغيل iRiver - Llista de reproducción iRiver - Śpis piesień iRiver + iRiver playlist Списък за изпълнение — iRiver llista de reproducció iRiver - seznam k přehrání iRiver iRiver-afspilningsliste iRiver-Wiedergabeliste - Λίστα αναπαραγωγής iRiver - iRiver Playlist - iRiver-ludlisto + iRiver playlist lista de reproducción de iRiver iRiver erreprodukzio-zerrenda iRiver-soittolista - iRiver avspælingarlisti liste de lecture iRiver - seinmliosta iRiver - lista de reprodución de iRiver - רשימת נגינה של iRiver iRiver popis izvođenja iRiver lejátszólista - Lista de selection iRiver - iRiver Playlist + daftar putar iRiver Playlist iRiver - iRiver 再生リスト iRiver ойнау тізімі - iRiver 재생 목록 - iRiver grojaraštis - iRiver repertuārs - iRiver-spilleliste - iRiver-afspeellijst - iRiver speleliste - lista de lectura iRiver + 아이리버 재생 목록 Lista odtwarzania iRiver - lista de reprodução iRiver - Lista de reprodução do iRiver - Listă iRiver + lista de reprodução do iRiver + Lista de reprodução do iRiver Список воспроизведения iRiver Zoznam skladieb iRiver Seznam predvajanja iRiver - Listë titujsh iRiver - иРивер списак нумера iRiver-spellista - iRiver Çalma Listesini - список програвання iRiver - danh mục nhạc iRiver - iRiver 播放列表 - iRiver 播放清單 + iRiver çalma listesi + список відтворення iRiver + iRiver 播放列表 + iRiver 播放清單 - + PGP/MIME-encrypted message header + Kop van PGP/MIME-geënkripteerde boodskap ترويسة رسالة PGP/MIME-مشفرة Testera de mensaxe cifrada en PGP/MIME - Zahałovak paviedamleńnia, zašyfravany ŭ PGP/MIME + Zahałovak paviedamleńnia, zašyfravany ŭ PGP/MIME Заглавна част на шифрирано съобщение — PGP/MIME capçalera de missatge amb xifrat PGP/MIME záhlaví zprávy zašifrované pomocí PGP/MIME PGP-/MIME-krypteret meddelelseshoved PGP/MIME-verschlüsselter Nachrichtenkopf Κεφαλίδα μηνύματος κρυπτογραφημένου κατά PGP/MIME - PGP/MIME-encrypted message header + PGP/MIME-encrypted message header PGP/MIME-ĉifrita ĉapo de mesaĝo cabecera de mensaje cifrado PGP/MIME - PGP/MIME enkriptatutako mezu-goiburua + PGP/MIME zifratutako mezu-goiburua PGP/MIME-salattu viestiotsikko PGP/MIME-encrypted boð tekshøvd en-tête de message codé PGP/MIME + intestazion messaç cifrât in PGP/MIME ceanntásc teachtaireachta ionchódaithe le PGP/MIME cabeceira de mensaxe cifrado PGP/MIME כותר של קובץ מוצפן מסוג PGP/MIME @@ -1224,7 +1244,7 @@ entèsta de messatge encodat PGP/MIME Nagłówek listu zaszyfrowanego PGP/MIME cabeçalho de mensagem encriptada com PGP/MIME - Cabeçalho de mensagem criptografada PGP/MIME + Cabeçalho de mensagem criptografada PGP/MIME Antet de mesaj encriptat PGP/MIME Заголовок сообщения, зашифрованный PGP/MIME Hlavičke správy zašifrovaná pomocou PGP/MIME @@ -1235,24 +1255,25 @@ PGP/MIME-şifreli ileti başlığı заголовок шифрованого PGP/MIME повідомлення Phần đầu thông điệp đã mật mã bằng PGP/MIME - PGP/MIME 加密的信件头 - PGP/MIME 加密訊息標頭 + PGP/MIME 加密的信件头 + PGP/MIME 加密訊息標頭 - + - + PGP keys + PGP-sleutels مفاتيح PGP Claves PGP PGP açarları - Klučy PGP + Klučy PGP Ключове — PGP claus PGP klíče PGP @@ -1260,13 +1281,14 @@ PGP-nøgler PGP-Schlüssel Κλειδιά PGP - PGP keys + PGP keys PGP-ŝlosiloj claves PGP PGP giltzak PGP-avainrengas PGP lyklar clés PGP + clâfs PGP eochracha PGP Chaves PGP מפתחות PGP @@ -1287,7 +1309,7 @@ claus PGP Klucze PGP chaves PGP - Chaves PGP + Chaves PGP Chei PGP Ключи PGP Kľúče PGP @@ -1298,43 +1320,46 @@ PGP anahtarları ключі PGP Khoá PGP - PGP 密钥 - PGP 鑰匙 + PGP 密钥 + PGP 金鑰 PGP Pretty Good Privacy - - - - - - + + + + + + - + + detached OpenPGP signature + losstaande OpenPGP-handtekening إمضاء OpenPGP مفصول - adłučany podpis OpenPGP - Отделен подпис — OpenPGP + adłučany podpis OpenPGP + Отделѐн подпис — OpenPGP signatura OpenPGP abstreta oddělený podpis OpenPGP frigjort OpenPGP-signatur isolierte OpenPGP-Signatur Αποκομμένη υπογραφή OpenPGP - detached OpenPGP signature + detached OpenPGP signature dekroĉa OpenPGP-subskribo firma OpenPGP separada desuzturtako OpenPGP sinadura erillinen OpenPGP-allekirjoitus skild OpenPGP undirskrift signature OpenPGP détachée + firme OpenPGP distacade síniú OpenPGP scartha sinatura de OpenPGP independente חתימת OpenPGP מנותקת @@ -1355,7 +1380,7 @@ signatura OpenPGP destacada Oddzielony podpis OpenPGP assinatura OpenPGP solta - Assinatura OpenPGP destacada + Assinatura OpenPGP destacada semnătură OpenPGP detașată Отсоединённая подпись OpenPGP Oddelený podpis OpenPGP @@ -1366,57 +1391,48 @@ müstakil OpenPGP imzası відокремлений OpenPGP підпис chữ ký OpenPGP tách rời - 分离的 OpenPGP 签名 - 分離的 OpenPGP 簽章 + 分离的 OpenPGP 签名 + 分離的 OpenPGP 簽章 - + - + - + - PKCS#7 Message or Certificate - Mensaxe o certificáu PKCS#7 - missatge o certificat PKCS#7 - zpráva nebo certifikát PKCS#7 - PKCS#7-besked eller certifikat - PKCS#7 Nachricht oder Zertifikat - Μήνυμα ή πιστοποιητικό PKCS#7 - PKCS#7 Message or Certificate - mensaje o certificado PKCS#7 - PKCS#7 mezu edo zertifikazioa - PKCS#7-viesti tai -varmenne - Message ou certificat PKCS#7 - Teachtaireacht nó Teastas PKCS#7 - Mensaxe ou certificado PKCS#7 - הודעה או אישור מסוג PKCS#7 - PKCS#7 poruka ili vjerodajnica - PKCS#7 üzenet vagy tanúsítvány - Message o certificato PKCS#7 - Sertifikat atau Pesan PKCS#7 - Messaggio o certificato PKCS#7 - PKCS#7 メッセージまたは証明書 - PKCS#7 хабарламасы не сертификаты - PKCS#7 메시지 또는 인증서 - PKCS#7 ziņojums vai sertifikāts - Messatge o certificat PKCS#7 - Wiadomość lub certyfikat PKCS#7 - Mensagem ou certificado PKCS#7 - Certificado ou Mensagem PKCS#7 - Сообщение или сертификат PKCS#7 - Správa alebo certifikát PKCS#7 - Sporočilo ali dovoljenje PKCS#7 - ПКЦС#7 порука или уверење - PKCS#7-meddelande eller -certifikat - PKCS#7 İletisi veya Sertifikası - повідомлення або сертифікат PKCS#7 - PKCS#7 消息或证书 - PKCS#7 訊息或憑證 + PKCS#7 file + Файл за PKCS#7 + fitxer PKCS#7 + PKCS#7-fil + PKCS#7-Datei + PKCS#7 file + archivo PKCS#7 + PKCS#7 fitxategia + PKCS#7-tiedosto + fichier PKCS#7 + PKCS#7 datoteka + PKCS#7 fájl + Berkas PKCS#7 + File PKCS#7 + PKCS#7 файлы + PKCS#7 파일 + PKCS#7 failas + Plik PKCS#7 + ficheiro PKCS#7 + Arquivo PKCS#7 + Файл PKCS#7 + Súbor PKCS#7 + Datoteka PKCS#7 + PKCS#7-fil + PKCS#7 dosyası + файл PKCS#7 + PKCS#7 文件 + PKCS#7 檔案 PKCS Public-Key Cryptography Standards @@ -1425,21 +1441,23 @@ detached S/MIME signature + losstaande S/MIME-handtekening إمضاء S/MIME مفصول - adłučany podpis S/MIME - Отделен подпис — S/MIME + adłučany podpis S/MIME + Отделѐн подпис — S/MIME signatura S/MIME abstreta oddělený podpis S/MIME frigjort S/MIME-signatur isolierte S/MIME-Signatur Αποκομμένη υπογραφή S/MIME - detached S/MIME signature + detached S/MIME signature dekroĉa S/MIME-subskribo firma S/MIME separada desuzturtako S/MIME sinadura erillinen S/MIME-allekirjoitus skild S/MIME undirskrift signature S/MIME détachée + firme S/MIME distacade síniú S/MIME scartha sinatura S/MIME independente חתימת S/MIME מנותקת @@ -1460,7 +1478,7 @@ signatura S/MIME destacada Oddzielony podpis S/MIME assinatura S/MIME solta - Assinatura S/MIME destacada + Assinatura S/MIME destacada semnătură S/MIME detașată Отсоединённая подпись S/MIME Oddelený podpis S/MIME @@ -1471,8 +1489,8 @@ müstakil S/MIME imzası відокремлений S/MIME підпис chữ ký S/MIME tách rời - 分离的 S/MIME 签名 - 分離的 S/MIME 簽章 + 分离的 S/MIME 签名 + 分離的 S/MIME 簽章 S/MIME Secure/Multipurpose Internet Mail Extensions @@ -1481,19 +1499,21 @@ PKCS#8 private key + PKCS#8- private sleutel رزمة الشهادة PKCS#8 - Ключ, частен — PKCS#8 + Ключ — PKCS#8, частен clau privada PKCS#8 soukromý klíč PKCS#8 PKCS#8-privat nøgle - PKCS#8 Geheimer Schlüssel + PKCS#8 privater Schlüssel Ιδιωτικό κλειδί PKCS#8 - PKCS#8 private key + PKCS#8 private key clave privada PCKS#8 PKCS#8 gako pribatua PKCS#8 yksityinen avain PKCS#8 privatur lykil clé privée PKCS#8 + clâf privade PKCS#8 eochair phríobháideach PKCS#8 Chave privada PKCS#8 מפתח פרטי של PKCS#8 @@ -1511,7 +1531,7 @@ clau privada PKCS#8 Klucz prywatny PKCS#8 chave privada PKCS#8 - Chave privada PKCS#8 + Chave privada PKCS#8 Cheie privată PKCS#8 Личный ключ PKCS#8 Súkromný kľúč PKCS#8 @@ -1520,34 +1540,66 @@ Privat PKCS#8-nyckel PKCS#8 özel anahtarı закритий ключ PKCS#8 - PKCS#8 私钥 - PKCS#8 私人金鑰 + PKCS#8 私钥 + PKCS#8 私人金鑰 PKCS Public-Key Cryptography Standards PKCS#8 private key (encrypted) + PKCS#8- private sleutel (geënkripteer) + Ключ — PKCS#8, частен, шифриран + clau privada PKCS#8 (xifrada) + soukromý klíč PKCS#8 (zašifrovaný) + PKCS#8-privat nøgle (krypteret) + PKCS#8 privater Schlüssel (verschlüsselt) + PKCS#8 private key (encrypted) + clave privada PKCS#8 (cifrada) + PKCS#8 gako pribatua (zifratua) + PKCS#8 yksityinen avain (salattu) + clé privée PKCS#8 (chiffrée) + clâf privade PKCS#8 (cifrade) + eochair phríobháideach PKCS#8 (criptithe) + PKCS#8 privatni ključ (šifriran) + PKCS#8 személyes kulcs (titkosított) + Kunci privat PKCS#8 (terenkripsi) + Chiave privata PKCS#8 (cifrata) + PKCS#8 жеке кілті (шифрленген) + PKCS#8 개인 키(암호화됨) + Klucz prywatny PKCS#8 (zaszyfrowany) + chave privada PKCS#8 (encriptada) + Chave privada PKCS#8 (criptografada) + Личный ключ PKCS#8 (зашифрованный) + Súkromný kľúč PKCS#8 (šifrovaný) + Zasebni ključ PKCS#8 (širfirano) + Privat PKCS#8-nyckel (krypterad) + PKCS#8 özel anahtar (şifrelenmiş) + закритий ключ PKCS#8 (зашифрований) + PKCS#8 私钥(已加密) + PKCS#8 私人金鑰 (加密) PKCS Public-Key Cryptography Standards PKCS#10 certification request + PKCS#10-sertifiseringsversoek طلب شهادة PKCS#10 - Zapyt sertyfikacyi PKCS#10 + Zapyt sertyfikacyi PKCS#10 Заявка за сертификат — PKCS#10 sol·licitud de certificació PKCS#10 žádost o certifikát PKCS#10 PKCS#10-certifikatanmodning PKCS#10-Zertifikatanfrage Αίτηση πιστοποίησης PKCS#10 - PKCS#10 certification request + PKCS#10 certification request petición de certificados PKCS#10 PKCS#10 ziurtagirien eskaera PKCS#10-varmennepyyntö PKCS#10 váttanarumbøn requête de certification PKCS#10 + richieste certificazion PKCS#10 iarratas dheimhniúchán PKCS#10 Solicitude de certificado PKCS#10 בקשה מוסמכת PLCS#10 @@ -1567,7 +1619,7 @@ requèsta de certificacion PKCS#10 Żądanie certyfikatu PKCS#10 pedido de certificação PKCS#10 - Pedido de certificação PKCS#12 + Pedido de certificação PKCS#12 Cerere de certificat PKCS#10 Запрос сертификации PKCS#10 Požiadavka na certifikát PKCS#10 @@ -1578,8 +1630,8 @@ PKCS#10 sertifika isteği комплект сертифікатів PKCS#10 Yêu cầu chứng nhận PKCS#10 - PKCS#10 认证请求 - PKCS#10 憑證請求 + PKCS#10 认证请求 + PKCS#10 憑證請求 PKCS Public-Key Cryptography Standards @@ -1587,6 +1639,7 @@ X.509 certificate + X.509-sertifikaat شهادة X.509 Certificáu X.509 Сертификат — X.509 @@ -1595,12 +1648,13 @@ X.509-certifikat X.509-Zertifikat Πιστοποιητικό X.509 - X.509 certificate + X.509 certificate certificado X.509 X.509 ziurtagiria X.509-varmenne X.509 prógv certificat X.509 + certificât X.509 teastas X.509 Certificado X.509 אישור X.509 @@ -1618,7 +1672,7 @@ certificat X.509 Certyfikat X.509 certificado X.509 - Certificado X.509 + Certificado X.509 Certificat X.509 Сертификат X.509 Certifikát X.509 @@ -1627,58 +1681,41 @@ X.509-certifikat X.509 sertifikası сертифікат X.509 - X.509 证书 - X.509 憑證 + X.509 证书 + X.509 憑證 - Certificate revocation list - قائمة إبطال الشهادات - Llistáu de revocación de certificaos + certificate revocation list Списък с отхвърлени сертификати llista de revocació de certificats - seznam odvolaných certifikátů - Certifikattilbagekaldelsesliste - Liste widerrufener Zertifikate - Λίστα ανάκλησης πιστοποιητικού - Certificate revocation list + certifikat tilbagetrækkelsesliste + Zertifikatsperrliste + certificate revocation list lista de revocación de certificados - Ziurtagiri-errebokatzeen zerrenda + ziurtagiri-errebokatzeen zerrenda Varmenteiden sulkulista - Prógv afturtøkulisti liste de révocation de certificat - Liosta teastas cúlghairmthe - lista de certificados de revogación - רשימת אישורים מבוטלים Popis opozvanih vjerodajnica - Tanúsítvány-visszavonási lista - Lista de revocation de certificatos - Daftar pencabutan sertificat (CRL) + tanúsítvány visszavonási lista + daftar pencabutan sertifikat Elenco certificati di revoca - 証明書失効リスト - Сертификатты қайта шақыру тізімі + сертификатты қайта шақыру тізімі 인증서 철회 목록 - Panaikintų liudijimų sąrašas - Sertifikātu atsaukšanu saraksts - Certificaat revocation lijst - lista de revocacion de certificat Lista unieważnień certyfikatów lista de revogação de certificados - Lista de revogação de certificado - Listă de revocare a certificatelor - Список аннулирования сертификатов - Zoznam zrušených certifikátov - Datoteka seznama preklica potrdil - списак повлачења уверења - Spärrlista för certifikat - Sertifika iptal listesi + Lista de revogação de certificados + список аннулирования сертификатов + certifikatåterkallningslista + sertifika iptal listesi список відкликання сертифікатів - 证书吊销列表 - 憑證撤銷清單 + 证书吊销列表 + 憑證撤銷清單 PkiPath certification path + PkiPath-sertifiseringspad مسار شهادة PkiPath Camín de certificación PkiPath Сертификационна верига — PkiPath @@ -1687,12 +1724,13 @@ PkiPath-certifikationssti PkiPath-Zertifikatspfad Διαδρομή πιστοποιητικού PkiPath - PkiPath certification path + PkiPath certification path ruta de certificación PkiPath PkiPath ziurtagirien bide-izena PkiPath-varmennepolku PkiPath váttanleið chemin de certification PkiPath + percors di certificazion PkiPath conair dheimhniúcháin PkiPath Ruta de certificación PkiPath נתיב מאושר של PkiPath @@ -1710,7 +1748,7 @@ camin de certificacion PkiPath Ścieżka certyfikacji PkiPath caminho de certificação PkiPath - Pedido de certificação PkiPath + Pedido de certificação PkiPath Cale certificare PkiPath Путь сертификации PkiPath Cesta k certifikátu PkiPath @@ -1720,88 +1758,67 @@ PkiPath sertifika yolu шлях сертифікації PkiPath Đường dẫn cấp chứng nhận PkiPath - PkiPath 证书目录 - PkiPath 憑證路徑 + PkiPath 证书目录 + PkiPath 憑證路徑 - PS document - مستند PS - Documentu PS - Dakument PS - Документ — PS - document PS - dokument PS - PS-dokument - PS-Dokument - Έγγραφο PS - PS document - PS-dokumento - documento PS - PS dokumentua - PS-asiakirja - PS skjal - document PS - cáipéis PS - documento PS - מסמך PS - PS dokument - PS dokumentum - Documento PS - Dokumen PS - Documento PS - PS ドキュメント - PS құжаты - PS 문서 - PS dokumentas - PS dokuments - PS-dokument - PS-document - PS-dokument - document PS - Dokument PS - documento PS - Documento PS - Document PS - Документ PS - Dokument PS - Dokument PS - Dokument PS - ПС документ - PS-dokument - PS belgesi - документ PS - Tài liệu PS - PS 文档 - Ps 文件 - PS - PostScript + PostScript document + Документ — PostScrip + document PostScript + PostScript-dokument + PostScript-Dokument + PostScript document + documento PostScript + PostScript dokumentua + PostScript-asiakirja + document PostScript + PostScript dokument + PostScript dokumentum + Dokumen PostScript + Documento PostScript + PostScript құжаты + 포스트스크립트 문서 + PostScript dokumentas + Dokument PostScript + documento PostScript + Documento PostScript + Документ PostScript + Dokument PostScript + Dokument PostScript + Postscript-dokument + PostScript belgesi + документ PostScript + PostScript 文档 + PostScript 文件 - - + + Plucker document + Plucker-dokument مستند Plucker Documentu Plucker - Dakument Plucker + Dakument Plucker Документ — Plucker document Plucker dokument Plucker Pluckerdokument Plucker-Dokument Έγγραφο Plucker - Plucker document + Plucker document Plucker-dokumento documento de Plucker Plucker dokumentua Plucker-asiakirja Plucker skjal document Plucker + document Plucker cáipéis Plucker documento de Plucker מסמך של Plucker @@ -1821,7 +1838,7 @@ document Plucker Dokument Plucker documento Plucker - Documento do Plucker + Documento do Plucker Document Plucker Документ Plucker Dokument Plucker @@ -1832,54 +1849,61 @@ Plucker belgesi документ Plucker Tài liệu Plucker - Plucker 文档 - Plucker 文件 + Plucker 文档 + Plucker 文件 - + RAML document + RAML-dokument Documentu RAML + Документ — RAML document RAML dokument RAML RAML-dokument RAML-Dokument - RAML document + RAML document documento RAML RAML dokumentua RAML-asiakirja document RAML + document RAML cáipéis RAML מסמך RAML RAML dokument RAML dokumentum - dokumen RAML + Dokumen RAML Documento RAML RAML құжаты RAML 문서 + RAML dokumentas Document RAML Dokument RAML - Documento RAML + documento RAML + Documento RAML Документ RAML Dokument RAML + Dokument RAML РАМЛ документ RAML-dokument RAML belgesi документ RAML - RAML 文档 - RAML 文件 + RAML 文档 + RAML 文件 RAML RESTful API Modeling Language - + RELAX NG XML schema + RELAX NG XML-skema مخطط RELAX NG XML Схема за XML — RELAX NG esquema XML en RELAX NG @@ -1887,11 +1911,12 @@ RELAX NG XML-skema RELAX NG XML-Schema Σχήμα RELAX NG XML - RELAX NG XML schema + RELAX NG XML schema esquema XML RELAX NG RELAX NG XML eskema RELAX NG XML-skeema schéma XML RELAX NG + scheme XML RELAX NG scéimre XML RELAX NG Esquema XML RELAX NG סכנת RELAX NG XML @@ -1909,7 +1934,7 @@ esquèma XML RELAX NG Schemat XML RELAX NG Esquema RELAX NG XML - Esquema XML de RELAX NG + Esquema XML de RELAX NG Schemă RELAX NG XML XML-схема RELAX NG XML schéma RELAX NG @@ -1918,8 +1943,8 @@ RELAX NG XML-schema RELAX NG XML şeması XML-схема RELAX NG - RELAX NG XML 模式 - RELAX NG XML schema + RELAX NG XML 模式 + RELAX NG XML 綱要 RELAX NG REgular LAnguage for XML Next Generation @@ -1929,22 +1954,24 @@ RTF document + RTF-dokument مستند RTF Documentu RTF - Dakument RTF + Dakument RTF Документ — RTF document RTF dokument RTF RTF-dokument RTF-Dokument Έγγραφο RTF - RTF document + RTF document RTF-dokumento documento RTF RTF dokumentua RTF-asiakirja RTF skjal document RTF + document RTF cáipéis RTF documento RTF מסמך RTF @@ -1964,7 +1991,7 @@ document RTF Dokument RTF documento RTF - Documento RTF + Documento RTF Document RTF Документ RTF Dokument RTF @@ -1975,33 +2002,35 @@ RTF belgesi документ RTF Tài liệu RTF - RTF 文档 - RTF 文件 + RTF 文档 + RTF 文件 RTF Rich Text Format - + Sieve mail filter script + Sieve-posfiltreerskrip سكربت مرشح بريد Sieve - Skrypt filtravańnia pošty Sieve + Skrypt filtravańnia pošty Sieve Скрипт-филтър за пресяване на поща script de filtre de correu Sieve skript poštovního filtru Sieve Sieve e-post-filterprogram Sieve-E-Mail-Filterskript Δέσμη ενεργειών φιλτραρίσματος αλληλογραφίας Sieve - Sieve mail filter script + Sieve mail filter script secuencia de órdenes de filtro en Sieve Sieve posta-iragazki script-a Sieve-postinsuodatuskomentotiedosto script de filtrage de courriel Sieve + script filtri pueste Sieve script scagaire r-phost Sieve Script de filtro de correo Sieve תסריט סינון דואר של Sieve @@ -2021,7 +2050,7 @@ escript de filtratge de corrièr electronic Sieve Skrypt filtra poczty Sieve Script de filtragem de correio Sieve - Script de filtro de mensagens do Sieve + Script de filtro de mensagens do Sieve Script filtrare email Sieve Сценарий почтового фильтра Sieve Skript poštového filtra Sieve @@ -2029,33 +2058,35 @@ Script filtrim poste Sieve Сјев скрипта пропусника поште Sieve-epostfilterskript - Sieve posta filtre betiği + Sieve posta süzgeç betiği скрипт поштового фільтру Sieve Văn lệnh lọc thư Sieve - Sieve 邮件过滤脚本 - Sieve 郵件過濾指令稿 + Sieve 邮件过滤脚本 + Sieve 郵件篩選指令稿 SMIL document + SMIL-dokument مستند SMIL Documentu SMIL - Dakument SMIL + Dakument SMIL Документ — SMIL document SMIL dokument SMIL SMIL-dokument SMIL-Dokument Έγγραφο SMIL - SMIL document + SMIL document SMIL-dokumento documento SMIL SMIL dokumentua SMIL-asiakirja SMIL skjal document SMIL + document SMIL cáipéis SMIL documento SMIL מסמך SMIL @@ -2075,7 +2106,7 @@ document SMIL Dokument SMIL documento SMIL - Documento SMIL + Documento SMIL Document SMIL Документ SMIL Dokument SMIL @@ -2086,8 +2117,8 @@ SMIL belgesi документ SMIL Tài liệu SMIL - SMIL 文档 - SMIL 文件 + SMIL 文档 + SMIL 文件 SMIL Synchronized Multimedia Integration Language @@ -2098,7 +2129,7 @@ - + @@ -2106,6 +2137,7 @@ WPL playlist + WPL-speellys قائمة تشغيل WPL Списък за изпълнение — WPL llista de reproducció WPL @@ -2113,13 +2145,14 @@ WPL-afspilningsliste WPL-Wiedergabeliste Λίστα αναπαραγωγής WPL - WPL playlist + WPL playlist WPL-ludlisto lista de reproducción WPL WPL erreprodukzio-zerrenda WPL-soittolista WPL avspælingarlisti liste de lecture WPL + liste di riproduzion WPL seinmliosta WPL lista de reprodución WPL רשימת נגינה WPL @@ -2137,7 +2170,7 @@ lista de lectura WPL Lista odtwarzania WPL lista de reprodução WPL - Lista de reprodução do WPL + Lista de reprodução do WPL Listă redare WPL Список воспроизведения WPL Zoznam skladieb WPL @@ -2147,33 +2180,35 @@ WPL çalma listesi список відтворення WPL Danh mục nhạc WPL - WPL 播放列表 - WPL 播放清單 + WPL 播放列表 + WPL 播放清單 WPL Windows Media Player Playlist - + SQLite2 database + SQLite2-databasis قاعدة بيانات SQLite2 - Baza źviestak SQLite2 + Baza źviestak SQLite2 База от данни — SQLite2 base de dades SQLite2 databáze SQLite2 SQLite2-database SQLite2-Datenbank Βάση δεδομένων SQLite2 - SQLite2 database + SQLite2 database SQLite2-datumbazo base de datos SQLite2 SQLite2 datu-basea SQLite2-tietokanta SQLite2 dátustovnur base de données SQLite2 + base di dâts SQLite2 bunachar sonraí SQLite2 base de datos SQLite2 מסד נתונים מסוג SQLite2 @@ -2193,7 +2228,7 @@ banca de donadas SQLite2 Baza danych SQLite2 base de dados SQLite2 - Banco de dados SQLite2 + Banco de dados SQLite2 Bază de date SQLite2 База данных SQLite2 Databáza SQLite2 @@ -2201,33 +2236,35 @@ Bazë me të dhëna SQLite2 СКуЛајт2 база података SQLite2-databas - SQLite2 veritabanı + SQLite2 veri tabanı База даних SQLite2 Cơ sở dữ liệu SQLite2 - SQLite2 数据库 - SQLite2 資料庫 + SQLite2 数据库 + SQLite2 資料庫 - + SQLite3 database + SQLite3-databasis قاعدة بيانات SQLite3 - Baza źviestak SQLite3 + Baza źviestak SQLite3 База от данни — SQLite3 base de dades SQLite3 databáze SQLite3 SQLite3-database SQLite3-Datenbank Βάση δεδομένων SQLite3 - SQLite3 database + SQLite3 database SQLite3-datumbazo base de datos SQLite3 SQLite3 datu-basea SQLite3-tietokanta SQLite3 dátustovnur base de données SQLite3 + base di dâts SQLite3 bunachar sonraí SQLite3 base de datos SQLite3 מסד נתונים מסוג SQLite3 @@ -2247,7 +2284,7 @@ banca de donadas SQLite3 Baza danych SQLite3 base de dados SQLite3 - Banco de dados SQLite3 + Banco de dados SQLite3 Bază de date SQLite3 База данных SQLite3 Databáza SQLite3 @@ -2255,33 +2292,57 @@ Bazë me të dhëna SQLite3 СКуЛајт3 база података SQLite3-databas - SQLite3 veritabanı + SQLite3 veri tabanı база даних SQLite3 Cơ sở dữ liệu SQLite3 - SQLite3 数据库 - SQLite3 資料庫 + SQLite3 数据库 + SQLite3 資料庫 - + + + Apple System Profiler + System Profiler d'Apple + Apple System Profiler + Apple-Systeminformationen + Apple System Profiler + perfil del sistema de Apple + Applen järjestelmän profiloija + Apple profiler sustava + Profiler di sistema Apple + Profiler komputera Apple + Perfilador do sistema Apple + Apple Systeminformation + засіб профілювання системи Apple + Apple 系统概述 + + + + + + + GEDCOM family history + GEDCOM-familiegeskiedenis تاريخ عائلة GEDCOM - Siamiejnaja historyja GEDCOM + Siamiejnaja historyja GEDCOM Родословно дърво — GEDCOM antecedents familiars GEDCOM rodokmen GEDCOM GEDCOM-familiehistorie GEDCOM-Stammbaum Οικογενειακό ιστορικό GEDCOM - GEDCOM family history + GEDCOM family history historial familiar de GEDCOM GEDCOM famili historia GEDCOM-sukuhistoria GEDCOM familjusøga généalogie GEDCOM + gjenealogjie GEDCOM stair theaghlach GEDCOM historial de familia GEDCOM היסטוריה משפחתית של GEDCOM @@ -2302,7 +2363,7 @@ genealogia GEDCOM Plik historii rodziny GEDCOM história familiar GEDCOM - Histórico familiar do GEDCOM + Histórico familiar do GEDCOM Tablou genealogic GEDCOM История семьи GEDCOM Rodokmeň GEDCOM @@ -2313,13 +2374,13 @@ GEDCOM aile geçmişi історія родини GEDCOM Lịch sử gia đình GEDCOM - GEDCOM 家谱 - GEDCOM 家族史 + GEDCOM 家谱 + GEDCOM 族譜 GEDCOM GEnealogical Data COMmunication - + @@ -2327,22 +2388,24 @@ Flash video + Flash-video Flash مرئي Videu en Flash - Videa Flash + Videa Flash Видео — Flash vídeo de Flash video Flash Flashvideo Flash-Video Βίντεο Flash - Flash video + Flash video Flash-video vídeo Flash Flash bideoa Flash-video Flash video vidéo Flash + video Flash físeán Flash vídeo Flash וידאו של פלאש @@ -2363,7 +2426,7 @@ vidèo Flash Plik wideo Flash vídeo Flash - Vídeo Flash + Vídeo Flash Video Flash Видео Flash Video Flash @@ -2374,11 +2437,11 @@ Flash video відеокліп Flash Ảnh động Flash - Flash 视频 - Flash 視訊 + Flash 视频 + Flash 視訊 - + @@ -2387,6 +2450,7 @@ JavaFX video + JavaFX-video Videu en JavaFX Видео — JavaFX vídeo de JavaFX @@ -2394,13 +2458,14 @@ JavaFX-video JavaFX-Video Βίντεο JavaFX - JavaFX video + JavaFX video JavaFX-video vídeo JavaFX JavaFX bideoa JavaFX-video JavaFX video vidéo JavaFX + video JavaFX físeán JavaFX vídeo JavaFX וידאו JavaFX @@ -2412,12 +2477,13 @@ JavaFX 動画 JavaFX аудиосы JavaFX 동영상 + JavaFX vaizdo įrašas JavaFX video JavaFX video vidèo JavaFX Plik wideo JavaFX vídeo JavaFX - Vídeo JavaFX + Vídeo JavaFX Video JavaFX Видео JavaFX Video JavaFX @@ -2426,32 +2492,36 @@ JavaFX-video JavaFX video відеокліп JavaFX - JavaFX 视频 - JavaFX 視訊 + JavaFX 视频 + JavaFX 視訊 - + - + SGF record + SGF-rekord تسجيلة SGF - Zapisanaja hulnia SGF + Zapisanaja hulnia SGF Запис — SGF registre SGF nahrávka SGF SGF-optagelse SGF-Aufzeichnung Εγγραφή SGF - SGF record + SGF record grabación SGF SGF erregistroa SGF-nauhoitus SGF met partie SGF + regjistrazion SGF taifead SGF Grabación SGF הקלטת SGF @@ -2471,7 +2541,7 @@ partida SGF Zapis gry SGF gravação SGF - Gravação SGF + Gravação SGF Înregistrare SGF Запись SGF Záznam SGF @@ -2482,35 +2552,37 @@ SGF kaydı запис SGF Mục ghi SGF - SGF 记录 - SGF 紀錄 + SGF 记录 + SGF 紀錄 SGF Smart Game Format - - + + XLIFF translation file + XLIFF-vertaallêer ملف ترجمة XLIFF Ficheru de traducciones XLIFF - Fajł pierakładu XLIFF + Fajł pierakładu XLIFF Превод — XLIFF fitxer de traducció XLIFF soubor překladu XLIFF XLIFF-oversættelsesfil XLIFF-Übersetzung Αρχείο μετάφρασης XLIFF - XLIFF translation file + XLIFF translation file archivo de traducción XLIFF XLIFF itzulpen-fitxategia XLIFF-käännöstiedosto XLIFF týðingarfíla fichier de traduction XLIFF + file di traduzion XLIFF comhad aistriúcháin XLIFF ficheiro de tradución XLIFF קובץ תרגום CLIFF @@ -2530,7 +2602,7 @@ fichièr de traduccion XLIFF Plik tłumaczenia XLIFF ficheiro de tradução XLIFF - Arquivo de tradução XLIFF + Arquivo de tradução XLIFF Fișier de traducere XLIFF Файл перевода XLIFF Súbor prekladu XLIFF @@ -2541,8 +2613,8 @@ XLIFF çeviri dosyası файл перекладу XLIFF Tập tin dịch XLIFF - XLIFF 翻译文件 - XLIFF 翻譯檔 + XLIFF 翻译文件 + XLIFF 翻譯檔 XLIFF XML Localization Interchange File Format @@ -2550,13 +2622,14 @@ - + - + YAML document + YAML-dokument مستند YAML Documentu YAML Документ — YAML @@ -2565,13 +2638,14 @@ YAML-dokument YAML-Dokument Έγγραφο YAML - YAML document + YAML document YAML-dokumento documento YAML YAML dokumentua YAML-asiakirja YAML skjal document YAML + document YAML cáipéis YAML documento YAML מסמך YAML @@ -2589,7 +2663,7 @@ document YAML Dokument YAML documento YAML - Documento YAML + Documento YAML Document YAML Документ YAML Dokument YAML @@ -2598,14 +2672,14 @@ YAML-dokument YAML belgesi документ YAML - YAML 文档 - YAML 文件 + YAML 文档 + YAML 文件 YAML YAML Ain't Markup Language - + @@ -2614,10 +2688,11 @@ Corel Draw drawing + Corel Draw-tekening تصميم Corel Draw Dibuxu de Corel Draw Corel Draw çəkimi - Rysunak Corel Draw + Rysunak Corel Draw Чертеж — Corel Draw dibuix de Corel Draw kresba Corel Draw @@ -2625,13 +2700,14 @@ Corel Draw-tegning Corel-Draw-Zeichnung Σχέδιο Corel Draw - Corel Draw drawing + Corel Draw drawing grafikaĵo de Corel Draw dibujo de Corel Draw Corel Draw-eko marrazkia Corel Draw -piirros Corel Draw tekning dessin Corel Draw + dissen Corel Draw líníocht Corel Draw debuxo de Corel Draw ציור של Corel Draw @@ -2643,7 +2719,7 @@ Corel Draw ドロー Corel Draw-ის ნახაზი Corel Draw суреті - 코렐 드로우 드로잉 + Corel Draw 드로잉 Corel Draw piešinys Corel Draw zīmējums Lukisan Corel Draw @@ -2653,7 +2729,7 @@ dessenh Corel Draw Rysunek Corel Draw desenho Corel Drawdesenho Corel Draw - Desenho do Corel Draw + Desenho do Corel Draw Desen Corel Draw Рисунок Corel Draw Kresba Corel Draw @@ -2664,11 +2740,11 @@ Corel Draw çizimi малюнок Corel Draw Bản vẽ Corel Draw - Corel Draw 绘图 - Corel Draw 繪圖 + Corel Draw 绘图 + Corel Draw 繪圖 - + @@ -2681,22 +2757,24 @@ HPGL file + HPGL-lêer ملف HPGL Ficheru HPGL - Fajł HPGL + Fajł HPGL Файл — HPGL fitxer HPGL soubor HPGL HPGL-fil HPGL-Datei Αρχείο HPGL - HPGL file + HPGL file HPGL-dosiero archivo HPGL HPGL fitxategia HPGL-tiedosto HPGL fíla fichier HPGL + file HPGL comhad HPGL ficheiro HPGL קובץ HGPL @@ -2716,7 +2794,7 @@ fichièr HPGL Plik HPGL ficheiro HPGL - Arquivo HPGL + Arquivo HPGL Fișier HPGL Файл HPGL Súbor HPGL @@ -2727,8 +2805,8 @@ HPGL dosyası файл HPGL Tập tin HPGL - HPGL 文件 - HPGL 檔案 + HPGL 文件 + HPGL 檔案 HPGL HP Graphics Language @@ -2736,22 +2814,24 @@ PCL file + PCL-lêer ملف PCL FIcheru PCL - Fajł PCL + Fajł PCL Файл — PCL fitxer PCL soubor PCL PCL-fil PCL-Datei Αρχείο PCL - PCL file + PCL file PCL-dosiero archivo PCL PCL fitxategia PCL-tiedosto PCL fíla fichier PCL + file PCL comhad PCL ficheiro PCL קובץ PCL @@ -2771,7 +2851,7 @@ fichièr PCL Plik PCL ficheiro PCL - Arquivo PCL + Arquivo PCL Fișier PCL Файл PCL Súbor PCL @@ -2782,8 +2862,8 @@ PCL dosyası файл PCL Tập tin PCL - PCL 文件 - PCL 檔 + PCL 文件 + PCL 檔 PCL HP Printer Control Language @@ -2791,10 +2871,11 @@ Lotus 1-2-3 spreadsheet + Lotus 1-2-3 sigblad جدول Lotus 1-2-3 Fueya de cálculu de Lotus 1-2-3 Lotus 1-2-3 hesab cədvəli - Raźlikovy arkuš Lotus 1-2-3 + Raźlikovy arkuš Lotus 1-2-3 Таблица — Lotus 1-2-3 full de càlcul de Lotus 1-2-3 sešit Lotus 1-2-3 @@ -2802,13 +2883,14 @@ Lotus 1-2-3-regneark Lotus-1-2-3-Tabelle Λογιστικό φύλλο Lotus 1-2-3 - Lotus 1-2-3 spreadsheet + Lotus 1-2-3 spreadsheet Kalkultabelo de Lotus 1-2-3 hoja de cálculo de Lotus 1-2-3 Lotus 1-2-3 kalkulu-orria Lotus 1-2-3 -taulukko Lotus 1-2-3 rokniark feuille de calcul Lotus 1-2-3 + sfuei di calcul Lotus 1-2-3 scarbhileog Lotus 1-2-3 folla de cálculo de Lotus 1-2-3 גיליון נתונים של Lotus 1-2-3 @@ -2829,7 +2911,7 @@ fuèlh de calcul Lotus 1-2-3 Arkusz Lotus 1-2-3 folha de cálculo Lotus 1-2-3 - Planilha do Lotus 1-2-3 + Planilha do Lotus 1-2-3 Foaie de calcul Lotus 1-2-3 Электронная таблица Lotus 1-2-3 Zošit Lotus 1-2-3 @@ -2837,14 +2919,14 @@ Fletë llogaritjesh Lotus 1-2-3 Лотусова 1-2-3 табела Lotus 1-2-3-kalkylblad - Lotus 1-2-3 hesap tablosu + Lotus 1-2-3 hesap çizelgesi ел. таблиця Lotus 1-2-3 Bảng tính Lotus 1-2-3 - Lotus 1-2-3 电子表格 - Lotus 1-2-3 試算表 + Lotus 1-2-3 电子表格 + Lotus 1-2-3 試算表 - + @@ -2858,67 +2940,59 @@ - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Лотусов Писац Про - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro - Lotus Word Pro + Lotus Word Pro document + Документ — Lotus Word Pro + document de Lotus Word Pro + Lotus Word Pro-dokument + Lotus-Word-Pro-Dokument + Lotus Word Pro document + documento de Lotus Word Pro + Lotus Word Pro dokumentua + Lotus Word Pro -asiakirja + document Lotus Word Pro + Lotus Word Pro dokument + Lotus Word Pro dokumentum + Dokumen Lotus Word Pro + Documento Lotus Word Pro + Lotus Word Pro құжаты + 로투스 워드 프로 문서 + Dokument Lotus Word Pro + documento Lotus Word Pro + Documento do Lotus Word Pro + Документ Lotus Word Pro + Dokument Lotus Word Pro + Dokument Lotus Word Pro + Lotus Word Pro-dokument + Lotus Word Pro belgesi + документ Lotus Word Pro + Lotus Word Pro 文档 + Lotus Word Pro 文件 - + JET database + JET-databasis قاعدة بيانات JET Base de datos JETº - Baza źviestak JET + Baza źviestak JET База от данни — JET base de dades JET databáze JET JET-database JET-Datenbank Βάση δεδομένων JET - JET database + JET database JET-datumbazo base de datos JET JET datu-basea JET-tietokanta JET dátustovnur base de données JET + base di dâts JET bunachar sonraí JET base de datos JET מסד נתונים מסוג JET @@ -2938,7 +3012,7 @@ banca de donadas JET Baza Danych JET base de dados JET - Banco de dados JET + Banco de dados JET Bază de date JET База данных JET Databáza JET @@ -2946,19 +3020,18 @@ Bazë me të dhëna JET ЈЕТ база података JET-databas - JET veritabanı + JET veri tabanı База даних JET Cơ sở dữ liệu JET - JET 数据库 - JET 資料庫 + JET 数据库 + JET 資料庫 JET Joint Engine Technology - + - @@ -2968,6 +3041,7 @@ Microsoft Cabinet archive + Microsoft Cabinet-argief أرشيف Microsoft Cabinet Архив — Microsoft Cabinet arxiu de Microsoft Cabinet @@ -2975,12 +3049,13 @@ Microsoft Cabinet-arkiv Microsoft-Cabinet-Archiv Συμπιεσμένο αρχείο Microsoft Cabinet - Microsoft Cabinet archive + Microsoft Cabinet archive archivador Cabinet de Microsoft Microsoft Cabinet artxiboa Microsoft Cabinet -arkisto Microsoft Cabinet skjalasavn archive Cab Microsoft + archivi Cabinet Microsoft cartlann Microsoft Cabinet arquivo de Microsoft Cabinet ארכיון CAB (מיקרוסופט) @@ -2992,14 +3067,14 @@ Microsoft Cabinet アーカイブ Microsoft-ის Cabinet არქივი Microsoft Cabinet архиві - Microsoft Cabinte 압축 파일 + Microsoft Cabinet 압축 파일 Microsoft Cabinet archyvas Microsoft kabineta arhīvs Microsoft Cabinet-archief archiu Cab Microsoft Archiwum Microsoft Cabinet arquivo Microsoft Cabinet - Pacote Cabinet da Microsoft + Pacote Cabinet da Microsoft Arhivă Microsoft Cabinet Архив Microsoft Cabinet Archív Microsoft Cabinet @@ -3009,32 +3084,34 @@ Microsoft Cabinet arşivi архів Cabinet Microsoft Kho lưu Cabinet Microsoft - Microsoft Cabinet 归档文件 - 微軟 Cabinet 封存檔 + Microsoft Cabinet 归档文件 + 微軟 Cabinet 封存檔 - + Excel spreadsheet + Excel-sigblad جدول Excel - Raźlikovy akruš Excel + Raźlikovy akruš Excel Таблица — Excel full de càlcul d'Excel sešit Excel Excelregneark Excel-Tabelle Λογιστικό φύλλο Excel - Excel spreadsheet + Excel spreadsheet Excel-kalkultabelo hoja de cálculo de Excel Excel kalkulu-orria Excel-taulukko Excel rokniark feuille de calcul Excel + sfuei di calcul Excel scarbhileog Excel folla de cálculo de Excel גליון נתונים של Excel @@ -3055,7 +3132,7 @@ fuèlh de calcul Excel Arkusz Excel folha de cálculo Excel - Planilha do Excel + Planilha do Excel Foaie de calcul Excel Электронная таблица Excel Zošit Excel @@ -3063,14 +3140,14 @@ Fletë llogaritje Excel Екселова табела Excel-kalkylblad - Excel çalışma sayfası + Excel hesap çizelgesi ел. таблиця Excel Bảng tính Excel - Excel 电子表格 - Excel 試算表 + Excel 电子表格 + Excel 試算表 - + @@ -3086,17 +3163,19 @@ Excel add-in + Excel-byvoeging Приставка — Excel complement d'Excel doplněk aplikace Excel Excel-tilføjelse Excel Add-in Πρόσθετο Excel - Excel add-in + Excel add-in complemento de Excel Excel gehigarria Excel-lisäosa complément Excel + zonte Excel breiseán Excel complemento de Excel תוסף של Excel @@ -3114,7 +3193,7 @@ complement Excel Dodatek Excel Extensão Excel - Suplemento do Excel + Suplemento do Excel Дополнение Excel Doplnok aplikácie Excel Vstavek Excel @@ -3122,25 +3201,27 @@ Excel-tillägg Excel eklentisi додаток Excel - Excel 外接程序 - Excel 增益集 + Excel 外接程序 + Excel 增益集 Excel 2007 binary spreadsheet + Excel 2007 binêre sigblad Таблица — Excel 2007, двоична full de càlcul binari d'Excel 2007 binární formát sešitu Excel 2007 Binært Excel 2007-regneark Excel-2007-Tabelle (binär) Δυαδικό λογιστικό φύλλο Excel 2007 - Excel 2007 binary spreadsheet + Excel 2007 binary spreadsheet hoja de cálculo binaria de Excel 2007 Excel 2007 kalkulu-orri binarioa Excel 2007:n binaarinen taulukko feuille de calcul binaire Excel 2007 + sfuei di calcul binari Excel 2007 scarbhileog dhénártha Excel 2007 ficheiro binario de folla de cálculo Excel 2007 גיליון נתונים בינרי של Excel 2007 @@ -3158,37 +3239,39 @@ fuèlh de calcul binaire Excel 2007 Binarny arkusz Excel 2007 folha de cálculo binária Excel 2007 - Planilha binária do Excel 2007 + Planilha binária do Excel 2007 Двоичная электронная таблица Excel 2007 Binárny zošit Excel 2007 Binarna preglednica Excel 2007 Ексел 2007 бинарна табела Binärt Excel 2007-kalkylblad - Excel 2007 ikilik çalışma sayfası + Excel 2007 ikilik hesap çizelgesi бінарна електронна таблиця Excel 2007 - Excel 2007 二进制电子表格 - Excel 2007 二進位試算表 + Excel 2007 二进制电子表格 + Excel 2007 二進位試算表 Excel spreadsheet + Excel-sigblad جدول Excel - Raźlikovy akruš Excel + Raźlikovy akruš Excel Таблица — Excel full de càlcul d'Excel sešit Excel Excelregneark Excel-Tabelle Λογιστικό φύλλο Excel - Excel spreadsheet + Excel spreadsheet Excel-kalkultabelo hoja de cálculo de Excel Excel kalkulu-orria Excel-taulukko Excel rokniark feuille de calcul Excel + sfuei di calcul Excel scarbhileog Excel folla de cálculo de Excel גליון נתונים של Excel @@ -3209,7 +3292,7 @@ fuèlh de calcul Excel Arkusz Excel folha de cálculo Excel - Planilha do Excel + Planilha do Excel Foaie de calcul Excel Электронная таблица Excel Zošit Excel @@ -3217,27 +3300,30 @@ Fletë llogaritje Excel Екселова табела Excel-kalkylblad - Excel çalışma sayfası + Excel hesap çizelgesi ел. таблиця Excel Bảng tính Excel - Excel 电子表格 - Excel 試算表 + Excel 电子表格 + Excel 試算表 Excel spreadsheet template + Excel-sigbladsjabloon + Шаблон за таблица — Excel plantilla de full de càlcul d'Excel šablona tabulky Excel Excel-regnearksskabelon Excel-Tabellenvorlage Πρότυπο λογιστικού φύλλου Excel - Excel spreadsheet template - plantilla de libro de Excel + Excel spreadsheet template + plantilla de hoja de cálculo de Excel Excel kalkulu-orri txantiloia Excel-taulukkomalli modèle de feuille de calcul Excel + model sfuei di calcul Excel teimpléad scarbhileoige Excel תבנית גיליון נתונים של Excel Predložak Excel proračunske tablice @@ -3249,37 +3335,40 @@ Excel 스프레드시트 서식 Modèl de fuèlh de calcul Excel Szablon arkusza Excel - modelo de folha de cálculo Excel - Modelo de planilha do Excel + predefinição da folha de cálculo Excel + Modelo de planilha do Excel Шаблон таблицы Excel Šablóna tabuľky aplikácie Excel + Predloga preglednice Excel Екселов шаблон табеле Excel-kalkylarksmall - Excel hesap tablosu şablonu + Excel hesap çizelgesi şablonu шаблон електронної таблиці Excel - Excel 电子表格模板 - Excel 試算表範本 + Excel 电子表格模板 + Excel 試算表範本 PowerPoint presentation + PowerPoint-voorlegging عرض تقديمي PowerPoint - Prezentacyja PowerPoint + Prezentacyja PowerPoint Презентация — PowerPoint presentació de PowerPoint prezentace PowerPoint PowerPoint-præsentation PowerPoint-Präsentation Παρουσίαση PowerPoint - PowerPoint presentation + PowerPoint presentation PowerPoint-prezentaĵo presentación de PowerPoint PowerPoint aurkezpena PowerPoint-esitys PowerPoint framløga présentation PowerPoint + presentazion PowerPoint láithreoireacht PowerPoint presentación de PowerPoint מצגת PowerPoint @@ -3299,7 +3388,7 @@ presentacion PowerPoint Prezentacja PowerPoint apresentação PowerPoint - Apresentação do PowerPoint + Apresentação do PowerPoint Prezentare PowerPoint Презентация PowerPoint Prezentácia PowerPoint @@ -3310,8 +3399,8 @@ PowerPoint sunumu презентація PowerPoint Trình diễn PowerPoint - PowerPoint 演示文稿 - PowerPoint 簡報 + PowerPoint 演示文稿 + PowerPoint 簡報 @@ -3323,17 +3412,19 @@ PowerPoint add-in + PowerPoint-byvoeging Приставка — PowerPoint complement de PowerPoint doplněk PowerPoint PowerPoint-tilføjelse PowerPoint Add-in Πρόσθετο PowerPoint - PowerPoint add-in + PowerPoint add-in complemento de PowerPoint PowerPoint gehigarria PowerPoint-lisäosa complément PowerPoint + zonte PowerPoint breiseán PowerPoint complemento de PowerPoint תוסף של PowerPoint @@ -3351,7 +3442,7 @@ complement PowerPoint Dodatek PowerPoint extensão PowerPoint - Suplemento do PowerPoint + Suplemento do PowerPoint Дополнение PowerPoint Doplnok aplikácie PowerPoint Vstavek PowerPoint @@ -3359,28 +3450,30 @@ PowerPoint-tillägg PowerPoint eklentisi додаток PowerPoint - PowerPoint 外接程序 - PowerPoint 增益集 + PowerPoint 外接程序 + PowerPoint 增益集 PowerPoint presentation + PowerPoint-voorlegging عرض تقديمي PowerPoint - Prezentacyja PowerPoint + Prezentacyja PowerPoint Презентация — PowerPoint presentació de PowerPoint prezentace PowerPoint PowerPoint-præsentation PowerPoint-Präsentation Παρουσίαση PowerPoint - PowerPoint presentation + PowerPoint presentation PowerPoint-prezentaĵo presentación de PowerPoint PowerPoint aurkezpena PowerPoint-esitys PowerPoint framløga présentation PowerPoint + presentazion PowerPoint láithreoireacht PowerPoint presentación de PowerPoint מצגת PowerPoint @@ -3400,7 +3493,7 @@ presentacion PowerPoint Prezentacja PowerPoint apresentação PowerPoint - Apresentação do PowerPoint + Apresentação do PowerPoint Prezentare PowerPoint Презентация PowerPoint Prezentácia PowerPoint @@ -3411,25 +3504,28 @@ PowerPoint sunumu презентація PowerPoint Trình diễn PowerPoint - PowerPoint 演示文稿 - PowerPoint 簡報 + PowerPoint 演示文稿 + PowerPoint 簡報 PowerPoint slide + PowerPoint-skyfie Diapositiva de PowerPoint + Кадър — PowerPoint dispositiva de PowerPoint promítání PowerPoint PowerPoint-dias PowerPoint-Folie Διαφάνεια PowerPoint - PowerPoint slide + PowerPoint slide diapositiva de PowerPoint PowerPoint diapositiba PowerPoint-dia diapositive PowerPoint + diapositive PowerPoint sleamhnán PowerPoint שקופית של PowerPoint PowerPoint prezentacija @@ -3438,40 +3534,43 @@ Salindia PowerPoint Diapositiva PowerPoint PowerPoint слайды - 파워포인트 슬라이드 + PowerPoint 슬라이드 Diapositiva PowerPoint Slajd PowerPoint diapositivo PowerPoint - Slide do PowerPoint + Slide do PowerPoint Слайд PowerPoint Snímka aplikácie PowerPoint + Prosojnica PowerPoint Пауер поинт слајд PowerPoint-bildspel PowerPoint sunusu слайд PowerPoint - PowerPoint 幻灯片 - PowerPoint 投影片 + PowerPoint 幻灯片 + PowerPoint 投影片 PowerPoint presentation + PowerPoint-voorlegging عرض تقديمي PowerPoint - Prezentacyja PowerPoint + Prezentacyja PowerPoint Презентация — PowerPoint presentació de PowerPoint prezentace PowerPoint PowerPoint-præsentation PowerPoint-Präsentation Παρουσίαση PowerPoint - PowerPoint presentation + PowerPoint presentation PowerPoint-prezentaĵo presentación de PowerPoint PowerPoint aurkezpena PowerPoint-esitys PowerPoint framløga présentation PowerPoint + presentazion PowerPoint láithreoireacht PowerPoint presentación de PowerPoint מצגת PowerPoint @@ -3491,7 +3590,7 @@ presentacion PowerPoint Prezentacja PowerPoint apresentação PowerPoint - Apresentação do PowerPoint + Apresentação do PowerPoint Prezentare PowerPoint Презентация PowerPoint Prezentácia PowerPoint @@ -3502,25 +3601,28 @@ PowerPoint sunumu презентація PowerPoint Trình diễn PowerPoint - PowerPoint 演示文稿 - PowerPoint 簡報 + PowerPoint 演示文稿 + PowerPoint 簡報 PowerPoint presentation template + PowerPoint-voorleggingsjabloon Plantía de presentaciones de PowerPoint + Шаблон за презентация — PowerPoint plantilla de presentació de PowerPoint šablona prezentace PowerPoint PowerPoint-præsentationsskabelon PowerPoint-Präsentationsvorlage Πρότυπο παρουσίασης PowerPoint - PowerPoint presentation template + PowerPoint presentation template plantilla de presentación de PowerPoint PowerPoint aurkezpen txantiloia PowerPoint-esitysmalli modèle de présentation PowerPoint + model di presentazion PowerPoint teimpléad láithreoireachta PowerPoint תבנית מצגת PowerPoint Predložak PowerPoint prezentacije @@ -3529,255 +3631,230 @@ Templat presentasi PowerPoint Modello presentazione PowerPoint PowerPoint презентация үлгісі - PowerPoint 프리젠테이션 서식 + PowerPoint 프레젠테이션 서식 Modèl de presentacion PowerPoint Szablon prezentacji PowerPoint - modelo de apresentação PowerPoint - Modelo de apresentação do PowerPoint + predefinição de apresentação PowerPoint + Modelo de apresentação do PowerPoint Шаблон презентации PowerPoint Šablóna prezentácie aplikácie PowerPoint + Predloga predstavitve PowerPoint Шаблон презентације Пауер поинта PowerPoint-presentationsmall PowerPoint sunum şablonu шаблон презентації PowerPoint - PowerPoint 演示文稿模板 - PowerPoint 簡報範本 + PowerPoint 演示文稿模板 + PowerPoint 簡報範本 - Office Open XML Visio Drawing + Office Open XML Visio drawing + Чертеж — Office Open XML Visio dibuix en Office Open XML de Visio - kresba Office Open XML Visio Office Open XML Visio-tegning Office-Open-XML-Visio-Zeichnung - Σχέδιο Office Open XML Visio - Office Open XML Visio Drawing - dibujo en OOXML de Visio + Office Open XML Visio drawing + dibujo Office Open XML de Visio Office Open XML Visio marrazkia Office Open XML Visio -piirros dessin Visio Office Open XML - Líníocht Office Open XML Visio - ציור Visio ב־Open XML מבית Office Office Open XML Visio crtež Office Open XML Visio rajz - Designo Office Open XML Visio - Gambar Visio Office Open XML + Gambar Office Open XML Visio Disegno Visio Office Open XML Office Open XML Visio суреті 오피스 오픈 XML 비지오 드로잉 Rysunek Office Open XML Visio - desenho Office Open XML Visio - Desenho do Visio em Office Open XML + desenho Visio do Open Office XML + Desenho do Office Open XML Visio Рисунок Visio формата Office Open XML - Kresba aplikácie Visio Office Open XML - Офисов отворени ИксМЛ Визио цртеж - Office Open XML Visio-teckning - Office Open XML Visio Çizimi - схема VIisio у форматі Office Open XML - Office Open XML Visio 绘图 - Office Open XML Visio 繪圖 + Kresba aplikácie Office Open XML Visio + Risba Office Open XML Visio + Office Open XML Visio-ritning + Office Open XML Visio çizimi + малюнок Visio Office Open у XML + Office Open XML Visio 绘图 + Office Open XML Visio 繪圖 - Office Open XML Visio Template + Office Open XML Visio template + Шаблон за чертеж — Office Open XML Visio plantilla en Office Open XML de Visio - šablona Office Open XML Visio Office Open XML Visio-skabelon Office-Open-XML-Visio-Vorlage - Πρότυπο Office Open XML Visio - Office Open XML Visio Template - plantilla en OOXML de Visio + Office Open XML Visio template + plantilla Office Open XML de Visio Office Open XML Visio txantiloia Office Open XML Visio -malli modèle Visio Office Open XML - Teimpléad Office Open XML Visio - תבנית Visio ב־Open XML מבית Office - Predložak Office Open XML Visio + Office Open XML Visio predložak Office Open XML Visio sablon - Patrono Office Open XML Visio - Templat Visio Office Open XML + Templat Office Open XML Visio Modello Visio Office Open XML Office Open XML Visio үлгісі - 오피스 오픈 XML 비지오 서식 + 오피스 오픈 XML 비지오 양식 Szablon Office Open XML Visio - modelo Office Open XML Visio - Modelo do Visio em Office Open XML + predefinição Visio do Open Office XML + Modelo Office Open XML Visio Шаблон Visio формата Office Open XML - Šablóna aplikácie Visio Office Open XML - Офисов отворени ИксМЛ Визио шаблон + Šablóna aplikácie Office Open XML Visio + Predloga Office Open XML Visio Office Open XML Visio-mall - Office Open XML Visio Şablonu - шаблон Visio у форматі Office Open XML - Office Open XML Visio 模板 - Office Open XML Visio 範本 + Office Open XML Visio şablonu + шаблон Visio Office Open у XML + Office Open XML Visio 模板 + Office Open XML Visio 範本 - Office Open XML Visio Stencil + Office Open XML Visio stencil + Образци — Office Open XML Visio patró en Office Open XML de Visio - objekty Office Open XML Visio Office Open XML Visio-stencil Office-Open-XML-Visio-Schablone - Office Open XML Visio Stencil - esténcil en OOXML de Visio + Office Open XML Visio stencil + galería de símbolos Office Open XML de Visio Office Open XML Visio txantiloia - Office Open XML Visio -kaavio + Office Open XML Visio -malli stencil Visio Office Open XML - Stionsal Office Open XML Visio - דגם ל־Visio ב־Open XML מבית Office Office Open XML Visio šablona Office Open XML Visio stencil - Stencil Office Open XML Visio - Stensil Visio Office Open XML + Stensil Office Open XML Visio Stencil Visio Office Open XML - Office Open XML пішімінің Visio трафареті + Office Open XML Visio трафареті 오피스 오픈 XML 비지오 스텐실 Wzór Office Open XML Visio - Stencil Office Open XML Visio - Estêncil do Visio em Office Open XML + estêncil Visio do Open Office XML + Estêncil do Office Open XML Visio Трафарет Visio формата Office Open XML - Objekt aplikácie Visio Office Open XML - Офисов отворени ИксМЛ Визио шаблон Office Open XML Visio-stencil - Office Open XML Visio Kalıbı - трафарет Visio у форматі Office Open XML - Office Open XML Visio 模具 - Office Open XML Visio 圖形樣本 + Office Open XML Visio kalıbı + трафарет Visio Office Open у XML + Office Open XML Visio 模具 - Office Open XML Visio Drawing + Office Open XML Visio drawing + Чертеж — Office Open XML Visio dibuix en Office Open XML de Visio - kresba Office Open XML Visio Office Open XML Visio-tegning Office-Open-XML-Visio-Zeichnung - Σχέδιο Office Open XML Visio - Office Open XML Visio Drawing - dibujo en OOXML de Visio + Office Open XML Visio drawing + dibujo Office Open XML de Visio Office Open XML Visio marrazkia Office Open XML Visio -piirros dessin Visio Office Open XML - Líníocht Office Open XML Visio - ציור Visio ב־Open XML מבית Office Office Open XML Visio crtež Office Open XML Visio rajz - Designo Office Open XML Visio - Gambar Visio Office Open XML + Gambar Office Open XML Visio Disegno Visio Office Open XML Office Open XML Visio суреті 오피스 오픈 XML 비지오 드로잉 Rysunek Office Open XML Visio - desenho Office Open XML Visio - Desenho do Visio em Office Open XML + desenho Visio do Open Office XML + Desenho do Office Open XML Visio Рисунок Visio формата Office Open XML - Kresba aplikácie Visio Office Open XML - Офисов отворени ИксМЛ Визио цртеж - Office Open XML Visio-teckning - Office Open XML Visio Çizimi - схема VIisio у форматі Office Open XML - Office Open XML Visio 绘图 - Office Open XML Visio 繪圖 + Kresba aplikácie Office Open XML Visio + Risba Office Open XML Visio + Office Open XML Visio-ritning + Office Open XML Visio çizimi + малюнок Visio Office Open у XML + Office Open XML Visio 绘图 + Office Open XML Visio 繪圖 - Office Open XML Visio Template + Office Open XML Visio template + Шаблон за чертеж — Office Open XML Visio plantilla en Office Open XML de Visio - šablona Office Open XML Visio Office Open XML Visio-skabelon Office-Open-XML-Visio-Vorlage - Πρότυπο Office Open XML Visio - Office Open XML Visio Template - plantilla en OOXML de Visio + Office Open XML Visio template + plantilla Office Open XML de Visio Office Open XML Visio txantiloia Office Open XML Visio -malli modèle Visio Office Open XML - Teimpléad Office Open XML Visio - תבנית Visio ב־Open XML מבית Office - Predložak Office Open XML Visio + Office Open XML Visio predložak Office Open XML Visio sablon - Patrono Office Open XML Visio - Templat Visio Office Open XML + Templat Office Open XML Visio Modello Visio Office Open XML Office Open XML Visio үлгісі - 오피스 오픈 XML 비지오 서식 + 오피스 오픈 XML 비지오 양식 Szablon Office Open XML Visio - modelo Office Open XML Visio - Modelo do Visio em Office Open XML + predefinição Visio do Open Office XML + Modelo Office Open XML Visio Шаблон Visio формата Office Open XML - Šablóna aplikácie Visio Office Open XML - Офисов отворени ИксМЛ Визио шаблон + Šablóna aplikácie Office Open XML Visio + Predloga Office Open XML Visio Office Open XML Visio-mall - Office Open XML Visio Şablonu - шаблон Visio у форматі Office Open XML - Office Open XML Visio 模板 - Office Open XML Visio 範本 + Office Open XML Visio şablonu + шаблон Visio Office Open у XML + Office Open XML Visio 模板 + Office Open XML Visio 範本 - Office Open XML Visio Stencil + Office Open XML Visio stencil + Образци — Office Open XML Visio patró en Office Open XML de Visio - objekty Office Open XML Visio Office Open XML Visio-stencil Office-Open-XML-Visio-Schablone - Office Open XML Visio Stencil - esténcil en OOXML de Visio + Office Open XML Visio stencil + galería de símbolos Office Open XML de Visio Office Open XML Visio txantiloia - Office Open XML Visio -kaavio + Office Open XML Visio -malli stencil Visio Office Open XML - Stionsal Office Open XML Visio - דגם ל־Visio ב־Open XML מבית Office Office Open XML Visio šablona Office Open XML Visio stencil - Stencil Office Open XML Visio - Stensil Visio Office Open XML + Stensil Office Open XML Visio Stencil Visio Office Open XML - Office Open XML пішімінің Visio трафареті + Office Open XML Visio трафареті 오피스 오픈 XML 비지오 스텐실 Wzór Office Open XML Visio - Stencil Office Open XML Visio - Estêncil do Visio em Office Open XML + estêncil Visio do Open Office XML + Estêncil do Office Open XML Visio Трафарет Visio формата Office Open XML - Objekt aplikácie Visio Office Open XML - Офисов отворени ИксМЛ Визио шаблон Office Open XML Visio-stencil - Office Open XML Visio Kalıbı - трафарет Visio у форматі Office Open XML - Office Open XML Visio 模具 - Office Open XML Visio 圖形樣本 + Office Open XML Visio kalıbı + трафарет Visio Office Open у XML + Office Open XML Visio 模具 Word document + Word-dokument مستند Word Documentu de Word - Dakument Word + Dakument Word Документ — Word document Word dokument Word Worddokument Word-Dokument Έγγραφο Word - Word document + Word document Word-dokumento documento de Word Word dokumentua Word-asiakirja Word skjal document Word + document Word cáipéis Word documento de Word מסמך Word @@ -3797,7 +3874,7 @@ document Word Dokument Word documento Word - Documento do Word + Documento do Word Document Word Документ Word Dokument Word @@ -3808,25 +3885,28 @@ Word belgesi документ Word Tài liệu Word - Word 文档 - Word 文件 + Word 文档 + Word 文件 Word document template + Word-dokumentsjabloon Plantía de documentu de Word + Шаблон за документ — Word plantilla de document Word šablona dokumentu Word Word-dokumentskabelon Word-Dokumentvorlage Πρότυπο έγγραφο Word - Word document template + Word document template plantilla de documento de Word Word dokumentuaren txantiloia Word-asiakirjamalli modèle de document Word + model di document Word teimpléad Word תבנית מסמך Word Predložak Word dokumenta @@ -3839,37 +3919,48 @@ modèl de document Word Szablon dokumentu Word modelo de documento Word - Modelo de documento do Word + Modelo de documento do Word Шаблон документа Word Šablóna dokumentu aplikácie Word + Predloga dokumenta Word Шаблон Ворд документа Word-dokumentmall Word belgesi şablonu шаблон документа Word - Word 文档模板 - Word 文件範本 + Word 文档模板 + Word 文件範本 + OpenXPS document + OpenXPS + Open XML Paper Specification + + + + + XPS document + XPS-dokument مستند XPS Documentu XPS - Dakument XPS + Dakument XPS Документ — XPS document XPS dokument XPS XPS-dokument XPS-Dokument Έγγραφο XPS - XPS document + XPS document XPS-dokumento documento XPS XPS dokumentua XPS-asiakirja XPS skjal document XPS + document XPS cáipéis XPS documento XPS מסמך XPS @@ -3889,7 +3980,7 @@ document XPS Dokument XPS documento XPS - Documento XPS + Documento XPS Document XPS Документ XPS Dokument XPS @@ -3900,34 +3991,34 @@ XPS belgesi документ XPS Tài liệu XPS - XPS 文档 - XPS 文件 + XPS 文档 + XPS 文件 XPS - Open XML Paper Specification + XML Paper Specification - - Microsoft Works document + Microsoft Works-dokument مستند Microsoft Works Documentu de Microsoft Works - Dakument Microsoft Works + Dakument Microsoft Works Документ — Microsoft Works document de Microsoft Works dokument Microsoft Works Microsoft Works-dokument Microsoft-Works-Dokument Έγγραφο Microsoft Works - Microsoft Works document + Microsoft Works document documento de Microsoft Works Microsoft Works dokumentua Microsoft Works -asiakirja Microsoft Works skjal document Microsoft Works + document Microsoft Works cáipéis Microsoft Works documento de Microsoft Works מסמך Microsoft Works @@ -3948,7 +4039,7 @@ document Microsoft Works Dokument Microsoft Works documento Microsoft Works - Documento do Microsoft Works + Documento do Microsoft Works Document Microsoft Works Документ Microsoft Works Dokument Microsoft Works @@ -3959,8 +4050,8 @@ Microsoft Works belgesi документ Microsoft Works Tài liệu Microsoft Works - Microsoft Works 文档 - 微軟 Works 文件 + Microsoft Works 文档 + 微軟 Works 文件 @@ -3971,6 +4062,7 @@ Microsoft Visio document + Microsoft Visio-dokument Documentu de Microsoft Visio Документ — Microsoft Visio document de Microsoft Visio @@ -3978,11 +4070,12 @@ Microsoft Visio-dokument Microsoft-Visio-Dokument Έγγραφο Microsoft Visio - Microsoft Visio document + Microsoft Visio document documento de Microsoft Visio Microsoft Visio dokumentua Microsoft Visio -asiakirja document Microsoft Visio + document Microsoft Visio cáipéis Microsoft Visio Documento de Microsoft Visio מסמך @@ -4000,7 +4093,7 @@ document Microsoft Visio Dokument Microsoft Visio documento Microsoft Visio - Documento do Microsoft Visio + Documento do Microsoft Visio Документ Microsoft Visio Dokument Microsoft Visio Dokument Microsoft Visio @@ -4008,8 +4101,8 @@ Microsoft Visio-dokument Microsoft Visio belgesi документ Microsoft Visio - Microsoft Visio 文档 - Microsoft Visio文件 + Microsoft Visio 文档 + 微軟 Visio 文件 @@ -4019,22 +4112,24 @@ Word document + Word-dokument مستند Word Documentu de Word - Dakument Word + Dakument Word Документ — Word document Word dokument Word Worddokument Word-Dokument Έγγραφο Word - Word document + Word document Word-dokumento documento de Word Word dokumentua Word-asiakirja Word skjal document Word + document Word cáipéis Word documento de Word מסמך Word @@ -4054,7 +4149,7 @@ document Word Dokument Word documento Word - Documento do Word + Documento do Word Document Word Документ Word Dokument Word @@ -4065,20 +4160,20 @@ Word belgesi документ Word Tài liệu Word - Word 文档 - Word 文件 + Word 文档 + Word 文件 - - - - - - - - - + + + + + + + + + @@ -4087,22 +4182,24 @@ Word template + Word-sjabloon قالب Word Plantía de Word - Šablon Word + Šablon Word Шаблон за документи — Word plantilla de Word šablona Word Wordskabelon Word-Vorlage Πρότυπο έγγραφο Word - Word template + Word template Word-ŝablono plantilla de Word Word txantiloia Word-malli Word formur modèle Word + model Word teimpléad Word Plantilla de Word תבנית Word @@ -4122,7 +4219,7 @@ modèl Word Szablon Word modelo Word - Modelo do Word + Modelo do Word Șablon Word Шаблон Word Šablóna Word @@ -4133,25 +4230,28 @@ Word şablonu шаблон Word Mẫu Word - Word 模板 - Word 範本 + Word 模板 + Word 範本 GML document + GML-dokument Documentu GML + Документ — GML document GML dokument GML GML-dokument GML-Dokument Έγγραφο GML - GML document + GML document documento GML GML dokumentua GML-asiakirja document GML + document GML cáipéis GML Documento GML מסמך GML @@ -4163,11 +4263,12 @@ GML ドキュメント GML құжаты GML 문서 + GML dokumentas GML dokuments document GML Dokument GML documento GML - Documento GML + Documento GML Документ GML Dokument GML Dokument GML @@ -4175,8 +4276,8 @@ GML-dokument GML belgesi документ GML - GML 文档 - GML 文件 + GML 文档 + GML 文件 GML Geography Markup Language @@ -4185,20 +4286,22 @@ GNUnet search file + GNUnet-soeklêer ملف بحث GNUnet - fajł pošuku GNUnet + fajł pošuku GNUnet Указател за търсене — GNUnet fitxer de cerca GNUnet vyhledávací soubor GNUnet GNunet-søgefil GNUnet-Suchdatei Αρχείο αναζήτησης GNUnet - GNUnet search file + GNUnet search file archivo de búsqueda GNUnet GNUnet bilaketako fitxategia GNUnet-hakutiedosto GNUnet leitifíla fichier de recherche GNUnet + file di ricercje GNUnet comhad cuardaigh GNUnet ficheiro de busca de GNUnet קובץ חיפוש של GNUnet @@ -4219,7 +4322,7 @@ fichièr de recèrca GNUnet Plik wyszukiwania GNUnet ficheiro de procura GNUnet - Arquivo de pesquisa do GNUnet + Arquivo de pesquisa do GNUnet Fișier căutare GNUnet Файл поиска GNUnet Vyhľadávací súbor GNUnet @@ -4230,30 +4333,32 @@ GNUnet arama dosyası файл пошуку GNUnet Tập tin tìm kiếm GNUnet - GNUnet 搜索文件 - GNUnet 搜尋檔案 + GNUnet 搜索文件 + GNUnet 搜尋檔案 - + TNEF message + TNEF-boodskap رسالة TNEF Mensaxe TNEF - List TNEF + List TNEF Съобщение — TNEF missatge TNEF zpráva TNEF TNEF-meddelelse TNEF-Nachricht Μήνυμα TNEF - TNEF message + TNEF message mensaje TNEF TNEF mezua TNEF-viesti TNEF boð message TNEF + messaç TNEF teachtaireacht TNEF mensaxe TNEF הודעת TNEF @@ -4273,7 +4378,7 @@ messatge TNEF Wiadomość TNEF mensagem TNEF - Mensagem TNEF + Mensagem TNEF Mesaj TNEF Сообщение TNEF Správa TNEF @@ -4284,12 +4389,12 @@ TNEF iletisi повідомлення TNEF Thông điệp TNEF - TNEF 信件 - TNEF 訊息 + TNEF 信件 + TNEF 訊息 TNEF Transport Neutral Encapsulation Format - + @@ -4298,9 +4403,10 @@ StarCalc spreadsheet + StarCalc-sigblad جدول StarCalc StarCalc hesab cədvəli - Raźlikovy arkuš StarCalc + Raźlikovy arkuš StarCalc Таблица — StarCalc full de càlcul de StarCalc sešit StarCalc @@ -4308,13 +4414,14 @@ StarCalc-regneark StarCalc-Tabelle Λογιστικό φύλλο StarCalc - StarCalc spreadsheet + StarCalc spreadsheet StarCalc-kalkultabelo hoja de cálculo de StarCalc StarCalc kalkulu-orria StarCalc-taulukko StarCalc rokniark feuille de calcul StarCalc + sfuei di calcul StarCalc scarbhileog StarCalc folla de cálculo de StarCalc גליון נתונים של StarCalc @@ -4335,7 +4442,7 @@ fuèlh de calcul StarCalc Arkusz StarCalc folha de cálculo do StarCalc - Planilha do StarCalc + Planilha do StarCalc Foaie de calcul StarCalc Электронная таблица StarCalc Zošit StarCalc @@ -4343,19 +4450,20 @@ Fletë llogaritjesh StarCalc Стар калк табела StarCalc-kalkylblad - StarCalc çalışma sayfası + StarCalc hesap çizelgesi ел. таблиця StarCalc Bảng tính StarCalc - StarCalc 电子表格 - StarCalc 試算表 + StarCalc 电子表格 + StarCalc 試算表 StarChart chart + StarChart-grafiek مخطط StarChart StarChart cədvəli - Dyjahrama StarChart + Dyjahrama StarChart Диаграма — StarChart diagrama de StarChart graf StarChart @@ -4363,13 +4471,14 @@ StarChart-diagram StarChart-Diagramm Γράφημα StarChart - StarChart chart + StarChart chart StarChart-diagramo gráfico de StarChart StarChart diagrama StarChart-kaavio StarChart strikumynd graphique StarChart + grafic StarChart cairt StarChart gráfica de StarChart טבלה של StarChart @@ -4390,7 +4499,7 @@ grafic StarChart Wykres StarChart gráfico do StarChart - Gráfico do StarChart + Gráfico do StarChart Diagramă StarChart Диаграмма StarChart Graf StarChart @@ -4398,19 +4507,20 @@ Grafik StarChart График Стар Графика StarChart-diagram - StarChart çizgelgesi + StarChart çizgesi діаграма StarChart Đồ thị StarChart - StarCalc 图表 - StarChart 圖表 + StarCalc 图表 + StarChart 圖表 StarDraw drawing + StarDraw-tekening تصميم StarDraw StarDraw çəkimi - Rysunak StarDraw + Rysunak StarDraw Чертеж — StarDraw dibuix de StarDraw kresba StarDraw @@ -4418,13 +4528,14 @@ StarDraw-tegning StarDraw-Zeichnung Σχέδιο StarDraw - StarDraw drawing + StarDraw drawing StarDraw-grafikaĵo dibujo de StarDraw StarDraw marrazkia StarDraw-piirros StarDraw tekning dessin StarDraw + dissen StarDraw líníocht StarDraw debuxo de StarDraw ציור של StarDrawing @@ -4445,7 +4556,7 @@ dessenh StarDraw Rysunek StarDraw desenho do StarDraw - Desenho do StarDraw + Desenho do StarDraw Desen StarDraw Рисунок StarDraw Kresba StarDraw @@ -4456,16 +4567,17 @@ StarDraw çizimi малюнок StarDraw Bản vẽ StarDraw - StarDraw 绘图 - StarDraw 繪圖 + StarDraw 绘图 + StarDraw 繪圖 StarImpress presentation + StarImpress-voorlegging عرض تقديمي StarImpress StarImpress təqdimatı - Prezentacyja StarImpress + Prezentacyja StarImpress Презентация — StarImpress presentació de StarImpress prezentace StarImpress @@ -4473,13 +4585,14 @@ StarImpress-præsentation StarImpress-Präsentation Παρουσίαση StarImpress - StarImpress presentation + StarImpress presentation StarImpress-prezentaĵo presentación de StarImpress StarImpress aurkezpena StarImpress-esitys StarImpress framløga présentation StarImpress + presentazion StarImpress láithreoireacht StarImpress presentación de StarImpress מצגת של StarImpress @@ -4500,7 +4613,7 @@ presentacion StarImpress Prezentacja StarImpress apresentação do StarImpress - Apresentação do StarImpress + Apresentação do StarImpress Prezentare StarImpress Презентация StarImpress Prezentácia StarImpress @@ -4511,29 +4624,31 @@ StarImpress sunumu презентація StarImpress Trình diễn StarImpress - StarImpress 演示文稿 - StarImpress 簡報檔 + StarImpress 演示文稿 + StarImpress 簡報 StarMail email + StarMail-e-pos بريد StarMail الإلكتروني - Email StarMail + Email StarMail Електронно писмо — StarMail correu electrònic de StarMail e-mail StarMail StarMail-e-brev StarMail-E-Mail Ηλ. μήνυμα StarMail - StarMail email + StarMail email StarMail-retpoŝto correo electrónico de StarMail StarMail helb.el. StarMail-sähköposti StarMail t-postur courriel StarMail + e-mail StarMail ríomhphost StarMail Correo electrónico de StarMail דוא״ל של StarMail @@ -4554,7 +4669,7 @@ corrièr electronic StarMail E-Mail StarMail email do StarMail - E-mail do StarMail + E-mail do StarMail Email StarEmail Электронное письмо StarMail E-mail StarMail @@ -4565,27 +4680,29 @@ StarMail epostası поштове повідомлення StarMail Thư điện tử StarMail - StarMail 电子邮件 - StarMail 郵件 + StarMail 电子邮件 + StarMail 郵件 StarMath formula + StarMath-formule صيغة StarMath - Formuła StarMath + Formuła StarMath Формула — StarMath fórmula de StarMath vzorec StarMath StarMath-formel StarMath-Formel Μαθηματικός τύπος StarMath - StarMath formula + StarMath formula StarMath-formulo fórmula de StarMath StarMath formula StarMath-kaava StarMath frymil formule StarMath + formule StarMath foirmle StarMath fórmula de StarMath נוסחה של StarMath @@ -4606,7 +4723,7 @@ formula StarMath Formuła StarMath fórmula do StarMath - Fórmula do StarMath + Fórmula do StarMath Formulă StarMath Формула StarMath Vzorec StarMath @@ -4617,17 +4734,18 @@ StarMath formülü формула StarMath Công thức StarMath - StarMath 公式 - StarMath 公式 + StarMath 公式 + StarMath 公式 StarWriter document + StarWriter-dokument مستند StarWriter Documentu de StarWriter StarWriter sənədi - Dakument StarWriter + Dakument StarWriter Документ — StarWriter document StarWriter dokument StarWriter @@ -4635,13 +4753,14 @@ StarWriter-dokument StarWriter-Dokument Έγγραφο StarWriter - StarWriter document + StarWriter document StarWriter-dokumento documento de StarWriter StarWriter dokumentua StarWriter-asiakirja StarWriter skjal document StarWriter + document StarWriter cáipéis StarWriter documento de StarWriter מסמך של StarWriter @@ -4662,7 +4781,7 @@ document StarWriter Dokument StarWriter documento do StarWriter - Documento do StarWriter + Documento do StarWriter Document StarWriter Документ StarWriter Dokument StarWriter @@ -4673,33 +4792,35 @@ StarWriter belgesi документ StarWriter Tài liệu StarWriter - StarWriter 文档 - StarWriter 文件 + StarWriter 文档 + StarWriter 文件 - + OpenOffice Calc spreadsheet + OpenOffice Calc-sigblad جدول Calc المكتب المفتوح - Raźlikovy arkuš OpenOffice Calc + Raźlikovy arkuš OpenOffice Calc Таблица — OpenOffice Calc full de càlcul d'OpenOffice Calc sešit OpenOffice Calc OpenOffice Calc-regneark OpenOffice-Calc-Tabelle Λογιστικό φύλλο OpenOffice Calc - OpenOffice Calc spreadsheet - hoja de cálculo de OpenOffice Calc + OpenOffice Calc spreadsheet + hoja de cálculo de LibreOffice Calc OpenOffice.org Calc kalkulu-orria OpenOffice Calc -taulukko OpenOffice Calc rokniark feuille de calcul OpenOffice Calc + sfuei di calcul OpenOffice Calc scarbhileog OpenOffice Calc folla de cálculo de OpenOffice Calc גליון נתונים של OpenOffice Calc @@ -4718,9 +4839,9 @@ OpenOffice.org Calc-rekenblad OpenOffice Calc-rekneark fuèlh de calcul OpenOffice Calc - Arkusz kalkulacyjny OpenOffice.org Calc + Arkusz OpenOffice.org Calc folha de cálculo OpenOffice Calc - Planilha do OpenOffice Calc + Planilha do OpenOffice Calc Foaie de calcul OpenOffice Calc Электронная таблица OpenOffice Calc Zošit OpenOffice Calc @@ -4728,17 +4849,17 @@ Fletë llogaritjesh OpenOffice Calc Табела Опен Офис Рачуна OpenOffice Calc-kalkylblad - OpenOffice Calc çalışma sayfası + OpenOffice Calc hesap çizelgesi ел. таблиця OpenOffice Calc Bảng tính Calc của OpenOffice.org - OpenOffice Calc 电子表格 - OpenOffice Calc 試算表 + OpenOffice Calc 电子表格 + OpenOffice Calc 試算表 - - - + + + @@ -4746,20 +4867,22 @@ OpenOffice Calc template + OpenOffice Calc-sjabloon قالب Calc المكتب المفتوح - Šablon OpenOffice Calc + Šablon OpenOffice Calc Шаблон за таблици — OpenOffice Calc plantilla d'OpenOffice Calc šablona OpenOffice Calc OpenOffice Calc-skabelon OpenOffice-Calc-Vorlage Πρότυπο OpenOffice Calc - OpenOffice Calc template - plantilla de OpenOffice Calc + OpenOffice Calc template + plantilla de LibreOffice Calc OpenOffice Calc txantiloia OpenOffice Calc -malli OpenOffice Calc formur modèle OpenOffice Calc + model OpenOffice Calc teimpléad OpenOffice Calc modelo de OpenOffice Calc תבנית של OpenOffice Calc @@ -4780,7 +4903,7 @@ modèl OpenOffice Calc Szablon arkusza OpenOffice.org Calc modelo OpenOffice Calc - Modelo do OpenOffice Calc + Modelo do OpenOffice Calc Șablon OpenOffice Calc Шаблон OpenOffice Calc Šablóna OpenOffice Calc @@ -4791,14 +4914,14 @@ OpenOffice Calc şablonu шаблон ел.таблиці OpenOffice Calc Mẫu bảng tính Calc của OpenOffice.org - OpenOffice Calc 模板 - OpenOffice Calc 範本 + OpenOffice Calc 模板 + OpenOffice Calc 範本 - - - + + + @@ -4806,20 +4929,22 @@ OpenOffice Draw drawing + OpenOffice Draw-tekening تصميم Draw المكتب المفتوح - Rysunak OpenOffice Draw + Rysunak OpenOffice Draw Чертеж — OpenOffice Draw dibuix d'OpenOffice Draw kresba OpenOffice Draw OpenOffice Draw-tegning OpenOffice-Draw-Zeichnung Σχέδιο OpenOffice Draw - OpenOffice Draw drawing - dibujo de OpenOffice Draw + OpenOffice Draw drawing + dibujo de LibreOffice Draw OpenOffice.org Draw marrazkia OpenOffice Draw -piirros OpenOffice Draw tekning dessin OpenOffice Draw + dissen OpenOffice Draw líníocht OpenOffice Draw debuxo de OpenOffice Draw ציור של OpenOffice Draw @@ -4840,7 +4965,7 @@ dessenh OpenOffice Draw Rysunek OpenOffice.org Draw desenho OpenOffice Draw - Desenho do OpenOffice Draw + Desenho do OpenOffice Draw Desen OpenOffice Draw Рисунок OpenOffice Draw Kresba OpenOffice Draw @@ -4851,14 +4976,14 @@ OpenOffice Draw çizimi малюнок OpenOffice Draw Bản vẽ Draw của OpenOffice.org - OpenOffice Draw 绘图 - OpenOffice Draw 繪圖 + OpenOffice Draw 绘图 + OpenOffice Draw 繪圖 - - - + + + @@ -4866,20 +4991,22 @@ OpenOffice Draw template + OpenOffice Draw-sjabloon قالب Draw المكتب المفتوح - Šablon OpenOffice Draw + Šablon OpenOffice Draw Шаблон за чертежи — OpenOffice Draw plantilla d'OpenOffice Draw šablona OpenOffice Draw OpenOffice Draw-skabelon OpenOffice-Draw-Vorlage Πρότυπο OpenOffice Draw - OpenOffice Draw template - plantilla de OpenOffice Draw + OpenOffice Draw template + plantilla de LibreOffice Draw OpenOffice Draw txantiloia OpenOffice Draw -malli OpenOffice Draw formur modèle OpenOffice Draw + model OpenOffice Draw  teimpléad OpenOffice Draw modelo de OpenOffice Draw תבנית של OpenOffice Draw @@ -4900,7 +5027,7 @@ modèl OpenOffice Draw Szablon rysunku OpenOffice.org Draw modelo OpenOffice Draw - Modelo do OpenOffice Draw + Modelo do OpenOffice Draw Șablon OpenOffice Draw Шаблон OpenOffice Draw Šablóna OpenOffice Draw @@ -4911,14 +5038,14 @@ OpenOffice Draw şablonu шаблон малюнку OpenOffice Draw Mẫu bản vẽ Draw của OpenOffice.org - OpenOffice Draw 模板 - OpenOffice Draw 範本 + OpenOffice Draw 模板 + OpenOffice Draw 範本 - - - + + + @@ -4926,9 +5053,10 @@ OpenOffice Impress presentation + OpenOffice Impress-voorlegging عرض تقديمي Impress المكتب المفتوح OpenOffice Impress sənədi - Prezentacyja OpenOffice Impress + Prezentacyja OpenOffice Impress Презентация — OpenOffice Impress presentació d'OpenOffice Impress prezentace OpenOffice Impress @@ -4936,12 +5064,13 @@ OpenOffice Impress-præsentation OpenOffice-Impress-Vorlage Παρουσίαση OpenOffice Impress - OpenOffice Impress presentation - presentación de OpenOffice Impress + OpenOffice Impress presentation + presentación de LibreOffice Impress OpenOffice.org Impress aurkezpena OpenOffice Impress -esitys OpenOffice Impress framløga présentation OpenOffice Impress + presentazion OpenOffice Impress láithreoireacht OpenOffice Impress presentación de de OpenOffice Impress מצגת של OpenOffice Impress @@ -4962,7 +5091,7 @@ presentacion OpenOffice Impress Prezentacja OpenOffice.org Impress apresentação OpenOffice Impress - Apresentação do OpenOffice Impress + Apresentação do OpenOffice Impress Prezentare OpenOffice Impress Презентация OpenOffice Impress Prezentácia OpenOffice Impress @@ -4973,14 +5102,14 @@ OpenOffice Impress sunumu презентація OpenOffice Impress Trình diễn Impress của OpenOffice.org - OpenOffice Impress 演示文稿 - OpenOffice Impress 簡報 + OpenOffice Impress 演示文稿 + OpenOffice Impress 簡報 - - - + + + @@ -4988,20 +5117,22 @@ OpenOffice Impress template + OpenOffice Impress-sjabloon قالب Impress المكتب المفتوح - Šablon OpenOffice Impress + Šablon OpenOffice Impress Шаблон за презентации — OpenOffice Impress plantilla d'OpenOffice Impress šablona OpenOffice Impress OpenOffice Impress-skabelon OpenOffice-Impress-Vorlage Πρότυπο OpenOffice Impress - OpenOffice Impress template - plantilla de OpenOffice Impress + OpenOffice Impress template + plantilla de LibreOffice Impress OpenOffice Impress txantiloia OpenOffice Impress -malli OpenOffice Impress formur modèle OpenOffice Impress + model OpenOffice Impress teimpléad OpenOffice Impress modelo de OpenOffice Impress תבנית של OpenOffice Impress @@ -5022,7 +5153,7 @@ modèl OpenOffice Impress Szablon prezentacji OpenOffice.org Impress modelo OpenOffice Impress - Modelo do OpenOffice Impress + Modelo do OpenOffice Impress Șablon OpenOffice Impress Шаблон OpenOffice Impress Šablóna OpenOffice Impress @@ -5033,14 +5164,14 @@ OpenOffice Impress şablonu шаблон презентації OpenOffice Impress Mẫu trình diễn Impress của OpenOffice.org - OpenOffice Impress 模板 - OpenOffice Impress 範本 + OpenOffice Impress 模板 + OpenOffice Impress 範本 - - - + + + @@ -5048,20 +5179,22 @@ OpenOffice Math formula + OpenOffice Math-formule صيغة Math المكتب المفتوح - Formuła OpenOffice Math + Formuła OpenOffice Math Формула — OpenOffice Math fórmula d'OpenOffice Math vzorec OpenOffice Math OpenOffice Math-formel OpenOffice-Math-Formel Μαθηματικός τύπος OpenOffice Math - OpenOffice Math formula - fórmula de OpenOffice Math + OpenOffice Math formula + fórmula de LibreOffice Math OpenOffice.org Math formula OpenOffice Math -kaava OpenOffice Math frymil formule OpenOffice Math + formule OpenOffice Math foirmle OpenOffice Math fórmula de OpenOffice Math נוסחה של OpenOffice Math @@ -5082,7 +5215,7 @@ formula OpenOffice Math Formuła OpenOffice.org Math fórmula OpenOffice Math - Fórmula do OpenOffice Math + Fórmula do OpenOffice Math Formulă OpenOffice Math Формула OpenOffice Math Vzorec OpenOffice Math @@ -5093,14 +5226,14 @@ OpenOffice Math formülü формула OpenOffice Math Công thức Math của OpenOffice.org - OpenOffice Math 公式 - OpenOffice Math 公式 + OpenOffice Math 公式 + OpenOffice Math 公式 - - - + + + @@ -5108,10 +5241,11 @@ OpenOffice Writer document + OpenOffice Writer-dokument مستند Writer المكتب المفتوح Documentu d'OpenOffice Writer OpenOffice Writer sənədi - Dakument OpenOffice Writer + Dakument OpenOffice Writer Документ — OpenOffice Writer document d'OpenOffice Writer dokument OpenOffice Writer @@ -5119,12 +5253,13 @@ OpenOffice Writer-dokument OpenOffice-Writer-Dokument Έγγραφο OpenOffice Writer - OpenOffice Writer document - documento de OpenOffice Writer + OpenOffice Writer document + documento de LibreOffice Writer OpenOffice.org Writer dokumentua OpenOffice Writer -asiakirja OpenOffice Writer skjal document OpenOffice Writer + document OpenOffice Writer cáipéis OpenOffice Writer documento de OpenOffice Writer מסמך של OpenOffice Writer @@ -5145,7 +5280,7 @@ document OpenOffice Writer Dokument OpenOffice.org Writer documento OpenOffice Writer - Documento do OpenOffice Writer + Documento do OpenOffice Writer Document OpenOffice Writer Документ OpenOffice Writer Dokument OpenOffice Writer @@ -5156,14 +5291,14 @@ OpenOffice Writer belgesi документ OpenOffice Writer Tài liệu Writer của OpenOffice.org - OpenOffice Writer 文档 - OpenOffice Writer 文件 + OpenOffice Writer 文档 + OpenOffice Writer 文件 - - - + + + @@ -5171,23 +5306,25 @@ OpenOffice Writer global document + OpenOffice Writer globale dokument مستند المكتب المفتوح Writer العالمي Documentu global d'OpenOffice Writer OpenOffice Writer qlobal sənədi - Hlabalny dakument OpenOffice Writer - Документ - глобален — OpenOffice Writer + Hlabalny dakument OpenOffice Writer + Глобален документ — OpenOffice Writer document global d'OpenOffice Writer globální dokument OpenOffice Writer Dogfen eang OpenOffice (Writer) OpenOffice Writer-globalt dokument OpenOffice-Writer-Globaldokument Καθολικό έγγραφο OpenOffice Writer - OpenOffice Writer global document - documento global de OpenOffice Writer + OpenOffice Writer global document + documento global de LibreOffice Writer OpenOffice.org Writer dokumentu globala OpenOffice Writer - yleinen asiakirja OpenOffice Writer heiltøkt skjal document global OpenOffice Writer + document globâl OpenOffice Writer cáipéis chomhchoiteann OpenOffice Writer documento global de OpenOffice Writer מסמך גלובלי של OpenOffice Writer @@ -5208,7 +5345,7 @@ document global OpenOffice Writer Globalny dokument OpenOffice.org Writer documento global OpenOffice Writer - Documento global do OpenOffice Writer + Documento global do OpenOffice Writer Document global OpenOffice Writer Основной документ OpenOffice Writer Globálny dokument OpenOffice Writer @@ -5219,14 +5356,14 @@ OpenOffice Writer global belgesi загальний документ OpenOffice Writer Tài liệu toàn cục Writer của OpenOffice.org - OpenOffice Writer 全局文档 - OpenOffice Writer 主控文件 + OpenOffice Writer 全局文档 + OpenOffice Writer 主控文件 - - - + + + @@ -5234,9 +5371,10 @@ OpenOffice Writer template + OpenOffice Writer-sjabloon قالب Writer المكتب المفتوح OpenOffice Writer şablonu - Šablon OpenOffice Writer + Šablon OpenOffice Writer Шаблон за документи — OpenOffice Writer plantilla d'OpenOffice Writer šablona OpenOffice Writer @@ -5244,12 +5382,13 @@ OpenOffice Writer-skabelon OpenOffice-Writer-Vorlage Πρότυπο OpenOffice Writer - OpenOffice Writer template - plantilla de OpenOffice Writer + OpenOffice Writer template + plantilla de LibreOffice Writer OpenOffice Writer txantiloia OpenOffice Writer -malli OpenOffice Writer formur modèle OpenOffice Writer + model OpenOffice Writer teimpléad OpenOffice Writer modelo de OpenOffice Writer תסנית של OpenOffice Writer @@ -5271,7 +5410,7 @@ modèl OpenOffice Writer Szablon dokumentu OpenOffice.org Writer modelo OpenOffice Writer - Modelo do OpenOffice Writer + Modelo do OpenOffice Writer Șablon OpenOffice Writer Шаблон OpenOffice Writer Šablóna OpenOffice Writer @@ -5282,14 +5421,14 @@ OpenOffice Writer şablonu шаблон документа OpenOffice Writer Mẫu tài liệu Writer của OpenOffice.org - OpenOffice Writer 模板 - OpenOffice Writer 範本 + OpenOffice Writer 模板 + OpenOffice Writer 範本 - - - + + + @@ -5297,22 +5436,24 @@ ODT document + ODT-dokument مستند ODT Documentu ODT - Dakument ODT + Dakument ODT Документ — ODT document ODT dokument ODT ODT-dokument ODT-Dokument Έγγραφο ODT - ODT document + ODT document ODT-dokumento documento ODT ODT dokumentua ODT-asiakirja ODT skjal document ODT + document ODT cáipéis ODT documento ODT מסמך ODT @@ -5333,7 +5474,7 @@ document ODT Dokument ODT documento ODT - Documento ODT + Documento ODT Document ODT Документ ODT Dokument ODT @@ -5344,16 +5485,16 @@ ODT belgesi документ ODT Tài liệu ODT - ODT 文档 - ODT 文件 + ODT 文档 + ODT 文件 ODT OpenDocument Text - - - + + + @@ -5361,6 +5502,7 @@ ODT document (Flat XML) + ODT-dokument (plat XML) مستند ODT (Flat XML) Documentu ODT (XML planu) Документ — ODT (само XML) @@ -5369,12 +5511,13 @@ ODT-dokument (flad XML) ODT-Dokument (Unkomprimiertes XML) Έγγραφο ODT (Flat XML) - ODT document (Flat XML) + ODT document (Flat XML) documento ODT (XML plano) ODT dokumentua (XML soila) ODT-asiakirja (Flat XML) ODT skjal (Flat XML) document ODT (XML plat) + document ODT (XML sempliç) cáipéis ODT (XML cothrom) documento ODT (XML plano) מסמך ODT‏ (Flat XML) @@ -5393,7 +5536,7 @@ document ODT (XML plat) Dokument ODT (prosty XML) documento ODT (XML plano) - Documento ODT (Flat XML) + Documento ODT (Flat XML) Document ODT (XML simplu) Документ ODT (простой XML) Dokument ODT (čisté XML) @@ -5402,8 +5545,8 @@ ODT-dokument (platt XML) ODT belgesi (Düz XML) документ ODT (Flat XML) - ODT 文档(Flat XML) - ODT 文件 (Flat XML) + ODT 文档(Flat XML) + ODT 文件 (Flat XML) FODT OpenDocument Text (Flat XML) @@ -5412,21 +5555,23 @@ ODT template + ODT-sjabloon قالب ODT - Šablon ODT + Šablon ODT Шаблон за документи — ODT plantilla ODT šablona ODT ODT-skabelon ODT-Vorlage Πρότυπο ODT - ODT template + ODT template ODT-ŝablono plantilla ODT ODT txantiloia ODT-malli ODT formur modèle ODT + model ODT teimpléad ODT modelo ODT תבנית ODT @@ -5447,7 +5592,7 @@ modèl ODT Szablon ODT modelo ODT - Modelo ODT + Modelo ODT Șablon ODT Шаблон ODT Šablóna ODT @@ -5458,16 +5603,16 @@ ODT şablonu шаблон ODT Mẫu ODT - ODT 模板 - ODT 範本 + ODT 模板 + ODT 範本 ODT OpenDocument Text - - - + + + @@ -5475,21 +5620,23 @@ OTH template + OTH-sjabloon قالب OTH - Šablon OTH + Šablon OTH Шаблон за страници — OTH plantilla OTH šablona OTH OTH-skabelon OTH-Vorlage Πρότυπο OTH - OTH template + OTH template OTH-ŝablono plantilla OTH OTH txantiloia OTH-malli OTH formur modèle OTH + model OTH teimpléad OTH modelo OTH תבנית OTH @@ -5510,7 +5657,7 @@ modèl OTH Szablon OTH modelo OTH - Modelo OTH + Modelo OTH Șablon OTH Шаблон OTH Šablóna OTH @@ -5521,16 +5668,16 @@ OTH şablonu шаблон OTH Mẫu ODH - OTH 模板 - OTH 範本 + OTH 模板 + OTH 範本 OTH OpenDocument HTML - - - + + + @@ -5538,22 +5685,24 @@ ODM document + ODM-dokument مستند ODM Documentu ODM - Dakument ODM + Dakument ODM Документ — ODM document ODM dokument ODM ODM-dokument ODM-Dokument Έγγραφο ODM - ODM document + ODM document ODM-dokumento documento ODM ODM dokumentua ODM-asiakirja ODM skjal document ODM + document ODM cáipéis ODM documento ODM מסמך ODM @@ -5574,7 +5723,7 @@ document ODM Dokument ODM documento ODM - Documento ODM + Documento ODM Document ODM Документ ODM Dokument ODM @@ -5585,16 +5734,16 @@ ODM belgesi документ ODM Tài liệu ODM - ODM 文档 - ODM 文件 + ODM 文档 + ODM 文件 ODM OpenDocument Master - - - + + + @@ -5602,21 +5751,23 @@ ODG drawing + ODG-tekening تصميم ODG - Rysunak ODG + Rysunak ODG Чертеж — ODG dibuix ODG kresba ODG ODG-tegning ODG-Zeichnung Σχέδιο ODG - ODG drawing + ODG drawing ODG-desegnaĵo dibujo ODG ODG marrazkia ODG-piirros ODG tekning dessin ODG + dissen ODG líníocht ODG debuxo ODG ציור ODG @@ -5637,7 +5788,7 @@ dessenh ODG Rysunek ODG desenho ODG - Desenho ODG + Desenho ODG Desen ODG Рисунок ODG Kresba ODG @@ -5648,16 +5799,16 @@ ODG çizimi малюнок ODG Bản vẽ ODG - ODG 绘图 - ODG 繪圖 + ODG 绘图 + ODG 繪圖 ODG OpenDocument Drawing - - - + + + @@ -5665,6 +5816,7 @@ ODG drawing (Flat XML) + ODG-tekening (plat XML) رسمة ODG (Flat XML) Чертеж — ODG (само XML) dibuix ODG (XML pla) @@ -5672,12 +5824,13 @@ ODG-tegning (flad XML) ODG-Zeichnung (Unkomprimiertes XML) Σχέδιο ODG (Flat XML) - ODG drawing (Flat XML) + ODG drawing (Flat XML) dibujo ODG (XML plano) ODG marrazkia (XML soila) ODG-piirros (Flat XML) ODG tekning (Flat XML) dessin ODG (XML plat) + dissen ODG (XML sempliç) líníocht ODG (XML cothrom) debuxo ODB (XML plano) ציור ODG (Flat XML( @@ -5696,7 +5849,7 @@ dessenh ODG (XML plat) Rysunek ODG (prosty XML) desenho ODG (XML plano) - Desenho ODG (Flat XML) + Desenho ODG (Flat XML) Desen ODG (XML simplu) Рисунок ODG (простой XML) Kresba ODG (čisté XML) @@ -5704,9 +5857,9 @@ ОДГ цртеж (Обичан ИксМЛ) ODG-teckning (platt XML) ODG çizimi (Düz XML) - малюнок ODG (Flat XML) - ODG 绘图(Flat XML) - ODG 繪圖 (Flat XML) + малюнок ODG (простий XML) + ODG 绘图(Flat XML) + ODG 繪圖 (Flat XML) FODG OpenDocument Drawing (Flat XML) @@ -5715,21 +5868,23 @@ ODG template + ODG-sjabloon قالب ODG - Šablon ODG + Šablon ODG Шаблон за чертежи — ODG plantilla ODG šablona ODG ODG-skabelon ODG-Vorlage Πρότυπο ODG - ODG template + ODG template ODG-ŝablono plantilla ODG ODG txantiloia ODG-malli ODG formur modèle ODG + model ODG teimpléad ODG modelo ODG תבנית ODG @@ -5750,7 +5905,7 @@ modèl ODG Szablon ODG modelo ODG - Modelo ODG + Modelo ODG Șablon ODG Шаблон ODG Šablóna ODG @@ -5761,16 +5916,16 @@ ODG şablonu шаблон ODG Mẫu ODG - ODG 模板 - ODG 範本 + ODG 模板 + ODG 範本 ODG OpenDocument Drawing - - - + + + @@ -5778,21 +5933,23 @@ ODP presentation + ODP-voorlegging عرض تقديمي ODP - Prezentacyja ODP + Prezentacyja ODP Презентация — ODP presentació ODP prezentace ODP ODP-præsentation ODP-Präsentation Παρουσίαση ODP - ODP presentation + ODP presentation ODP-prezentaĵo presentación ODP ODP aurkezpena ODP-esitys ODP framløga présentation ODP + presentazion ODP láithreoireacht ODP presentación ODP מצגת ODP @@ -5813,7 +5970,7 @@ presentacion ODP Prezentacja ODP apresentação ODP - Apresentação ODP + Apresentação ODP Prezentare ODP Презентация ODP Prezentácia ODP @@ -5824,16 +5981,16 @@ ODP sunumu презентація ODP Trình diễn ODM - ODP 演示文稿 - ODP 簡報 + ODP 演示文稿 + ODP 簡報 ODP OpenDocument Presentation - - - + + + @@ -5841,6 +5998,7 @@ ODP presentation (Flat XML) + ODP-voorlegging (plat XML) عرض ODP (Flat XML) Презентация — ODP (само XML) presentació ODP (XML pla) @@ -5848,12 +6006,13 @@ ODP-præsentation (flad XML) ODP-Präsentation (Unkomprimiertes XML) Παρουσίαση ODP (Flat XML) - ODP presentation (Flat XML) + ODP presentation (Flat XML) presentación ODP (XML plano) ODP aurkezpena (XML soila) ODP-esitys (Flat XML) ODP framløga (Flat XML) présentation ODP (XML plat) + presentazion ODP (XML sempliç) láithreoireacht ODP (XML cothrom) presentación ODP (XML plano) מצגת ODP‏ (Flat XML) @@ -5872,7 +6031,7 @@ presentacion ODP (XML plat) Prezentacja ODP (prosty XML) apresentação ODP (XML plano) - Apresentação ODP (Flat XML) + Apresentação ODP (Flat XML) Prezentare ODP (XML simplu) Презентация ODP (простой XML) Prezentácia ODP (čisté XML) @@ -5881,8 +6040,8 @@ ODP-presentation (platt XML) ODP sunumu (Düz XML) презентація ODP (Flat XML) - ODP 演示文稿(Flat XML) - ODP 範本 (Flat XML) + ODP 演示文稿(Flat XML) + ODP 範本 (Flat XML) FODP OpenDocument Presentation (Flat XML) @@ -5891,21 +6050,23 @@ ODP template + ODP-sjabloon قالب ODP - Šablon ODP + Šablon ODP Шаблон за презентации — ODP plantilla ODP šablona ODP ODP-skabelon ODP-Vorlage Πρότυπο ODP - ODP template + ODP template ODP-ŝablono plantilla ODP ODP txantiloia ODP-malli ODP formur modèle ODP + model ODP teimpléad ODP modelo ODP תבנית ODP @@ -5926,7 +6087,7 @@ modèl ODP Szablon ODP modelo ODP - Modelo ODP + Modelo ODP Șablon ODP Шаблон ODP Šablóna ODP @@ -5937,16 +6098,16 @@ ODP şablonu шаблон ODP Mẫu ODP - ODP 模板 - ODP 範本 + ODP 模板 + ODP 範本 ODP OpenDocument Presentation - - - + + + @@ -5954,21 +6115,23 @@ ODS spreadsheet + ODS-sigblad جدول ODS - Raźlikovy arkuš ODS + Raźlikovy arkuš ODS Таблица — ODS full de càlcul ODS sešit ODS ODS-regneark ODS-Tabelle Λογιστικό φύλλο ODS - ODS spreadsheet + ODS spreadsheet ODS-kalkultabelo hoja de cálculo ODS ODS kalkulu-orria ODS-taulukko ODS rokniark feuille de calcul ODS + sfuei di calcul ODS scarbhileog ODS folla de cálculo ODS גליון נתונים ODS @@ -5989,7 +6152,7 @@ fuèlh de calcul ODS Arkusz ODS folha de cálculo ODS - Planilha ODS + Planilha ODS Foaie de calcul ODS Электронная таблица ODS Zošit ODS @@ -5997,19 +6160,19 @@ Fletë llogaritjesh ODS ОДС табела ODS-kalkylblad - ODS çalışma sayfası + ODS hesap çizelgesi ел. таблиця ODS Bảng tính ODS - ODS 电子表格 - ODS 試算表 + ODS 电子表格 + ODS 試算表 ODS OpenDocument Spreadsheet - - - + + + @@ -6017,6 +6180,7 @@ ODS spreadsheet (Flat XML) + ODS-sigblad (plat XML) جدول ODS (Flat XML) Таблица — ODS (само XML) full de càlcul ODS (XML pla) @@ -6024,12 +6188,13 @@ ODS-regneark (flad XML) ODS-Tabelle (Unkomprimiertes XML) Λογιστικό φύλλο ODS (Flat XML) - ODS spreadsheet (Flat XML) + ODS spreadsheet (Flat XML) hoja de cálculo ODS (XML plano) ODS kalkulu-orria (XML soila) ODS-laskentataulukko (Flat XML) ODS rokniark (Flat XML) feuille de calcul ODS (XML plat) + sfuei di calcul ODS (XML sempliç) scarbhileog ODS (XML cothrom) folla de cálculo ODS (XML plano) גליון נתונים ODS‏ (XML פשוט) @@ -6048,17 +6213,17 @@ fuèlh de calcul ODS (XML plat) Arkusz ODS (prosty XML) folha de cálculo ODS (XML plano) - Planilha ODS (Flat XML) + Planilha ODS (Flat XML) Foaie de calcul ODS (XML simplu) Электронная таблица ODS (простой XML) Zošit ODS (čisté XML) Preglednica ODS (nepovezan XML) ОДС табела (обични ИксМЛ) ODS-kalkylblad (platt XML) - ODS sunumu (Düz XML) + ODS hesap çizelgesi (Düz XML) ел. таблиця ODS (Flat XML) - ODS 电子表格 (Flat XML) - ODS 試算表 (Flat XML) + ODS 电子表格 (Flat XML) + ODS 試算表 (Flat XML) FODS OpenDocument Spreadsheet (Flat XML) @@ -6067,21 +6232,23 @@ ODS template + ODS-sjabloon قالب ODS - Šablon ODS + Šablon ODS Шаблон за таблици — ODS plantilla ODS šablona ODS ODS-skabelon ODS-Vorlage Πρότυπο ODS - ODS template + ODS template ODS-ŝablono plantilla ODS ODS txantiloia ODS-malli ODS formur modèle ODS + model ODS teimpléad ODS modelo ODS תבנית ODS @@ -6102,7 +6269,7 @@ modèl ODS Szablon ODS modelo ODS - Modelo ODS + Modelo ODS Șablon ODS Шаблон ODS Šablóna ODS @@ -6113,16 +6280,16 @@ ODS şablonu шаблон ODS Mẫu ODS - ODS 模板 - ODS 範本 + ODS 模板 + ODS 範本 ODS OpenDocument Spreadsheet - - - + + + @@ -6130,21 +6297,23 @@ ODC chart + ODC-grafiek مخطط ODC - Dyjahrama ODC + Dyjahrama ODC Диаграма — ODC diagrama ODC graf ODC ODC-diagram ODC-Diagramm Διάγραμμα ODC - ODC chart + ODC chart ODC-diagramo gráfico ODC ODC diagrama ODC-kaavio ODC strikumynd graphique ODC + grafic ODC cairt ODC gráfica ODC תו ODC @@ -6164,7 +6333,7 @@ grafic ODC Wykres ODC gráfico ODC - Gráfico ODC + Gráfico ODC Diagramă ODC Диаграмма ODC Graf ODC @@ -6172,19 +6341,19 @@ Grafik ODC ОДЦ график ODC-diagram - ODC çizelgesi + ODC çizgesi діаграма ODC Sơ đồ ODC - ODC 图表 - ODC 圖表 + ODC 图表 + ODC 圖表 ODC OpenDocument Chart - - - + + + @@ -6192,6 +6361,7 @@ ODC template + ODC-sjabloon قالب ODC Шаблон за диаграми — ODC plantilla ODC @@ -6199,13 +6369,14 @@ ODC-skabelon ODC-Vorlage Πρότυπο ODC - ODC template + ODC template ODC-ŝablono plantilla ODC ODC txantiloia ODC-malli ODC formur modèle ODC + model ODC teimpléad ODC modelo ODC תבנית ODC @@ -6224,7 +6395,7 @@ modèl ODC Szablon ODC modelo ODC - Modelo ODC + Modelo ODC Șablon ODC Шаблон ODC Šablóna ODC @@ -6234,16 +6405,16 @@ ODC şablonu шаблон ODC Mẫu ODC - ODC 模板 - ODC 範本 + ODC 模板 + ODC 範本 ODC OpenDocument Chart - - - + + + @@ -6251,21 +6422,23 @@ ODF formula + ODF-formule صيغة ODF - Formuła ODF + Formuła ODF Формула — ODF fórmula ODF vzorec ODF ODF-formel ODF-Formel Μαθηματικός τύπος ODF - ODF formula + ODF formula ODF-formulo fórmula ODF ODF formula ODF-kaava ODF frymil formule ODF + formule ODF foirmle ODF Fórula ODF נוסחת ODF @@ -6286,7 +6459,7 @@ formula ODF Formuła ODF fórmula ODF - Fórmula ODF + Fórmula ODF Formulă ODF Формула ODF Vzorec ODF @@ -6297,16 +6470,16 @@ ODF formülü формула ODF Công thức ODF - ODF 公式 - ODF 公式 + ODF 公式 + ODF 公式 ODF OpenDocument Formula - - - + + + @@ -6314,6 +6487,7 @@ ODF template + ODF-sjabloon قالب ODF Шаблон за формули — ODF plantilla ODF @@ -6321,13 +6495,14 @@ ODF-skabelon ODF-Vorlage Πρότυπο ODF - ODF template + ODF template ODF-ŝablono plantilla ODF ODF txantiloia ODF-malli ODF formur modèle ODF + model ODF teimpléad ODF modelo ODF תבנית ODF @@ -6346,7 +6521,7 @@ modèl ODF Szablon ODF modelo ODF - Modelo ODF + Modelo ODF Șablon ODF Шаблон ODF Šablóna ODF @@ -6356,16 +6531,16 @@ ODF şablonu шаблон ODF Mẫu ODF - ODF 模板 - ODF 範本 + ODF 模板 + ODF 範本 ODF OpenDocument Formula - - - + + + @@ -6373,21 +6548,23 @@ ODB database + ODB-databasis قاعدة بيانات ODB - Baza źviestak ODB + Baza źviestak ODB База от данни — ODB base de dades ODB databáze ODB ODB-database ODB-Datenbank Βάση δεδομένων ODB - ODB database + ODB database ODB-datumbazo base de datos ODB ODB datu-basea ODB-tietokanta ODB dátustovnur base de données ODB + base di dâts ODB bunachar sonraí ODB base de datos ODB מסד נתונים ODB @@ -6408,7 +6585,7 @@ banca de donadas ODB Baza danych ODB base de dados ODB - Banco de dados ODB + Banco de dados ODB Bază de date ODB База данных ODB Databáza ODB @@ -6416,19 +6593,19 @@ Bazë me të dhëna ODB ОДБ база података ODB-databas - ODB veritabanı + ODB veri tabanı база даних ODB Cơ sở dữ liệu ODB - ODB 数据库 - ODB 資料庫 + ODB 数据库 + ODB 資料庫 ODB OpenDocument Database - - - + + + @@ -6437,22 +6614,24 @@ ODI image + ODI-beeld صورة ODI Imaxe ODI - Vyjava ODI + Vyjava ODI Изображение — ODI imatge ODI obrázek ODI ODI-billede ODI-Bild Εικόνα ODI - ODI image + ODI image ODI-bildo imagen ODI ODI irudia ODI-kuva ODI mynd image ODI + imagjin ODI íomhá ODI imaxe ODI תמונת ODI @@ -6473,7 +6652,7 @@ imatge ODI Obraz ODI imagem ODI - Imagem ODI + Imagem ODI Imagine ODI Изображение ODI Obrázok ODI @@ -6484,16 +6663,16 @@ ODI görüntüsü зображення ODI Ảnh ODI - ODI 图像 - ODI 影像 + ODI 图像 + ODI 影像 ODI OpenDocument Image - - - + + + @@ -6501,21 +6680,23 @@ OpenOffice.org extension + OpenOffice.org-uitbreiding امتداد OpenOffice.org Estensión d'OpenOffice.org - Pašyreńnie OpenOffice.org - Разширение — OpenOffice + Pašyreńnie OpenOffice.org + Приставка — OpenOffice extensió d'OpenOffice.org rozšíření OpenOffice.org OpenOffice.org-udvidelse OpenOffice.org-Erweiterung Επέκταση OpenOffice.org - OpenOffice.org extension + OpenOffice.org extension extensión de LibreOffice OpenOffice.org luzapena OpenOffice.org-laajennus OpenOffice.org víðkan extension OpenOffice.org + estension OpenOffice.org eisínteacht OpenOffice.org Extensión de OpenOffice.org הרחבה של OpenOffice.org @@ -6535,7 +6716,7 @@ extension OpenOffice.org Rozszerzenie OpenOffice.org extensão OpenOffice.org - Extensão do OpenOffice + Extensão do OpenOffice Extensie OpenOffice.org Расширение OpenOffice.org Rozšírenie OpenOffice.org @@ -6546,14 +6727,15 @@ OpenOffice.org eklentisi розширення OpenOffice.org Phần mở rộng của OpenOffice.org - OpenOffice.org 扩展 - OpenOffice.org 擴充套件 + OpenOffice.org 扩展 + OpenOffice.org 擴充套件 Android package + Android-pakket Paquete d'Android Пакет — Android paquet d'Android @@ -6561,12 +6743,13 @@ Android-pakke Android-Paket Πακέτο Android - Android package + Android package Android-pakaĵo paquete de Android Android paketea Android-paketti paquet Android + pachet Android pacáiste Android paquete de Android חבילת אנדרויד @@ -6579,12 +6762,13 @@ Android-ის პაკეტი Android дестесі Android 패키지 + Android paketas Android pakotne Android pakket paquet Android Pakiet Androida pacote Android - Pacote do Android + Pacote do Android Пакет Android Balík Android Paket Android @@ -6592,29 +6776,31 @@ Android-paket Android paketi пакунок Android - Android 应用包 - Android 軟體包 + Android 应用包 + Android 軟體包 SIS package + SIS-pakket حزمة SIS Paquete SIS - Pakunak SIS + Pakunak SIS Пакет — SIS paquet SIS balíček SIS SIS-pakke SIS-Paket Πακέτο SIS - SIS package + SIS package SIS-pakaĵo paquete SIS SIS paketea SIS-paketti SIS pakki paquet SIS + pachet SIS pacáiste SIS paquete SIS חבילת SIS @@ -6634,7 +6820,7 @@ paquet SIS Pakiet SIS pacote SIS - Pacote SIS + Pacote SIS Pachet SIS Пакет SIS Balíček SIS @@ -6645,34 +6831,36 @@ SIS paketi пакунок SIS Gói SIS - SIS 软件包 - SIS 軟體包 + SIS 软件包 + SIS 軟體包 SIS Symbian Installation File - + SISX package + SISX-pakket حزمة SISX Paquete SISX - Pakunak SISX + Pakunak SISX Пакет — SISX paquet SISX balíček SISX SISX-pakke SISX-Paket Πακέτο SISX - SISX package + SISX package SISX-pakaĵo paquete SISX SISX paketea SISX-paketti SISX pakki paquet SISX + pachet SISX pacáiste SISX paquete SISX חבילת SISX @@ -6692,7 +6880,7 @@ paquet SISX Pakiet SISX pacote SISX - Pacote SISX + Pacote SISX Pachet SISX Пакет SISX Balíček SISX @@ -6703,59 +6891,44 @@ SISX paketi пакунок SISX Gói SISX - SISX 软件包 - SISX 軟體包 + SISX 软件包 + SISX 軟體包 SIS Symbian Installation File - + - Network Packet Capture - Прихванати пакети по мрежата + network packet capture + Прихванати мрежови пакети captura de paquets de xarxa - Network Packet Capture - Netværkspakkeoptegnelse - Netzwerk-Paketmitschnitt - Σύλληψη πακέτων δικτύου - Network Packet Capture - captura de paquete de red - Sareko pakete kaptura - Verkkopakettien kaappaus + Netværkspakkeoptagelse + Netzwerkpaketmitschnitt + network packet capture + captura de paquetes de red + sareko pakete kaptura + verkkopakettien kaappaus capture de paquet réseau - Gabháltas Paicéid Líonra - Captura de Network Packet - לכידה של מנות נתונים ברשת Mrežno hvatanje paketa - Hálózati csomagelfogás - Captura de pacchettos de rete - Tangkapan Paket Jaringan + hálózaticsomag-rögzítés + tangkapan paket jaringan Cattura pacchetti rete - ネットワークパケットキャプチャー - ქსელური პაკეტის ანაბეჭდი ұсталған желілік пакеттер 네트워크 패킷 캡처 - Network Packet Capture - Network Packet Capture - captura de paquet ret Przechwycenie pakietu sieciowego - captura Network Packet - Pacote de captura de rede - Захваченные сетевые пакеты - Zachytené sieťové pakety - Zajem omrežnih paketov - Снимање мрежног пакета - Fångst av nätverkspaket - Ağ Paket Yakalaması - перехоплені дані мережевих пакетів - 网络包抓取 - 網路封包捕捉 - - - + captura dos pacotes de rede + Captura de pacotes de rede + захваченные сетевые пакеты + nätverkspaketsspårning + ağ paket yakalaması + перехоплення мережевого пакета + 网络数据包抓取 + + + @@ -6765,10 +6938,11 @@ WordPerfect document + WordPerfect-dokument مستند WordPerfect Documentu de WordPerfect WordPerfect sənədi - Dakument WordPerfect + Dakument WordPerfect Документ — WordPerfect document WordPerfect dokument WordPerfect @@ -6776,13 +6950,14 @@ WordPerfect-dokument WordPerfect-Dokument Έγγραφο WordPerfect - WordPerfect document + WordPerfect document WordPerfect-dokumento documento de WordPerfect WordPerfect dokumentua WordPerfect-asiakirja WordPerfect skjal document WordPerfect + document WordPerfect cáipéis WordPerfect documento de WordPerfect מסמך WordPerfect @@ -6803,7 +6978,7 @@ document WordPerfect Dokument WordPerfect documento WordPerfect - Documento do WordPerfect + Documento do WordPerfect Document WordPerfect Документ WordPerfect Dokument WordPerfect @@ -6814,14 +6989,14 @@ WordPerfect belgesi документ WordPerfect Tài liệu WordPerfect - WordPerfect 文档 - WordPerfect 文件 + WordPerfect 文档 + WordPerfect 文件 - - + + @@ -6831,126 +7006,125 @@ - YouTube Media Archive + YouTube media archive + Медиен архив — YouTube + arxiu de mitjans de YouTube + YouTube-mediearkiv + YouTube-Medienarchiv + YouTube media archive + archivador multimedia de YouTube + YouTube media fitxategia + YouTube-media-arkisto + archive média YouTube + YouTube medijska arhiva + YouTube médiaarchívum + Arsip media YouTube + Archivio multimediale YouTube + YouTube медиа архиві + 유튜브 미디어 저장 파일 + Archiwum multimediów YouTube + arquivo multimédia do YouTube + Arquivo de mídia do Youtube + Медиа-архив YouTube + Archív médií YouTube + YouTube-mediaarkiv + YouTube ortam arşivi + мультимедійний архів YouTube + YouTube 媒体存档 - SPSS Portable Data File - ملف بيانات SPSS متنقلة + SPSS portable data file Данни — SPSS, преносими fitxer de dades portables SPSS - soubor přenositelných dat SPSS - Portabel SPSS-datafil + SPSS portable data-fil SPSS portable Datendatei - Φορητό αρχείο δεδομένων SPSS - SPSS Portable Data File - archivo de datos portátil de SPSS - SPSS datuen fitxategi eramangarria - SPSS flytifør dátufíla + SPSS portable data file + archivo de datos portátiles de SPSS + SPSS datu fitxategi eramangarria + Siirrettävä SPSS-tiedosto fichier portable de données SPSS - comhad iniompartha sonraí SPSS - ficheiro de datos portábel SPSS - קובץ מידע נייד SPSS SPSS prenosiva podatkovna datoteka SPSS hordozható adatfájl - File portabile de datos SPSS - Berkas Data Portabel SPSS + Berkas data portabel SPSS File dati SPSS Portable - SPSS ポータブルデータファイル - SPSS тасымалы ақпарат файлы - SPSS 이동식 데이터 파일 - SPSS perkeliamų duomenų failas - SPSS pārvietojamu datu datne - SPSS Portable Databestand - fichièr portable de donadas SPSS + SPSS тасымалы деректер файлы + SPSS 휴대 데이터 파일 Plik przenośnych danych SPSS ficheiro de dados portátil SPSS - Arquivo de Dados Portáteis SPSS - Fișier portabil de date SPSS + Arquivo de dados portáteis SPSS Файл переносимых данных SPSS - Súbor prenosných dát SPSS - Prenosna podatkovna datoteka SPSS - СПСС датотека преносних података - Portabel SPSS-datafil - SPSS Taşınabilir Veri Dosyası - файл даних SPSS Portable - SPSS 便携式数据文件 - SPSS 可攜式資料檔 + Súbor prenosných údajov SPSS + SPSS portabel datafil + SPSS taşınabilir veri dosyası + портативний файл даних SPSS + SPSS 便携式数据文件 + SPSS 可攜資料檔 + SPSS + Statistical Package for the Social Sciences - + - SPSS Data File - ملف بيانات SPSS + SPSS data file Данни — SPSS fitxer de dades SPSS - datový soubor SPSS - SPSS-datafil + SPSS data-fil SPSS-Datendatei - Αρχείο δεδομένων SPSS - SPSS Data File - archivo de datos SPSS - SPSS datuen fitxategia + SPSS data file + archivo de datos de SPSS + SPSS datu fitxategia SPSS-datatiedosto - SPSS dátufíla fichier de données SPSS - comhad sonraí SPSS - ficheiro de datos SPSS - קובץ מידע SPSS SPSS podatkovna datoteka SPSS adatfájl - File de datos SPSS - Berkas Data SPSS + Berkas data SPSS File dati SPSS - SPSS データファイル - SPSS ақпарат файлы + SPSS деректер файлы SPSS 데이터 파일 - SPSS duomenų failas - SPSS datu datne - SPSS Databstand - fichièr de donadas SPSS Plik danych SPSS ficheiro de dados SPSS - Arquivo de dados SPSS - Fișier date SPSS + Arquivo de dados SPSS Файл данных SPSS - Dátový súbor SPSS - Podatkovna datoteka SPSS - СПСС датотека података + Súbor údajov SPSS SPSS-datafil - SPSS Veri Dosyası + SPSS veri dosyası файл даних SPSS - SPSS 数据文件 - SPSS 資料檔 + SPSS 数据文件 + SPSS 資料檔 + SPSS + Statistical Package for the Social Sciences - - + + XBEL bookmarks + XBEL-boekmerke علامات XBEL - Zakładki XBEL + Zakładki XBEL Отметки — XBEL llista d'adreces d'interès XBEL záložky XBEL XBEL-bogmærker XBEL-Lesezeichen Σελιδοδείκτες XBEL - XBEL bookmarks + XBEL bookmarks XBEL-legosignoj marcadores XBEL XBEL laster-markak XBEL-kirjanmerkit XBEL bókamerki marque-pages XBEL + segnelibris XBEL leabharmharcanna XBEL Marcadores XBEL סימניית XBEL @@ -6971,7 +7145,7 @@ marcapaginas XBEL Zakładki XBEL marcadores XBEL - Marcadores do XBEL + Marcadores do XBEL Semne de carte XBEL Закладки XBEL Záložky XBEL @@ -6982,35 +7156,37 @@ XBEL yer imleri закладки XBEL Liên kết đã lưu XBEL - XBEL 书签 - XBEL 格式書籤 + XBEL 书签 + XBEL 格式書籤 XBEL XML Bookmark Exchange Language - + 7-zip archive + 7-zip-argief أرشيف 7-zip Archivu 7-zip - Archiŭ 7-zip + Archiŭ 7-zip Архив — 7-zip arxiu 7-zip archiv 7-zip 7-zip-arkiv 7zip-Archiv Συμπιεσμένο αρχείο 7-zip - 7-zip archive + 7-zip archive 7z-arkivo archivador 7-zip 7-zip artxiboa 7-zip-arkisto 7-zip skjalasavn archive 7-zip + archivi 7-zip cartlann 7-zip arquivo 7-zip ארכיון 7-zip @@ -7031,7 +7207,7 @@ archiu 7-zip Archiwum 7-zip arquivo 7-zip - Pacote 7-Zip + Pacote 7-Zip Arhivă 7-zip Архив 7-zip Archív 7-zip @@ -7042,32 +7218,34 @@ 7-Zip arşivi архів 7-zip Kho nén 7-zip - 7-zip 归档文件 - 7-zip 封存檔 + 7-zip 归档文件 + 7-zip 封存檔 - + AbiWord document + AbiWord-dokument مستند آبي وورد Documentu d'AbiWord - Dakument AbiWord + Dakument AbiWord Документ — AbiWord document AbiWord dokument AbiWord AbiWord-dokument AbiWord-Dokument Έγγραφο AbiWord - AbiWord document + AbiWord document AbiWord-dokumento documento de Abiword AbiWord dokumentua AbiWord-asiakirja AbiWord skjal document AbiWord + document AbiWord cáipéis AbiWord documento de AbiWord מסמך AbiWord @@ -7089,7 +7267,7 @@ document AbiWord Dokument AbiWord documento AbiWord - Documento do AbiWord + Documento do AbiWord Document AbiWord Документ AbiWord Dokument AbiWord @@ -7100,13 +7278,13 @@ AbiWord belgesi документ AbiWord Tài liệu AbiWord - AbiWord 文档 - AbiWord 文件 + AbiWord 文档 + AbiWord 文件 - - + + @@ -7117,18 +7295,19 @@ CD image cuesheet صفيحة صورة الـCD جديلة - Infarmacyjny arkuš vyjavy CD - Описание на изображение на CD + Infarmacyjny arkuš vyjavy CD + Съдържание на CD «cuesheet» d'imatge de CD rozvržení stop obrazu CD Cd-aftrykscuesheet CD-Abbild-Cuesheet Φύλλο cue εικόνας CD - CD image cuesheet + CD image cuesheet hoja CUE de imagen de CD CD irudiaren CUE orria CD-vedos cuesheet index de pistes de CD + sfuei-brivade CUE de imagjin CD bileog chiúála íomhá CD cue sheet dunha imaxe de CD גליון נתונים לתמונת דיסק @@ -7147,8 +7326,8 @@ CD-bilete-indeksfil indèx de pistas de CD Obraz cuesheet płyty CD - índice de CD de imagem - Índice de Imagem de CD + índice de imagem do CD + Índice de Imagem de CD Imagine CD cuesheet Таблица содержания образа CD Rozvrhnutie stôp obrazu CD @@ -7156,21 +7335,22 @@ Cuesheet imazhi CD Кју лист ЦД одраза Indexblad för cd-avbild - CD görüntüsü belgesi + CD görüntüsü çizelgesi таблиця CUE образу CD Tờ tín hiệu báo ảnh CD - CD 映像标记文件 - CD 映像指示表 + CD 映像标记文件 + CD 映像指示表 Lotus AmiPro document + Lotus AmiPro-dokument مستند Lotus AmiPro Documentu de Lotus AmiPro Lotus AmiPro sənədi - Dakument Lotus AmiPro + Dakument Lotus AmiPro Документ — Lotus AmiPro document de Lotus AmiPro dokument Lotus AmiPro @@ -7178,13 +7358,14 @@ Lotus AmiPro-dokument Lotus-AmiPro-Dokument Έγγραφο Lotus AmiPro - Lotus AmiPro document + Lotus AmiPro document dokumento de Lotus AmiPro documento de Lotus AmiPro Lotus AmiPro dokumentua Lotus AmiPro -asiakirja Lotus AmiPro skjal document Lotus AmiPro + document Lotus AmiPro cáipéis Lotus AmiPro documento de Lotus AmiPro מסמך של Lotus AmiPro @@ -7205,7 +7386,7 @@ document Lotus AmiPro Dokument Lotus AmiPro documento Lotus AmiPro - Documento do Lotus AmiPro + Documento do Lotus AmiPro Document Lotus AmiPro Документ Lotus AmiPro Dokument Lotus AmiPro @@ -7216,13 +7397,14 @@ Lotus AmiPro belgesi документ Lotus AmiPro Tài liệu Lotus AmiPro - Lotus AmiPro 文档 - Lotus AmiPro 文件 + Lotus AmiPro 文档 + Lotus AmiPro 文件 AportisDoc document + AportisDoc-dokument مستند AportisDoc Documentu d'AportisDoc Документ — AportisDoc @@ -7231,13 +7413,14 @@ AportisDoc-dokument AportisDoc-Dokument Έγγραφο AportisDoc - AportisDoc document + AportisDoc document AportisDoc-dokumento documento de AportisDoc AportisDoc dokumentua AportisDoc-asiakirja AportisDoc skjal document AportisDoc + document AportisDoc cáipéis AportisDoc documento de AportiDoc מסמך AportisDoc @@ -7256,7 +7439,7 @@ document AportisDoc Dokument AportisDoc documento AportisDoc - Documento do AportisDoc + Documento do AportisDoc Document AportisDoc Документ AportisDoc Dokument AportisDoc @@ -7266,34 +7449,36 @@ AportisDoc belgesi документ AportisDoc Tài liệu AportisDoc - AportisDoc 文档 - AportisDoc 文件 + AportisDoc 文档 + AportisDoc 文件 - - + + Applix Spreadsheets spreadsheet + Applix Spreadsheets-sigblad جداول بيانات Applix - Raźlikovy arkuš Applix Spreadsheets + Raźlikovy arkuš Applix Spreadsheets Таблица — Applix Spreadsheets full de càlcul d'Applix Spreadsheets sešit Applix Spreadsheets Applix Spreadsheets-regneark Applix-Spreadsheets-Tabelle Λογιστικό φύλλο Applix Spreadsheets - Applix Spreadsheets spreadsheet + Applix Spreadsheets spreadsheet sterntabelo de Applix Spreadsheets hoja de cálculo de Applix Spreadsheets Applix Spreadsheets kalkulu-orria Applix Spreadsheets -taulukko Applix Spreadsheets rokniark feuille de calcul Applix + sfuei di calcul Applix Spreadsheets scarbhileog Applix Spreadsheets folla de cálculo de Applix גליון נתונים של Applix Spreadsheets @@ -7315,7 +7500,7 @@ fuèlh de calcul Applix Arkusz Applix Spreadsheets folha de cálculo Applix Spreadsheets - Planilha do Applix Spreadsheets + Planilha do Applix Spreadsheets Foaie de calcul Applix Электронная таблица Applix Spreadsheets Zošit Applix Spreadsheets @@ -7323,26 +7508,27 @@ Fletë llogaritjesh Applix Spreadsheets документ Апликсове Табеле Applix Spreadsheets-kalkylblad - Applix Spreadsheets çalışma sayfası + Applix Spreadsheets hesap çizelgesi ел. таблиця Applix Spreadsheets Bảng tính Applix Spreadsheets - Applix Spreadsheets 电子表格 - Applix Spreadsheets 試算表 + Applix Spreadsheets 电子表格 + Applix Spreadsheets 試算表 - - - + + + Applix Words document + Applix Words-dokument مستند كلمات Applix Documentu d'Applix Words Applix Words sənədi - Dakument Applix Words + Dakument Applix Words Документ — Applix Words document d'Applix Words dokument Applix Words @@ -7350,13 +7536,14 @@ Applix Words-dokument Applix-Words-Dokument Έγγραφο Applix Words - Applix Words document + Applix Words document dokumento de Applix Words documento de Applix Words Applix Words dokumentua Applix Words -asiakirja Applix Words skjal document Applix Words + document Applix Words cáipéis Applix Words documento de Applix Words מסמך של Applix Words @@ -7378,7 +7565,7 @@ document Applix Words Dokument Applix Words documento Applix Words - Documento do Applix Words + Documento do Applix Words Document Applix Words Документ Applix Words Dokument Applix Words @@ -7389,33 +7576,35 @@ Applix Words belgesi документ Applix Words Tài liệu Applix Words - Applix Words 文档 - Applix Words 文件 + Applix Words 文档 + Applix Words 文件 - - + + ARC archive + ARC-argief أرشيف ARC - Archiŭ ARC + Archiŭ ARC Архив — ARC arxiu ARC archiv ARC ARC-arkiv ARC-Archiv Συμπιεσμένο αρχείο ARC - ARC archive + ARC archive ARC-arkivo archivador ARC ARC artxiboa ARC-arkisto ARC skjalasavn archive ARC + archivi ARC cartlann ARC arquivo ARC ארכיון ARC @@ -7436,7 +7625,7 @@ archiu ARC Archiwum ARC arquivo ARC - Pacote ARC + Pacote ARC Arhivă ARC Архив ARC Archív ARC @@ -7447,35 +7636,37 @@ ARC arşivi архів ARC Kho nén ARC - ARC 归档文件 - ARC 封存檔 + ARC 归档文件 + ARC 封存檔 - - - - - - + + + + + + AR archive + AR-argief أرشيف AR - Archiŭ AR + Archiŭ AR Архив — AR arxiu AR archiv AR AR-arkiv AR-Archiv Συμπιεσμένο αρχείο AR - AR archive + AR archive AR-arkivo archivador AR AR artxiboa AR-arkisto AR skjalasavn archive AR + archivi AR cartlann AR arquivo AR ארכיון AR @@ -7497,7 +7688,7 @@ archiu AR Archiwum AR arquivo AR - Pacote AR + Pacote AR Arhivă AR Архив AR Archív AR @@ -7508,21 +7699,22 @@ AR arşivi архів AR Kho nén AR - AR 归档文件 - AR 封存檔 + AR 归档文件 + AR 封存檔 - - + + ARJ archive + ARJ-argief أرشيف ARJ ARJ arxivi - Archiŭ ARJ + Archiŭ ARJ Архив — ARJ arxiu ARJ archiv ARJ @@ -7530,13 +7722,14 @@ ARJ-arkiv ARJ-Archiv Συμπιεσμένο αρχείο ARJ - ARJ archive + ARJ archive ARJ-arkivo archivador ARJ ARJ artxiboa ARJ-arkisto ARJ skjalasavn archive ARJ + archivi ARJ cartlann ARJ arquivo ARJ ארכיון ARJ @@ -7558,7 +7751,7 @@ archiu ARJ Archiwum ARJ arquivo ARJ - Pacote ARJ + Pacote ARJ Arhivă ARJ Архив ARJ Archív ARJ @@ -7569,34 +7762,36 @@ ARJ arşivi архів ARJ Kho nén ARJ - ARJ 归档文件 - ARJ 封存檔 + ARJ 归档文件 + ARJ 封存檔 ARJ Archived by Robert Jung - + ASP page + ASP-bladsy صفحة ASP Páxina ASP - Staronka ASP + Staronka ASP Страница — ASP pàgina ASP stránka ASP ASP-side ASP-Seite Σελίδα ASP - ASP page + ASP page ASP-paĝo página ASP ASP orria ASP-sivu ASP síða page ASP + pagjine ASP leathanach ASP páxina ASP עמוד ASP @@ -7617,7 +7812,7 @@ pagina ASP Strona ASP página ASP - Página ASP + Página ASP Pagină ASP Страница ASP Stránka ASP @@ -7628,8 +7823,8 @@ ASP sayfası сторінка ASP Trang ASP - ASP 页面 - ASP 頁面 + ASP 页面 + ASP 頁面 ASP Active Server Page @@ -7638,10 +7833,11 @@ AWK script + AWK-skrip سكربت AWK Script AWK AWK skripti - Skrypt AWK + Skrypt AWK Скрипт — AWK script AWK skript AWK @@ -7649,13 +7845,14 @@ AWK-program AWK-Skript Δέσμη ενεργειών AWK - AWK script + AWK script AWK-skripto secuencia de órdenes en AWK AWK script-a AWK-komentotiedosto AWK boðrøð script AWK + script AWK script AWK script de AWK תסריט AWK @@ -7677,7 +7874,7 @@ escript AWK Skrypt AWK script AWK - Script AWK + Script AWK Script AWK Сценарий AWK Skript AWK @@ -7688,31 +7885,32 @@ AWK betiği скрипт AWK Văn lệnh AWK - AWK 脚本 - AWK 指令稿 + AWK 脚本 + AWK 指令稿 - - - - - - - - - - + + + + + + + + + + BCPIO document + BCPIO-dokument مستند BCPIO Documentu BCPIO BCPIO sənədi - Dakument BCPIO + Dakument BCPIO Документ — BCPIO document BCPIO dokument BCPIO @@ -7720,13 +7918,14 @@ BCPIO-dokument BCPIO-Dokument Έγγραφο BCPIO - BCPIO document + BCPIO document BCPIO-dokumento documento BCPIO BCPIO dokumentua BCPIO-asiakirja BCPIO skjal document BCPIO + document BCPIO cáipéis BCPIO documento BCPIO מסמך של BCPO @@ -7748,7 +7947,7 @@ document BCPIO Dokument BCPIO documento BCPIO - Documento BCPIO + Documento BCPIO Document BCPIO Документ BCPIO Dokument BCPIO @@ -7759,8 +7958,8 @@ BCPIO belgesi документ BCPIO Tài liệu BCPIO - BCPIO 文档 - BCPIO 文件 + BCPIO 文档 + BCPIO 文件 BCPIO Binary CPIO @@ -7768,9 +7967,10 @@ BitTorrent seed file + BitTorrent-saadlêer ملف باذر البت تورنت BitTorrent seed faylı - Fajł krynicy BitTorrent + Fajł krynicy BitTorrent Файл-източник — BitTorrent fitxer de llavor BitTorrent soubor BitTorrent @@ -7778,13 +7978,14 @@ BitTorrent-frøfil BitTorrent-Seed-Datei Αρχείο BitTorrent seed - BitTorrent seed file + BitTorrent seed file BitTorrent-semdosiero archivo semilla de BitTorrent BitTorrent hazi-fitxategia BitTorrent-siementiedosto BitTorrent seed fíla fichier graine BitTorrent + file semence di BitTorrent comhad síl BitTorrent ficheiro de orixe BitTorrent קובץ זריעה של BitTorrent @@ -7805,7 +8006,7 @@ fichièr grana BitTorrent Plik ziarna BitTorrent ficheiro de semente BitTorrent - Arquivo semente BitTorrent + Arquivo semente BitTorrent Fișier sursă-completă BitTorrent Файл источника BitTorrent Súbor BitTorrent @@ -7816,31 +8017,33 @@ BitTorrent tohum dosyası файл поширення BitTorrent Tải tập hạt BitTorrent - BitTorrent 种子文件 - BitTorrent 種子檔 + BitTorrent 种子文件 + BitTorrent 種子檔 - + Blender scene + Blender-toneel مشهد بلندر Escena de Blender - Scena Blender + Scena Blender Сцена — Blender escena de Blender scéna Blender Blenderscene Blender-Szene Σκηνή Blender - Blender scene + Blender scene Blender-sceno escena de Blender Blender-eko fitxategia Blender-näkymä Blender leikmynd scène Blender + sene Blender radharc Blender escena de Blender סצנת Blender @@ -7862,7 +8065,7 @@ scèna Blender Scena programu Blender cenário Blender - Cena do Blender + Cena do Blender Scenă Blender Сцена Blender Scéna Blender @@ -7873,38 +8076,40 @@ Blender sahnesi сцена Blender Cảnh Blender - Blender 场景 - Blender 場景 + Blender 场景 + Blender 場景 - + TeX DVI document (bzip-compressed) + TeX DVI-dokument (bzip-saamgepers) مستند TeX DVI (مضغوط-bzip) Documentu Tex DVI (comprimíu en bzip) - Dakument TeX DVI (bzip-skampresavany) + Dakument TeX DVI (bzip-skampresavany) Документ — TeX DVI, компресиран с bzip document de TeX DVI (amb compressió bzip) dokument TeX DVI (komprimovaný pomocí bzip) TeX DVI-dokument (bzip-komprimeret) TeX-DVI-Dokument (bzip-komprimiert) Αρχείο TeX DVI (συμπιεσμένο με bzip) - TeX DVI document (bzip-compressed) + TeX DVI document (bzip-compressed) documento DVI de TeX (comprimido con bzip) TeX DVI dokumentua (bzip-ekin konprimitua) TeX DVI -asiakirja (bzip-pakattu) TeX DVI skjal (bzip-stappað) document DVI TeX (compressé bzip) + document DVI TeX (comprimût cun bzip) cáipéis DVI TeX (comhbhrúite le bzip) documento DVI de TeX (comprimido con bzip) מסמך מסוג TeX DVI (מכווץ ע״י bzip) TeX DVI dokument (bzip sažeto) - TeX DVI dokumentum (bzip-pel tömörítve) + TeX DVI dokumentum (bzip tömörítésű) Documento TeX DVI (comprimite con bzip) Dokumen TeX DVI (terkompresi bzip) Documento TeX DVI (compresso con bzip) @@ -7919,7 +8124,7 @@ document DVI TeX (compressat bzip) Dokument TeX DVI (kompresja bzip) documento TeX DVI (compressão bzip) - Documento DVI TeX (compactado com bzip) + Documento DVI TeX (compactado com bzip) Document TeX DVI (comprimat bzip) Документ TeX DVI (сжатый bzip) Dokument TeX DVI (komprimovaný pomocou bzip) @@ -7930,30 +8135,32 @@ TeX DVI belgesi (bzip ile sıkıştırılmış) документ TeX DVI (стиснений bzip) Tài liệu DVI TeX (đã nén bzip) - TeX DVI 文档(gzip 压缩) - TeX DVI 文件 (bzip 格式壓縮) + TeX DVI 文档(gzip 压缩) + TeX DVI 文件 (bzip 壓縮) Bzip archive + Bzip-argief أرشيف Bzip Archivu Bzip - Archiŭ bzip + Archiŭ bzip Архив — bzip arxiu bzip archiv bzip Bzip-arkiv Bzip-Archiv Συμπιεσμένο αρχείο Bzip - Bzip archive + Bzip archive Bzip-arkivo archivador Bzip Bzip artxiboa Bzip-arkisto Bzip skjalasavn archive bzip + archivi Bzip cartlann Bzip arquivo Bzip ארכיון Bzip @@ -7974,10 +8181,10 @@ archiu bzip Archiwum bzip arquivo Bzip - Pacote Bzip + Pacote Bzip Arhivă Bzip Архив BZIP - Archív bzip + Archív Bzip Datoteka arhiva Bzip Arkiv bzip Бзип архива @@ -7985,38 +8192,41 @@ Bzip arşivi архів bzip Kho nén bzip - Bzip 归档文件 - Bzip 封存檔 + Bzip 归档文件 + Bzip 封存檔 - + + Tar archive (bzip-compressed) + Tar-argief (bzip-saamgepers) أرشيف Tar (مضغوط-bzip) Archivu Tar (comprimíu en bzip) - Archiŭ tar (bzip-skampresavany) + Archiŭ tar (bzip-skampresavany) Архив — tar, компресиран с bzip arxiu tar (amb compressió bzip) archiv Tar (komprimovaný pomocí bzip) Tar-arkiv (bzip-komprimeret) Tar-Archiv (bzip-komprimiert) Αρχείο Tar (συμπιεσμένο με bzip) - Tar archive (bzip-compressed) + Tar archive (bzip-compressed) archivador Tar (comprimido con bzip) Tar artxiboa (bzip-ekin konprimitua) Tar-arkisto (bzip-pakattu) Tar skjalasavn (bzip-stappað) archive tar (compressée bzip) + archivi Tar (comprimût cun bzip) cartlann Tar (comhbhrúite le bzip) arquivo Tar (comprimido con bzip) ארכיון Tar (מכווץ ע״י bzip) Tar arhiva (bzip sažeto) - Tar archívum (bzip-pel tömörítve) + Tar archívum (bzip tömörítésű) Archivo Tar (comprimite con bzip) Arsip Tar (terkompresi bzip) Archivio tar (compresso con bzip) @@ -8031,10 +8241,10 @@ archiu tar (compressat bzip) Archiwum tar (kompresja bzip) arquivo Tar (compressão bzip) - Pacote Tar (compactado com bzip) + Pacote Tar (compactado com bzip) Arhivă Tar (comprimată bzip) Архив TAR (сжатый bzip) - Archív tar (komprimovaný pomocou bzip) + Archív Tar (komprimovaný pomocou bzip) Datoteka arhiva Tar (stisnjen z bzip) Arkiv tar (i kompresuar me bzip) Тар архива (запакована бзипом) @@ -8042,8 +8252,8 @@ Tar arşivi (bzip ile sıkıştırılmış) архів tar (стиснений bzip) Kho nén tar (đã nén bzip) - Tar 归档文件(bzip 压缩) - Tar 封存檔 (bzip 格式壓縮) + Tar 归档文件(bzip 压缩) + Tar 封存檔 (bzip 壓縮) @@ -8054,26 +8264,28 @@ PDF document (bzip-compressed) + PDF-dokument (bzip-saamgepers) مستند PDF (مضغوط-bzip) Documentu PDF (comprimíu en bzip) - Dakument PDF (bzip-skampresavany) + Dakument PDF (bzip-skampresavany) Документ — PDF, компресиран с bzip document PDF (amb compressió bzip) dokument PDF (komprimovaný pomocí bzip) PDF-dokument (bzip-komprimeret) PDF-Dokument (bzip-komprimiert) Έγγραφο PDF (συμπιεσμένο με bzip) - PDF document (bzip-compressed) + PDF document (bzip-compressed) documento PDF (comprimido con bzip) PostScript dokumentua (bzip-ekin konprimitua) PDF-asiakirja (bzip-pakattu) PDF skjal (bzip-stappað) document PDF (compressé bzip) + document PDF (comprimût cun bzip) cáipéis PDF (comhbhrúite le bzip) documento PDF (comprimido en bzip) מסמך PDF (מכווץ ע״י bzip) PDF dokument (bzip sažet) - PDF dokumentum (bzip-tömörítésű) + PDF dokumentum (bzip tömörítésű) Documento PDF (comprimite con bzip) Dokumen PDF (terkompresi bzip) Documento PDF (compresso con bzip) @@ -8088,7 +8300,7 @@ document PDF (compressat bzip) Dokument PDF (kompresja bzip) documento PDF (compressão bzip) - Documento PDF (compactado com bzip) + Documento PDF (compactado com bzip) Document PDF (comprimat bzip) Документ PDF (сжатый bzip) Dokument PDF (komprimovaný pomocou bzip) @@ -8099,34 +8311,36 @@ PDF belgesi (bzip ile sıkıştırılmış) документ PDF (стиснений bzip) Tài liệu PDF (đã nén bzip) - PDF 文档(bzip 压缩) - PDF 文件 (bzip 格式壓縮) + PDF 文档(bzip 压缩) + PDF 文件 (bzip 壓縮) PostScript document (bzip-compressed) + PostScript-dokument (bzip-saamgepers) مستند PostScript (مضغوط-bzip) Documentu PostScript (comprimíu en bzip) - Dakument PostScript (bzip-skampresavany) + Dakument PostScript (bzip-skampresavany) Документ — PostScript, компресиран с bzip document PostScript (amb compressió bzip) dokument PostScript (komprimovaný pomocí bzip) PostScript-dokument (bzip-komprimeret) PostScript-Dokument (bzip-komprimiert) Έγγραφο PostScript (συμπιεσμένο με bzip) - PostScript document (bzip-compressed) + PostScript document (bzip-compressed) documento PostScript (comprimido con bzip) PostScript dokumentua (bzip-ekin konprimitua) PostScript-asiakirja (bzip-pakattu) PostScript skjal (bzip-stappað) document PostScript (compressé bzip) + document PostScript (comprimût cun bzip) cáipéis PostScript (comhbhrúite le bzip) documento PostScript (comprimido con bzip) מסמך PostDcript (מכווץ ע״י bzip) PostScript dokument (bzip sažet) - PostScript dokumentum (bzip-tömörítésű) + PostScript dokumentum (bzip tömörítésű) Documento PostScript (comprimite con bzip) Dokumen PostScript (terkompresi bzip) Documento PostScript (compresso con bzip) @@ -8139,9 +8353,9 @@ PostScript-document (ingepakt met bzip) PostScript-dokument (pakka med bzip) document PostEscript (compressat bzip) - Dokument Postscript (kompresja bzip) + Dokument PostScript (kompresja bzip) documento PostScript (compressão bzip) - Documento PostScript (compactado com bzip) + Documento PostScript (compactado com bzip) Document PostScript (comprimat bzip) Документ PostScript (сжатый bzip) Dokument PostScript (komprimovaný pomocou bzip) @@ -8152,28 +8366,30 @@ PostScript belgesi (bzip ile sıkıştırılmış) документ PostScript (стиснене bzip) Tài liệu PostScript (đã nén bzip) - PostScript 文档(bzip 压缩) - PostScript 文件 (bzip 格式壓縮) + PostScript 文档(bzip 压缩) + PostScript 文件 (bzip 壓縮) comic book archive + strokiesprent-argief أرشيف comic book - archiŭ komiksaŭ + archiŭ komiksaŭ Архив — комикси arxiu comic book archiv knihy komiksů comic book-arkiv Comic-Book-Archiv Συμπιεσμένο αρχείο κόμικ - comic book archive + comic book archive archivador de libro de cómic komiki artxiboa sarjakuva-arkisto teknisøgubóka skjalasavn archive Comic Book + archivi di fumets cartlann chartúin ficheiro de libro de banda deseñada ארכיון ספר קומי @@ -8193,7 +8409,7 @@ archiu Comic Book Archiwum komiksu arquivo de banda desenhada - Pacote de histórias em quadrinhos + Pacote de histórias em quadrinhos arhivă benzi desenate Архив комиксов Archív knihy komiksov @@ -8204,8 +8420,8 @@ çizgi roman arşivi архів коміксів Kho nén sách tranh chuyện vui - 漫画书归档文件 - 漫畫書封存檔 + 漫画书归档文件 + 漫畫書封存檔 @@ -8213,20 +8429,22 @@ comic book archive + strokiesprent-argief أرشيف comic book - archiŭ komiksaŭ + archiŭ komiksaŭ Архив — комикси arxiu comic book archiv knihy komiksů comic book-arkiv Comic-Book-Archiv Συμπιεσμένο αρχείο κόμικ - comic book archive + comic book archive archivador de libro de cómic komiki artxiboa sarjakuva-arkisto teknisøgubóka skjalasavn archive Comic Book + archivi di fumets cartlann chartúin ficheiro de libro de banda deseñada ארכיון ספר קומי @@ -8246,7 +8464,7 @@ archiu Comic Book Archiwum komiksu arquivo de banda desenhada - Pacote de histórias em quadrinhos + Pacote de histórias em quadrinhos arhivă benzi desenate Архив комиксов Archív knihy komiksov @@ -8257,28 +8475,30 @@ çizgi roman arşivi архів коміксів Kho nén sách tranh chuyện vui - 漫画书归档文件 - 漫畫書封存檔 + 漫画书归档文件 + 漫畫書封存檔 comic book archive + strokiesprent-argief أرشيف comic book - archiŭ komiksaŭ + archiŭ komiksaŭ Архив — комикси arxiu comic book archiv knihy komiksů comic book-arkiv Comic-Book-Archiv Συμπιεσμένο αρχείο κόμικ - comic book archive + comic book archive archivador de libro de cómic komiki artxiboa sarjakuva-arkisto teknisøgubóka skjalasavn archive Comic Book + archivi di fumets cartlann chartúin ficheiro de libro de banda deseñada ארכיון ספר קומי @@ -8298,7 +8518,7 @@ archiu Comic Book Archiwum komiksu arquivo de banda desenhada - Pacote de histórias em quadrinhos + Pacote de histórias em quadrinhos arhivă benzi desenate Архив комиксов Archív knihy komiksov @@ -8309,28 +8529,30 @@ çizgi roman arşivi архів коміксів Kho nén sách tranh chuyện vui - 漫画书归档文件 - 漫畫書封存檔 + 漫画书归档文件 + 漫畫書封存檔 comic book archive + strokiesprent-argief أرشيف comic book - archiŭ komiksaŭ + archiŭ komiksaŭ Архив — комикси arxiu comic book archiv knihy komiksů comic book-arkiv Comic-Book-Archiv Συμπιεσμένο αρχείο κόμικ - comic book archive + comic book archive archivador de libro de cómic komiki artxiboa sarjakuva-arkisto teknisøgubóka skjalasavn archive Comic Book + archivi di fumets cartlann chartúin ficheiro de libro de banda deseñada ארכיון ספר קומי @@ -8350,7 +8572,7 @@ archiu Comic Book Archiwum komiksu arquivo de banda desenhada - Pacote de histórias em quadrinhos + Pacote de histórias em quadrinhos arhivă benzi desenate Архив комиксов Archív knihy komiksov @@ -8361,8 +8583,8 @@ çizgi roman arşivi архів коміксів Kho nén sách tranh chuyện vui - 漫画书归档文件 - 漫畫書封存檔 + 漫画书归档文件 + 漫畫書封存檔 @@ -8370,6 +8592,7 @@ Lrzip archive + Lrzip-argief أرشيف Lrzip Архив — lrzip arxiu lrzip @@ -8377,13 +8600,14 @@ Lrzip-arkiv Lrzip-Archiv Συμπιεσμένο αρχείο Lrzip - Lrzip archive + Lrzip archive Lrzip-arkivo archivador Lrzip Lrzip artxiboa Lrzip-arkisto Lrzip skjalasavn archive lrzip + archivi Lrzip cartlann Lrzip arquivo Lrzip ארכיון Lrzip @@ -8401,7 +8625,7 @@ archiu lrzip Archiwum lrzip arquivo Lrzip - Pacote Lrzip + Pacote Lrzip Arhivă Lrzip Архив LRZIP Archív Lrzip @@ -8410,16 +8634,17 @@ Lrzip-arkiv Lrzip arşivi архів lrzip - Lrzip 归档文件 - Lrzip 封存檔 + Lrzip 归档文件 + Lrzip 封存檔 - + Tar archive (lrzip-compressed) + Tar-argief (lrzip-saamgepers) أرشيف Tar (مضغوط-lrzip) Архив — tar, компресиран с lrzip arxiu tar (amb compressió lrzip) @@ -8427,17 +8652,18 @@ Tar-arkiv (lrzip-komprimeret) Tar-Archiv (lrzip-komprimiert) Αρχείο Tar (συμπιεσμένο με lrzip) - Tar archive (lrzip-compressed) + Tar archive (lrzip-compressed) archivador Tar (comprimido con lrzip) Tar artxiboa (lrzip-ekin konprimitua) Tar-arkisto (lrzip-pakattu) Tar skjalasavn (lrzip-stappað) archive tar (compressée lrzip) + archivi Tar (comprimût cun lrzip) cartlann Tar (comhbhrúite le lrzip) arquivo Tar (comprimido con lrzip) ארכיון Tar (מכווץ ע״י lrzip) Tar arhiva (lrzip sažeta) - Tar archívum (lrzip-pel tömörítve) + Tar archívum (lrzip tömörítésű) Archivo Tar (comprimite con lrzip) Arsip Tar (terkompresi lrzip) Archivio tar (compresso con lrzip) @@ -8450,17 +8676,17 @@ archiu tar (compressat lrzip) Archiwum tar (kompresja lrzip) arquivo Tar (compressão Lrzip) - Pacote Tar (compactado com lrzip) + Pacote Tar (compactado com lrzip) Arhivă Tar (comprimată lrzip) Архив TAR (сжатый lrzip) - Archív tar (komprimovaný pomocou lrzip) + Archív Tar (komprimovaný pomocou lrzip) Datoteka arhiva Tar (stisnjen z lrzip) Тар архива (запакована лрзипом) Tar-arkiv (lrzip-komprimerat) Tar arşivi (lrzip ile sıkıştırılmış) архів tar (стиснений lrzip) - Tar 归档文件(lrzip 压缩) - Tar 封存檔 (lrzip 格式壓縮) + Tar 归档文件(lrzip 压缩) + Tar 封存檔 (lrzip 格式壓縮) @@ -8468,6 +8694,7 @@ Apple disk image + Apple-skyfbeeldlêer Imaxe de discu d'Apple Диск — Apple imatge de disc d'Apple @@ -8475,11 +8702,12 @@ Apple-diskaftryk Apple-Datenträgerabbild Εικόνα δίσκου Apple - Apple disk image + Apple disk image imagen de disco de Apple Apple disko irudia Apple-levytiedosto image disque Apple + imagjin disc Apple íomhá diosca Apple imaxe de disco de Appl תמונת כונן Apple @@ -8497,7 +8725,7 @@ imatge disc Apple Obraz dysku Apple imagem de disco Apple - Imagem de disco Apple + Imagem de disco Apple Образ диска Apple Mac OS X Obraz disku Apple Odtis diska Apple @@ -8505,23 +8733,26 @@ Apple-diskavbild Apple disk görüntüsü образ диска Apple - Apple 磁盘映像 - Apple 磁碟映像檔 + Apple 磁盘映像 + Apple 磁碟映像檔 Raw disk image + Rou skyfbeeldlêer Imaxe de discu en bruto + Диск — raw imatge de disc RAW surový obraz disku - Rå diskaftryk + Raw-diskaftryk Rohes Datenträgerabbild Ανεπεξέργαστη εικόνα δίσκου - Raw disk image + Raw disk image imagen de disco en bruto Disko gordinaren irudia Raaka levytiedosto image disque Raw + imagjin disc grese Amhíomha diosca Imaxe de disco en bruto דמות גולמית של כונן @@ -8535,21 +8766,50 @@ imatge disc Raw Surowy obraz dysku imagem de disco Raw - Imagem bruta de disco + Imagem bruta de disco Необработанный образ диска Obraz disku Surovi odtis diska сиров одраз диска Rå diskavbild - İşlem görmemiş disk imajı + Ham disk görüntüsü простий образ диска - 原始磁盘映像 - 原生磁碟映像檔 + 原始磁盘映像 + 原始磁碟映像檔 Floppy disk image + Disket-skyfbeeldlêer + Диск — флопи + imatge de disquet + obraz diskety + Floppy-diskaftryk + Diskettenabbild + Floppy disk image + imagen de disquete + Diskete disko irudia + Disketin levykuva + image disquette + imagjin disc floppy + íomhá diosca fhlapaigh + Slika diskete + Flopi lemezkép + Image disk floppy + Immagine disco floppy + Иілгіш диск бейнесі + 플로피 디스크 이미지 + Obraz dyskietki + imagem da disquete + Imagem de disco flexível + Образ гибкого диска + Obraz pružného disku + Diskettavbild + Disket görüntüsü + образ дискети + 软盘映像 + Floppy 軟碟映像檔 @@ -8557,22 +8817,25 @@ Raw disk image (XZ-compressed) + Rou skyfbeeldlêer (XZ-saamgepers) Imaxe de discu en bruto (comprimida en XZ) + Диск — raw, компресиран с xz imatge de disc RAW (amb compressió XZ) surový obraz disku (komprimovaný pomocí XZ) - Rå diskaftryk (XZ-komprimeret) + Raw-diskaftryk (XZ-komprimeret) Rohes Datenträgerabbild (XZ-komprimiert) Ανεπεξέργαστη εικόνα δίσκου (συμπιεσμένη XZ) - Raw disk image (XZ-compressed) + Raw disk image (XZ-compressed) imagen de disco en bruto (comprimida con XZ) Disko gordinaren irudia (XZ-rekin konprimitua) Raaka levytiedosto (XZ-pakattu) image disque Raw (compression XZ) + imagjin disc grese (comprimude cun XZ) Amhíomhá (comhbhrúite le XZ) Imaxe de disco en bruto (comprimida en XZ) דמות גולמית של כונן (בדחיסת XZ) Osnovna slika diska (XZ sažeta) - Nyers lemezkép (XZ-vel tömörítve) + Nyers lemezkép (XZ tömörítésű) Imagine de disco crude (comprimite con XZ) Image disk mentah (terkompresi XZ) Immagine disco raw (compressa XZ) @@ -8581,38 +8844,40 @@ imatge disc Raw (compression XZ) Surowy obraz dysku (kompresja XZ) imagem de disco Raw (compressão XZ) - Imagem bruta de disco (compactada com XZ) + Imagem bruta de disco (compactada com XZ) Необработанный образ диска (сжатый xz) Obraz disku (komprimovaný pomocou XZ) Surovi odtis diska (stisnjeno z XZ) сиров одраз диска (запакована ИксЗ-ом) Rå diskavbild (XZ-komprimerad) - İşlem görmemiş disk imajı (XZ ile sıkıştırılmış) + Ham disk görüntüsü (XZ ile sıkıştırılmış) простий образ диска (стиснений XZ) - 原始磁盘映像(XZ 压缩) - 原生磁碟映像 (XZ 格式壓縮) + 原始磁盘映像(XZ 压缩) + 原始磁碟映像檔 (XZ 壓縮) raw CD image + rou CD-beeldlêer صورة CD خامة imaxe de CD en bruto - suvoraja vyjava CD - Изображение — raw CD + suvoraja vyjava CD + Диск — raw CD imatge de CD en cru surový obraz CD - rå cd-aftryk + raw cd-aftryk CD-Roh-Abbild Εικόνα περιεχομένου ψηφιακού δίσκου - raw CD image + raw CD image kruda lumdiskbildo imagen de CD en bruto CD gordinaren irudia raaka CD-vedos rá CD mynd image CD brute + imagjin CD grese amhíomhá dhlúthdhiosca imaxe de CD en bruto תמונת דיסק גולמית @@ -8633,7 +8898,7 @@ imatge CD brut Surowy obraz CD imagem em bruto de CD - Imagem bruta de CD + Imagem bruta de CD imagine de CD brută Необработанный образ компакт-диска Surový obraz CD @@ -8641,48 +8906,64 @@ Imazh raw CD сиров одраз ЦД-а rå cd-avbild - Ham CD görüntüsü + ham CD görüntüsü образ raw CD ảnh đĩa CD thô - 原始 CD 映像 - 原生 CD 映像檔 + 原始 CD 映像 + 原生 CD 映像檔 - - + + + + Compressed CD image + imatge de CD amb compressió + Pakattu CD-levykuva + Immagine CD compressa + Skompresowany obraz płyty CD + стиснений образ CD + + + + + AppImage application bundle + AppImage-toepassingsbundel + Програмен пакет — AppImage paquet d'aplicació AppImage balíček AppImage s aplikací - Applmage-programsamling + AppImage-programsamling AppImage-Anwendungspaket - AppImage application bundle + AppImage application bundle paquete de aplicación AppImage AppImage aplikazio bilduma AppImage-sovelluspaketti lot applicatif AppImage + côl di aplicazions AppImage burla feidhmchláir AppImage חבילת יישומי AppImage AppImage paket aplikacije AppImage alkalmazáscsomag - bundel aplikasi AppImage + Bundel aplikasi AppImage Bundle applicazione AppImage AppImage қолданбалар дестесі AppImage 프로그램 번들 Pakiet programu AppImage - Pacote de aplicativo AppImage + pacote de aplicação AppImage + Pacote de aplicativo AppImage Пакет приложения AppImage Balík aplikácií AppImage скуп програма Ап-слике AppImage-programbunt AppImage uygulama paketi пакунок із програмами AppImage - AppImage 应用组合包 - AppImage 應用程式套組 + AppImage 应用组合包 + AppImage 應用程式套組 - + @@ -8697,20 +8978,22 @@ CD Table Of Contents + CD-inhoudsopgawe جدول محتويات الـ CD - Źmieściva CD + Źmieściva CD Съдържание на CD taula de continguts de CD obsah CD - Cd-indholdsfotegnelse + Cd-indholdsfortegnelse CD-Inhaltsverzeichnis Πίνακας περιεχομένων CD - CD Table Of Contents + CD Table Of Contents índice de contenido de CD CDaren edukien aurkibidea CD-sisällysluettelo CD innihaldsyvurlit table des matières de CD + tabele dai contignûts di CD clár ábhar dlúthdhiosca táboa de contidos de CD תוכן עניינים של דיסק @@ -8730,7 +9013,7 @@ ensenhador de CD Plik zawartości płyty CD Tabela de conteúdos de CD - Sumário de CD + Sumário de CD Tabel conținut CD Таблица содержания CD Obsah CD @@ -8741,37 +9024,64 @@ CD İçindekiler Tablosu зміст CD Mục Lục của đĩa CD - CD 索引 - CD 內容目錄 + CD 索引 + CD 內容目錄 - - - - - - + + + + + + + + GD-ROM image cuesheet + «cuesheet» d'imatge de GD-ROM + GD-ROM levykuvan taulukko + Cuesheet immagine GD-ROM + Obraz cuesheet płyty GD-ROM + таблиця CUE образу GD-ROM + + + + + + + Padus DiscJuggler CD image + imatge de CD de Padus DiscJuggler + Padus DiscJuggler CD-levykuva + Immagine CD DiscJuggler Padus + Obraz płyty CD programu Padus DiscJuggler + Imagem de CD do Padus DiscJuggler + образ CD Padus DiscJuggler + + PGN chess game notation + PGN-skaakspelnotasie تدوينة لعبة الشطرنج PGN - Zaciem ab šachmatnaj partyi PGN + Zaciem ab šachmatnaj partyi PGN Игра шах — PGN notació de joc d'escacs PGN šachová notace PGN PGN-skakspilsnotation PGN-Schachspielnotation Σημειογραφία παιχνιδιού σκακιού PGN - PGN chess game notation + PGN chess game notation notación para juegos de ajedrez PGN PGN xake jokoaren notazioa PGN-šakkipelinotaatio PGN talv teknskipan notation de jeu d'échecs PGN + notazion par zûc di scacs PGN nodaireacht chluiche ficheall PGN Notación de xogo de xadrez PGN סימון משחק שח PGN @@ -8791,7 +9101,7 @@ notacion de jòc d'escacs PGN Plik PGN notacji gry w szachy notação de jogo de xadrez PGN - Notação de jogo de xadrez PGN + Notação de jogo de xadrez PGN Notație joc șah PGN Шахматная партия PGN Šachová notácia PGN @@ -8802,36 +9112,38 @@ PGN satranç oyun gösterimi запис гри у шахи PGN Cách ghi lượt chơi cờ PGN - PGN 象棋游戏注记 - PGN 國際象棋棋譜 + PGN 象棋游戏注记 + PGN 國際象棋棋譜 PGN Portable Game Notation - + CHM document + CHM-dokument مستند CHM Documentu CHM - Dakument CHM + Dakument CHM Документ — CHM document CHM dokument CHM CHM-dokument CHM-Dokument Έγγραφο CHM - CHM document + CHM document CHM-dokumento documento CHM CHM dokumentua CHM-asiakirja CHM skjal document CHM + document CHM cáipéis CHM documento CHM מסמך CHM @@ -8852,7 +9164,7 @@ document CHM Dokument CHM documento CHM - Documento CHM + Documento CHM Document CHM Документ CHM Dokument CHM @@ -8863,8 +9175,8 @@ CHM belgesi документ CHM Tài liệu CHM - CHM 文档 - CHM 文件 + CHM 文档 + CHM 文件 CHM Compiled Help Modules @@ -8873,23 +9185,25 @@ Java byte code + Java binêre kode رمز بايت الـJava Java bayt kodu - Bajtavy kod Java + Bajtavy kod Java Байт код за Java - Bytecode de Java + bytecode de Java bajtový kód Java Côd beit Java - Javabytekode + Java-bytekode Java-Bytecode Συμβολοκώδικας Java - Java byte code + Java byte code Java-bajtkodo bytecode de Java Java byte-kodea Java-tavukoodi Java býtkota code Java binaire + bytecode di Java beartchód Java byte code de Java קוד Java byte @@ -8910,7 +9224,7 @@ còde Java binari Kod bajtowy Java byte-code Java - Código compilado Java + Código compilado Java Bytecode Java Байт-код Java Bajtový kód Java @@ -8921,31 +9235,33 @@ Java derlenmiş kodu Байт-код Java Mã byte Java - Java 字节码 - Java 位元組碼 + Java 字节码 + Java 位元組碼 UNIX-compressed file + UNIX-saamgepersde lêer ملف يونكس-مضغوط - Skampresavany UNIX-fajł + Skampresavany UNIX-fajł Файл — компресиран за UNIX fitxer amb compressió UNIX soubor komprimovaný v Unixu UNIX-komprimeret fil UNIX-komprimierte Datei Συμπιεσμένο αρχείο UNIX - UNIX-compressed file + UNIX-compressed file UNIX-kunpremita dosiero archivo comprimido de Unix UNIX-en konprimitutako fitxategia UNIX-pakattu tiedosto UNIX-stappað fíla fichier compressé UNIX + file comprimût di UNIX comhad UNIX-comhbhrúite ficheiro comprimido de UNIX קובץ בכיווץ UNIX UNIX sažeta datoteka - Tömörített UNIX-fájl + UNIX tömörítésű fájl File comprimite de UNIX Berkas terkompresi UNIX File compresso-UNIX @@ -8961,7 +9277,7 @@ fichièr compressat UNIX Skompresowany plik systemu UNIX ficheiro comprimido UNIX - Arquivo compactado do UNIX + Arquivo compactado do UNIX Fișier comprimat UNIX Файл (UNIX-сжатый) Súbor komprimovaný v Unixe @@ -8972,35 +9288,37 @@ UNIX-sıkıştırılmış dosyası стиснений файл UNIX Tập tin đã nén UNIX - UNIX 压缩文件 - UNIX 格式壓縮檔 + UNIX 压缩文件 + UNIX 壓縮檔 - + Tar archive (gzip-compressed) + Tar-argief (gzip-saamgepers) أرشيف Tar (مضغوط-gzip) - Archiŭ tar (gzip-skampresavany) + Archiŭ tar (gzip-skampresavany) Архив — tar, компресиран с gzip arxiu tar (amb compressió gzip) archiv tar (komprimovaný pomocí gzip) Tar-arkiv (gzip-komprimeret) Tar-Archiv (gzip-komprimiert) Αρχείο Tar (συμπιεσμένο με gzip) - Tar archive (gzip-compressed) + Tar archive (gzip-compressed) archivador Tar (comprimido con gzip) Tar artxiboa (gzip-ekin konprimitua) Tar-arkisto (gzip-pakattu) Tar skjalasavn (gzip-stappað) archive tar (compressée gzip) + archivi Tar (comprimût cun gzip) cartlann Tar (comhbhrúite le gzip) arquivo Tar (comprimido con gzip) ארכיון Tar (מכווץ ע״י gzip) Tar arhiva (gzip sažeta) - Tar archívum (gzip-pel tömörítve) + Tar archívum (gzip tömörítésű) Archivo Tar (comprimite con gzip) Arsip Tar (terkompresi gzip) Archivio tar (compresso con gzip) @@ -9015,10 +9333,10 @@ archiu tar (compressat gzip) Archiwum tar (kompresja gzip) arquivo Tar (compressão gzip) - Pacote Tar (compactado com gzip) + Pacote Tar (compactado com gzip) Arhivă Tar (comprimată gzip) Архив TAR (сжатый gzip) - Archív tar (komprimovaný pomocou gzip) + Archív Tar (komprimovaný pomocou gzip) Datoteka arhiva Tar (stisnjen z gzip) Arkiv tar (i kompresuar me gzip) Тар архива (запакована гзипом) @@ -9026,8 +9344,8 @@ Tar arşivi (gzip ile sıkıştırılmış) архів tar (стиснений gzip) Kho nén tar (đã nén gzip) - Tar 归档文件(gzip 压缩) - Tar 封存檔 (gzip 格式壓縮) + Tar 归档文件(gzip 压缩) + Tar 封存檔 (gzip 壓縮) @@ -9035,21 +9353,23 @@ program crash data + programomvaldata معلومات انهيار البرنامج - źviestki złamanaj prahramy + źviestki złamanaj prahramy Данни от забиване на програма dades de fallada de programa data o pádu programu programnedbrudsdata Daten zu Programmabsturz δεδομένα από την κατάρρευση προγράμματος - program crash data + program crash data datumo pri kraŝo de programo datos de cuelgue de programa programaren kraskaduraren datuak ohjelman kaatumistiedot forrits sordáta données de plantage de programme + dâts di colàs di program sonraí tuairte ríomhchláir datos de colgue do programa מידע מקריסת תכנית @@ -9070,7 +9390,7 @@ donadas de plantage de programa Dane awarii programu dados de rebentamento de aplicação - Dados de travamento de programa + Dados de travamento de programa date eroare program Данные аварийного завершения программы Údaje o páde programu @@ -9081,31 +9401,32 @@ program çökme verisi аварійні дані про програму dữ liệu sụp đổ chương trình - 程序崩溃数据 - 程式當掉資料 + 程序崩溃数据 + 程式當掉資料 - - - - + + + + - - - + + + - - + + CPIO archive + CPIO-argief أرشيف CPIO Archivu CPIO CPIO arxivi - Archiŭ CPIO + Archiŭ CPIO Архив — CPIO arxiu CPIO archiv CPIO @@ -9113,13 +9434,14 @@ CPIO-arkiv CPIO-Archiv Συμπιεσμένο αρχείο CPIO - CPIO archive + CPIO archive CPIO-arkivo archivador CPIO CPIO artxiboa CPIO-arkisto CPIO skjalasavn archive CPIO + archivi CPIO cartlann CPIO arquivo CPIO ארכיון CPIO @@ -9141,7 +9463,7 @@ archiu CPIO Archiwum CPIO arquivo CPIO - Pacote CPIO + Pacote CPIO Arhivă CPIO Архив CPIO Archív CPIO @@ -9152,22 +9474,23 @@ CPIO arşivi архів CPIO Kho nén CPIO - CPIO 归档文件 - CPIO 封存檔 + CPIO 归档文件 + CPIO 封存檔 - - - - + + + + CPIO archive (gzip-compressed) + CPIO-argief (gzip-saamgepers) أرشيف CPIO (مضغوط-gzip) CPIO arxivi (gzip ilə sıxışdırılmış) - Archiŭ CPIO (gzip-skampresavany) + Archiŭ CPIO (gzip-skampresavany) Архив — CPIO, компресиран с gzip arxiu CPIO (amb compressió gzip) archiv CPIO (komprimovaný pomocí gzip) @@ -9175,18 +9498,19 @@ CPIO-arkiv (gzip-komprimeret) CPIO-Archiv (gzip-komprimiert) Αρχείο CPIO (συμπιεσμένο με gzip) - CPIO archive (gzip-compressed) + CPIO archive (gzip-compressed) CPIO-arkivo (kunpremita per gzip) archivador CPIO (comprimido con gzip) CPIO artxiboa (gzip-ekin konprimitua) CPIO-arkisto (gzip-pakattu) CPIO skjalasavn (gzip-stappað) archive CPIO (compressé gzip) + archivi CPIO (comprimût cun gzip) cartlann CPIO (comhbhrúite le gzip) arquivo CPIO (comprimido con gzip) ארכיון CPIO (מכווץ ע״י gzip) CPIO arhiva (gzip sažeta) - CPIO-archívum (gzip-pel tömörítve) + CPIO archívum (gzip tömörítésű) Archivo CPIO (comprimite con gzip) Arsip CPIO (terkompresi gzip) Archivio CPIO (compresso con gzip) @@ -9203,7 +9527,7 @@ archiu CPIO (compressat gzip) Archiwum CPIO (kompresja gzip) arquivo CPIO (compressão gzip) - Pacote CPIO (compactado com gzip) + Pacote CPIO (compactado com gzip) Arhivă CPIO (compresie gzip) Архив CPIO (сжатый gzip) Archív CPIO (komprimovaný pomocou gzip) @@ -9214,17 +9538,18 @@ CPIO arşivi (gzip ile sıkıştırılmış) архів CPIO (стиснений gzip) Kho nén CPIO (đã nén gzip) - CPIO 归档文件(gzip 压缩) - CPIO 封存檔 (gzip 格式壓縮) + CPIO 归档文件(gzip 压缩) + CPIO 封存檔 (gzip 壓縮) C shell script + C shell-skrip سكربت شِل سي C qabıq skripti - Skrypt abałonki C + Skrypt abałonki C Скрипт — обвивка C script C shell skript shellu C @@ -9232,13 +9557,14 @@ C-skalprogram C-Shell-Skript Δέσμη ενεργειών κελύφους C - C shell script + C shell script skripto de C-ŝelo secuencia de órdenes de consola en C C shell script-a Csh-komentotiedosto C skel boðrøð script C shell + script di shell in C script bhlaoisce C script de C shell תסריט מעטפת C @@ -9259,7 +9585,7 @@ escript C shell Skrypt powłoki C script de terminal C - Script de shell C + Script de shell C Script C shell Сценарий C shell Skript shellu C @@ -9270,37 +9596,39 @@ C kabuk betiği скрипт оболонки C Văn lệnh trình bao C - C shell 脚本 - C shell 指令稿 + C shell 脚本 + C shell 指令稿 - - - - + + + + Xbase document + Xbase-dokument مستند Xbase Documentu Xbase - Dakument Xbase + Dakument Xbase Документ — Xbase document Xbase dokument Xbase Xbasedokument Xbase-Dokument Έγγραφο Xbase - Xbase document + Xbase document Xbase-dokumento documento Xbase Xbase dokumentua Xbase-asiakirja Xbase skjal document Xbase + document Xbase cáipéis Xbase documento Xbase מסמך Xbase @@ -9320,7 +9648,7 @@ document Xbase Dokument Xbase documento Xbase - Documento do Xbase + Documento do Xbase Document Xbase Документ Xbase Dokument Xbase @@ -9331,8 +9659,8 @@ Xbase belgesi документ Xbase Tài liệu Xbase - Xbase 文档 - Xbase 文件 + Xbase 文档 + Xbase 文件 @@ -9341,20 +9669,22 @@ ECMAScript program + ECMAScript-program برنامج ECMAScript - Prahrama ECMAScript + Prahrama ECMAScript Програма — ECMAScript programa ECMAScript program v jazyce ECMAScript - ECMA-program + ECMAScript-program ECMAScript-Programm Πρόγραμμα ECMAScript - ECMAScript program + ECMAScript program programa en ECMAScript ECMAScript programa ECMAScript-ohjelma ECMAScript forrit programme ECMAScript + program ECMAScript ríomhchlár ECMAScript programa en ECMAScript תכנית EMCAScript @@ -9375,7 +9705,7 @@ programa ECMAEscript Pogram ECMAScript programa ECMAScript - Programa ECMAScript + Programa ECMAScript Program ECMAScript Программа ECMAScript Program ECMAScript @@ -9386,105 +9716,131 @@ ECMAScript programı програма мовою ECMAScript Chương trình ECMAScript - ECMAScript 程序 - ECMAScript 程式 + ECMAScript 程序 + ECMAScript 程式 - + + + MAME compressed hard disk image + imatge de disc dur MAME amb compressió + MAME-pakatun kiintolevyn levykuva + Immagine disco MAME compressa + Skompresowany obraz dysku twardego MAME + стиснений образ жорсткого диска MAME + + + + + + - + Sega CD disc image + Mega CD-skyfbeeldlêer Imaxe de discu de Sega CD + Диск — Mega-CD (Sega) imatge de disc de Sega CD obraz disku CD pro Sega Sega CD-diskaftryk Sega-CD-Datenträgerabbild - Sega CD disc image + Sega CD disc image imagen de disco CD de Sega Sega CD disko irudia Sega CD -levykuva image disque Sega CD + imagjin disc CD Sega íomhá dlúthdhiosca Sega דמות כונן Sega CD Sega CD slika diska Sega CD-lemezkép - image cakram CD Sega + Image cakram CD Sega Immagine disco Sega Mega CD Sega CD диск бейнесі 세가 CD 디스크 이미지 Obraz płyty konsoli Mega-CD - Imagem de disco Sega CD + imagem de disco Mega-CD + Imagem de disco Sega CD Образ диска CD Sega Obraz disku CD Sega одраз диска Сега ЦД-а Mega-CD-skivavbild - Sega CD disk kalıbı + Sega CD disk görüntüsü образ диска Sega CD - Sega CD 光盘映像 - Sega CD 光碟映像檔 + Sega CD 光盘映像 + Sega CD 光碟映像檔 - + - - + + - - + + - - + Sega Pico ROM ROM de Sega Pico + ROM — Sega Pico ROM de Sega Pico ROM pro Sega Pico + Sega Pico-ROM Sega Pico ROM - Sega Pico ROM + Sega Pico ROM ROM de Sega Pico Sega Pico ROM Sega Pico ROM ROM Sega Pico + ROM Sega Pico ROM Sega Pico Sega Pico ROM Sega Pico ROM ROM Sega Pico ROM Sega Pico Sega Pico ROM - 세카 피코 롬 + 세가 피코 롬 Plik ROM konsoli Sega Pico - ROM de Sega Pico + ROM Sega Pico + ROM de Sega Pico Sega Pico ROM ROM pre Sega Pico Сега Пико РОМ Sega Pico-rom Sega Pico ROM ППП Sega Pico - Sega Pico ROM - Sega Pico ROM + Sega Pico ROM + Sega Pico ROM - + + Sega Saturn disc image + Sega Saturn-skyfbeeldlêer Imaxe de discu de Sega Saturn + Диск — Sega Saturn imatge de disc de Sega Saturn obraz disku pro Sega Saturn Sega Saturn-diskaftryk Sega-Saturn-Datenträgerabbild Εικόνα δίσκου Sega Saturn - Sega Saturn disc image + Sega Saturn disc image imagen de disco de Sega Saturn Sega Saturn disko irudia Sega Saturn -levykuva image disque Sega Saturn + imagjin disc Sega Saturn íomhá diosca Sega Saturn דמות כונן Sega Saturn Sega Saturn slika diska @@ -9497,76 +9853,73 @@ imatge disc Sega Saturn Obraz płyty konsoli Sega Saturn imagem de disco Sega Saturn - Imagem de disco do Sega Saturn + Imagem de disco do Sega Saturn Образ диска Sega Saturn Obraz disku Sega Saturn одраз диска Сега Сатурна Sega Saturn-skivavbild - Sega Saturn disk kalıbı + Sega Saturn disk görüntüsü образ диска Sega Saturn - Sega Saturn 光盘映像 - Sega Saturn 光碟映像檔 + Sega Saturn 光盘映像 + Sega Saturn 光碟映像檔 - - + + - - - Dreamcast GD-ROM - GD-ROM de Dreamcast - GD-ROM de Dreamcast - GD-ROM pro Dreamcast - Dreamcast GD-ROM - Dreamcast GD-ROM - Dreamcast GD-ROM - Dreamcast GD-ROM - GD-ROM de Dreamcast - Dreamcast GD-ROM - GD-ROM Dreamcast - GD-ROM Dreamcast - Dreamcast GD-ROM - Dreamcast GD-ROM - Dreamcast GD-ROM - GD-ROM Dreamcast - GD-ROM Dreamcast - GD-ROM Dreamcast - Dreamcast GD-ROM - 드림캐스트 GD-ROM - GD-ROM Dreamcast - Plik GD-ROM konsoli Dreamcast - GD-ROM Dreamcast - GD-ROM de Dreamcast - Dreamcast GD-ROM - Dreamcast GD-ROM - Дримкаст ГД-РОМ - Dreamcast-gd-rom - Dreamcast GD-ROM - GD-ROM Dreamcast - Dreamcast CD-ROM - Dreamcast GD-ROM + + Dreamcast disc image + Диск — Dreamcast + imatge de disc de Dreamcast + Dreamcast-diskaftryk + Dreamcast-Datenträgerabbild + Dreamcast disc image + imagen de disco de Dreamcast + Dreamcast disko irudia + Dreamcast-levykuva + image disque Dreamcast + Dreamcast slika disa + Dreamcast lemezkép + Image cakram Dreamcast + Immagine disco Dreamcast + Dreamcast диск бейнесі + 드림캐스트 디스크 이미지 + Obraz płyty konsoli Dreamcast + imagem de disco Dreamcast + Imagem de disco do Dreamcast + Образ диска Dreamcast + Obraz disku Dreamcast + Dreamcast-skivavbild + Dreamcast disk görüntüsü + образ диска Dreamcast + Dreamcast 光盘映像 + Dreamcast 光碟映像檔 - + + + + Nintendo DS ROM Nintendo DS ROM ROM de Nintendo DS - Nintendo DS ROM + Nintendo DS ROM ROM — Nintendo DS ROM de Nintendo DS ROM pro Nintendo DS - Nintendo DS-rom + Nintendo DS-ROM Nintendo DS ROM Nintendo DS ROM - Nintendo DS ROM + Nintendo DS ROM ROM de Nintendo DS Nintendo DS-ko ROMa Nintendo DS-ROM Nintendo DS ROM ROM Nintendo DS + ROM Nintendo DS ROM Nintendo DS ROM de Nintendo DS ROM של Nintendo @@ -9586,7 +9939,7 @@ ROM Nintendo DS Plik ROM konsoli Nintendo DS ROM Nintendo DS - ROM de Nintendo DS + ROM de Nintendo DS ROM Nintendo DS Nintendo DS ROM ROM pre Nintendo DS @@ -9597,24 +9950,54 @@ Nintendo DS ROM ППП Nintendo ROM DS Nintendo - 任天堂 DS ROM - 任天堂 DS ROM + 任天堂 DS ROM + 任天堂 DS ROM + + Nintendo 3DS ROM + ROM de Nintendo 3DS + Nintendo 3DS ROM + ROM Nintendo 3DS + Plik ROM konsoli Nintendo 3DS + ROM do Nintendo 3DS + ППП Nintendo 3DS + + + + + + + + + Nintendo 3DS Executable + executable de Nintendo 3DS + Nintendo 3DS suoritettava + Eseguibile Nintendo 3DS + Plik wykonywalny konsoli Nintendo 3DS + виконуваний файл Nintendo 3DS + + + + + + PC Engine ROM ROM de PC Engine + ROM — PC Engine ROM de PC Engine ROM pro PC Engine - PC Engine ROM + PC Engine-ROM PC Engine ROM PC Engine ROM - PC Engine ROM + PC Engine ROM ROM de PC Engine PC Engine ROM PC Engine ROM ROM PC Engine + ROM PC Engine ROM PC Engine ROM de máquina de PC ROM של PC Engine @@ -9628,7 +10011,7 @@ ROM PC Engine Plik ROM konsoli PC Engine ROM PC Engine - ROM de PC Engine + ROM de PC Engine PC Engine ROM PC Engine ROM Pomnilnik PC Engine ROM @@ -9636,24 +10019,27 @@ PC Engine-rom PC Engine ROM ROM для рушія на ПК - PC Engine ROM - PC Engine ROM + PC Engine ROM + PC Engine ROM Wii disc image + Wii-skyfbeeldlêer Imaxe de discu de Wii + Диск — Wii imatge de disc de Wii obraz disku pro Wii Wii-diskaftryk Wii-Datenträgerabbild Εικόνα δίσκου Wii - Wii disc image + Wii disc image imagen de disco de Wii Wii disko irudia Wii-levykuva image disque Wii + imagjin disc Wii íomhá diosca Wii Imaxe de disco de Wii דמות כונן Wii @@ -9667,7 +10053,7 @@ imatge disc Wii Obraz płyty konsoli Wii imagem de disco Wii - Imagem de disco Wii + Imagem de disco Wii Образ диска Wii Obraz disku Wii Odtis diska Wii @@ -9675,29 +10061,33 @@ Wii-skivavbild Wii disk görüntüsü образ диска Wii - Wii 光盘映像 - Wii 光碟映像檔 + Wii 光盘映像 + Wii 光碟映像檔 - - - + + + WiiWare bundle + WiiWare-bundel + Програмен пакет — WiiWare paquet de WiiWare balíček pro WiiWare WiiWare-samling WiiWare-Paket - WiiWare bundle + WiiWare bundle conjunto de WiiWare WiiWare bilduma + WiiWare-lisäpaketti lot WiiWare + côl WiiWare burla WiiWare מאגד WiiWare WiiWare paket @@ -9706,39 +10096,42 @@ Bundel WiiWare Bundle WiiWare WiiWare дестесі - 위-웨어 번들 + WiiWare 번들 lòt WiiWare Pakiet WiiWare pacote WiiWare - Pacote WiiWare + Pacote WiiWare Пакет WiiWare Balík WiiWare ВииВер комплет WiiWare-paket WiiWare paketi пакет WiiWare - WiiWare 捆绑包 - WiiWare 綁包 + WiiWare 捆绑包 + WiiWare 綁包 - - - + + + GameCube disc image + GameCube-skyfbeeldlêer + Диск — GameCube imatge de disc de GameCube obraz disku pro GameCube GameCube-diskaftryk GameCube-Datenträgerabbild Εικόνα δίσκου GameCube - GameCube disc image + GameCube disc image imagen de disco de GameCube GameCube disko irudia GameCube-levykuva image disque GameCube + imagjin disc GameCube íomhá diosca GameCube Imae de disco de GameCube דמות כונן GameCube @@ -9752,7 +10145,7 @@ imatge disc GameCube Obraz płyty konsoli GameCube imagem de disco GameCube - Imagem de disco GameCube + Imagem de disco GameCube Образ диска GameCube Obraz disku GameCube Odtis diska GameCube @@ -9760,144 +10153,169 @@ GameCube-skivavbild GameCube disk görüntüsü образ диска GameCube - GameCube 光盘映像 - GameCube 光碟映像檔 + GameCube 光盘映像 + GameCube 光碟映像檔 - + Thomson Mémo7 cartridge + Касета — Thomson Mémo7 cartutx Thomson Mémo7 Kazeta Thomson Mémo7 + Thomson Mémo7-kassette Thomson-Mémo7-Steckmodul - Thomson Mémo7 cartridge + Thomson Mémo7 cartridge cartucho Mémo7 de Thomson + Thomson Mémo7 kartutxoa + Thomson Mémo7 -patruuna cartouche Thomson Mémo7 + cartucje Mémo7 Thomson cartús Thomson Mémo7 Thomson Mémo7 uložak Thomson Mémo7 kazetta - cartridge Thomson Mémo7 + Cartridge Thomson Mémo7 Cartuccia Thomson Mémo7 Thomson Mémo7 картриджі - 톰슨 메모7 카트릿지 + 톰슨 Mémo7 카트리지 Kartridż Thomson Mémo7 - Cartucho Thomson Mémo7 + cartucho Thomson Mémo7 + Cartucho Thomson Mémo7 Картридж Thomson Mémo7 Kazeta Thomson Mémo7 Томсон Мемо7 кертриџ Thomson Mémo7-spelkassett Thomson Mémo7 kartuşu картридж Thomson Mémo7 - Thomson Mémo7 卡带 - Thomson Mémo7 卡匣 + Thomson Mémo7 卡带 + Thomson Mémo7 卡匣 Thomson cassette + Касета — Thomson cinta de casset Thomson Kazeta Thomson + Thomson-kassette Thomson-Kassette - Thomson cassette + Thomson cassette casete de Thomson + Thomson kasetea + Thomson-kasetti cassette Thomson + cassete Thomson caiséad Thomson Thomson kaseta Thomson kazetta - kaset Thomson + Kaset Thomson Cassetta Thomson Thomson кассетасы - 톰슨 카셋트 + 톰슨 카세트 Kaseta Thomson - Cassete Thomson + cassete Thomson + Cassete Thomson Кассета Thomson Kazeta Thomson Томсон касете Thomson-kassett Thomson kaset касета Thomson - Thomson 磁带 - Thomson 卡匣 + Thomson 磁带 + Thomson 卡匣 HFE floppy disk image + Диск — флопи, HFE imatge de disquet HFE Obraz diskety HFE + HFE-floppydiskaftryk HFE-Diskettenabbild - HFE floppy disk image + HFE floppy disk image imagen de disquete HFE + HFE diskete disko irudia + HFE disketti-levykuva image disquette HFE + imagjin disc floppy HFE íomhá diosca fhlapaigh HFE HFE slika diskete HFE flopi lemezkép - image disk floppy HFE + Image disk floppy HFE Immagine disco floppy HFE HFE иілгіш диск бейнесі HFE 플로피 디스크 이미지 Obraz dyskietki HFE - Imagem de disco flexível HFE + imagem de disquete HFE + Imagem de disco flexível HFE Образ гибкого диска HFE Obraz pružného disku HFE ХФЕ слика флопи диска HFE-diskavbild - HFE disket kalıbı + HFE disket görüntüsü образ дискети HFE - HFE 软盘映像 - HFE 軟碟映像檔 + HFE 软盘映像 + HFE 軟碟映像檔 HFE HxC Floppy Emulator - + SAP Thomson floppy disk image + Диск — флопи, SAP Thomson imatge de disquet SAP Thomson Obraz diskety SAP Thomson + SAP Thomson-floppydiskaftryk SAP-Thomson-Diskettenabbild - SAP Thomson floppy disk image + SAP Thomson floppy disk image imagen de disquete SAP de Thomson + SAP Thomson diskete disko irudia + SAP Thomson disketti-levykuva image disquette SAP Thomson + imagjin disc floppy SAP Thomson íomhá diosca fhlapaigh SAP Thomson SAP Thomson slika diskete SAP Thomson flopi lemezkép - image disk floppy SAP Thomson + Image disk floppy SAP Thomson Immagine disco floppy Thomson SAP SAP Thomson иілгіш диск бейнесі SAP 톰슨 플로피 디스크 이미지 Obraz dyskietki SAP Thomson - Imagem de disco flexível SAP Thomson + imagem de disquete SAP Thomson + Imagem de disco flexível SAP Thomson Образ гибкого диска SAP Thomson Obraz pružného disku SAP Thomson САП Томсон слика флопи диска SAP Thomson-diskavbild - SAP Thomson disket kalıbı + SAP Thomson disket görüntüsü образ дискети Thomson SAP - SAP Thomson 软盘映像 - SAP Thomson 軟碟映像檔 + SAP Thomson 软盘映像 + SAP Thomson 軟碟映像檔 SAP Système d'Archivage Pukall - + Debian package + Debian-pakket حزمة ديبيان Debian paketi - Pakunak Debian + Pakunak Debian Пакет — Debian paquet Debian balíček Debianu @@ -9905,13 +10323,14 @@ Debianpakke Debian-Paket Πακέτο Debian - Debian package + Debian package Debian-pakaĵo paquete de Debian Debian paketea Debian-paketti Debian pakki paquet Debian + pachet Debian pacáiste Debian paquete de Debian חבילת דביאן @@ -9933,7 +10352,7 @@ paquet Debian Pakiet Debiana pacote Debian - Pacote Debian + Pacote Debian Pachet Debian Пакет Debian Balíček Debianu @@ -9944,90 +10363,78 @@ Debian paketi пакунок Debian Gói Debian - Debian 软件包 - Debian 軟體包 + Debian 软件包 + Debian 軟體包 - - + + - Qt Designer file - ملف Qt Designer - Fajł Qt Designer - Файл — Qt Designer - fitxer de Qt Designer - soubor Qt Designer - Qt Designer-fil - Qt-Designer-Datei - Αρχείο Qt Designer - Qt Designer file - dosiero de Qt Designer - archivo de Qt Designer - Qt Designer Fitxategia - Qt Designer -tiedosto - Qt Designer fíla - fichier Qt Designer - comhad Qt Designer - ficheiro de Qt Designer - קובץ של Qt Designer - Qt Designer datoteka - Qt Designer-fájl - File Qt Designer - Berkas Qt Designer - File Qt Designer - Qt Designer ファイル - Qt Designer файлы - Qt 디자이너 파일 - Qt Designer failas - Qt Designer datne - Fail Qt Designer - Qt Designer-fil - Qt Designer-bestand - Qt Designer-fil - fichièr Qt Designer - Plik Qt Designer - ficheiro do Qt Designer - Arquivo do Qt Designer - Fișier Qt Designer - Файл Qt Designer - Súbor Qt Designer - Datoteka Qt Designer - File Qt Designer - датотека Кут дизајнера - Qt Designer-fil - Qt Tasarımcı dosyası - файл програми Qt-дизайнер - Tập tin thiết kế Qt Designer - Qt Designer 文件 - Qt Designer 檔案 + Qt Designer interface document + Документ — интерфейс, Qt Designer + document d'interfície Qt Designer + Qt Designer-brugerflade-dokument + Qt-Designer-Oberflächendokument + Qt Designer interface document + documento de interfaz de Qt Designer + Qt Designer interfaze dokumentua + Qt Designer -käyttöliittymän asiakirja + document d'interface Qt Designer + Qt Designer dokument sučelja + Qt Designer felületleíró dokumentum + Dokumen antarmuka Qt Designer + Documento interfaccia Qt Designer + Qt Designer интерфейс құжаты + Qt 디자이너 인터페이스 문서 + Dokument interfejsu Qt Designer + documento de interface Qt Designer + Documento de interface do Qt Designer + Документ интерфейса Qt Designer + Qt Designer-gränssnittsdokument + Qt Designer arayüz belgesi + документ інтерфейсу Qt Designer + Qt Designer 界面文档 + Qt Designer 介面文件 - - + + + + Kaitai Struct definition file + fitxer de definicions Kaitai Struct + Kaitai Struct määritystiedosto + File definizione Kaitai Struct + Plik definicji Kaitai Struct + файл визначень Kaitai Struct + + + Qt Markup Language file - Файл — Qt Markup + Qt Markup Language-lêer + Интерфейс — Qt Markup fitxer de llenguatge de marcadors Qt soubor Qt Markup Language Qt Markup Language-fil Qt-Auszeichnungssprachendatei Αρχείο Qt Markup Language - Qt Markup Language file + Qt Markup Language file archivo de lenguaje de marcado Qt Qt Markup lengoai fitxategia QML-tiedosto fichier Qt Markup Language + file Qt Markup Language comhad teanga mharcála Qt ficheiro de linguaxe de marcado Qt קובץ שפת סימון של Qt @@ -10044,7 +10451,7 @@ fichièr Qt Markup Language Plik języka znaczników Qt ficheiro de linguagem Qt Markup - Arquivo de Qt Markup Language + Arquivo de Qt Markup Language Файл Qt Markup Language Súbor značkovacieho jazyka Qt Datoteka označevalnega jezika Qt @@ -10052,15 +10459,15 @@ Qt-märkspråksfil Qt İşaretleme Dili dosyası файл мови розмітки Qt - Qt Markup Language 文件 - Qt 標記語言檔 + Qt Markup Language 文件 + Qt 標記語言檔 - - - + + + - - + + @@ -10070,24 +10477,25 @@ desktop configuration file ملف تضبيط سطح المكتب - kanfihuracyjny fajł asiarodździa - Файл с информация за работния плот + kanfihuracyjny fajł asiarodździa + Информация за работния плот fitxer de configuració d'escriptori soubor nastavení pracovní plochy skrivebordskonfigurationsfil Desktop-Konfigurationsdatei Αρχείο ρυθμίσεων επιφάνειας εργασίας - desktop configuration file + desktop configuration file dosiero de agordoj de labortablo archivo de configuración del escritorio Mahaigainaren konfigurazio-fitxategia työpöydän asetustiedosto skriviborðssamansetingarfíla fichier de configuration desktop + file di configurazion scritori comhad cumraíochta deisce ficheiro de configuración de escritorio קובץ הגדרות שולחן עבודה - Datoteka prečaca radne površine + datoteka podešavanja radne površine asztalbeállító fájl File de configuration de scriptorio berkas konfigurasi destop @@ -10104,7 +10512,7 @@ fichièr de configuracion desktop Plik konfiguracji środowiska ficheiro de configuração de área de trabalho - Arquivo de configuração desktop + Arquivo de configuração desktop fișier de configurare al desktopului Файл настроек рабочего стола Súbor nastavení pracovnej plochy @@ -10112,19 +10520,19 @@ File konfigurimi desktop датотека подешавања радне површи skrivbordskonfigurationsfil - masa üstü yapılandırma dosyası + masaüstü yapılandırma dosyası файл конфігурації стільниці tập tin cấu hình môi trường - 桌面配置文件 - 桌面組態檔 + 桌面配置文件 + 桌面組態檔 - - - - - + + + + + @@ -10132,6 +10540,7 @@ FictionBook document + FictionBook-dokument مستند FictionBook Documentu de FictionBook Документ — FictionBook @@ -10140,13 +10549,14 @@ FictionBook-dokument FictionBook-Dokument Έγγραφο FictionBook - FictionBook document + FictionBook document FictionBook-dokumento documento FictionBook FictionBook dokumentua FictionBook-asiakirja FictionBook skjal document FictionBook + document FictionBook cáipéis FictionBook documento de FictionBook מסמך FictionBook @@ -10165,7 +10575,7 @@ document FictionBook Dokument FictionBook documento FictionBook - Documento FictionBook + Documento FictionBook Document FictionBook Документ FictionBook Dokument FictionBook @@ -10175,29 +10585,32 @@ FictionBook belgesi документ FictionBook Tài liệu FictionBook - FictionBook 文档 - FictionBook 文件 + FictionBook 文档 + FictionBook 文件 - + Compressed FictionBook document + Saamgepersde FictionBook-dokument Documentu comprimíu de FictionBook + Документ — FictionBook, компресиран document FictionBook amb compressió komprimovaný dokument FictionBook Komprimeret FictionBook-dokument Komprimiertes FictionBook-Dokument Συμπιεσμένο έγγραφο FictionBook - Compressed FictionBook document + Compressed FictionBook document documento comprimido de FictionBook Konprimitutako FictionBook dokumentua Pakattu FictionBook-asiakirja document FictionBook compressé + document FictionBook comprimût cáipéis chomhbhrúite FictionBook Documento de FictionBook comprimida מסמך FictionBook מכווץ @@ -10211,30 +10624,31 @@ document FictionBook compressat Skompresowany dokument FictionBook documento comprimido FictionBook - Documento FictionBook comprimido + Documento FictionBook comprimido Сжатый документ FictionBook Komprimovaný dokument FictionBook Stisnjeni dokument FictionBook запаковани документ Фикшон Књиге Komprimerat FictionBook-dokument - Sıkıştırılmış KurguKitap belgesi + Sıkıştırılmış FictionBook belgesi стиснений документ FictionBook - 压缩的 FictionBook 文档 - 壓縮版 FictionBook 文件 + 压缩的 FictionBook 文档 + 壓縮版 FictionBook 文件 - - - + + + Dia diagram + Dia-diagram خطاطة Dia Dia diaqramı - Dyjahrama Dia + Dyjahrama Dia Диаграма — Dia diagrama de Dia diagram Dia @@ -10242,13 +10656,14 @@ Dia-diagram Dia-Diagramm Διάγραμμα Dia - Dia diagram + Dia diagram Dia-diagramo diagrama de Dia Dia diagrama Dia-kaavio Dia ritmynd diagramme Dia + diagram Dia léaráid Dia diagrama de Dia גרף של Dia @@ -10270,7 +10685,7 @@ diagrama Dia Diagram Dia diagrama Dia - Diagrama do Dia + Diagrama do Dia Diagramă Dia Диаграмма Dia Diagram Dia @@ -10281,18 +10696,19 @@ Dia çizimi діаграма Dia Biểu đồ Dia - Dia 图表 - Dia 圖表 + Dia 图表 + Dia 圖表 - + Dia shape + Dia-vorm شكل Dia Фигура — Dia forma de Dia @@ -10300,12 +10716,13 @@ Dia-figur Dia-Form Σχήμα Dia - Dia shape + Dia shape forma de Dia Dia-ren forma Dia-muoto Dia skapur forme Dia + sagome Dia cruth Dia forma de Dia צורה של Dia @@ -10323,7 +10740,7 @@ forma Dia Kształt Dia forma Dia - Formato Dia + Formato Dia Figură Dia Фигура Dia Tvar Dia @@ -10332,34 +10749,36 @@ Dia-figur Dia şekli форма Dia - Dia 形状 - Dia 形狀 + Dia 形状 + Dia 形狀 - + TeX DVI document + TeX DVI-dokument مستند TeX DVI Documentu Tex DVI - Dakument TeX DVI + Dakument TeX DVI Документ — TeX DVI document DVI de TeX dokument TeX DVI TeX DVI-dokument TeX-DVI-Dokument Έγγραφο TeX DVI - TeX DVI document + TeX DVI document DVI-dokumento de TeX documento TeX DVI TeX DVI dokumentua TeX DVI -asiakirja TeX DVI skjal document TeX DVI + document DVI TeX cáipéis DVI TeX documento TeX DVI מסמך מסוג TeX DVI @@ -10380,7 +10799,7 @@ document TeX DVI Dokument TeX DVI documento TeX DVI - Documento DVI TeX + Documento DVI TeX Document Tex DVI Документ TeX DVI Dokument TeX DVI @@ -10391,21 +10810,22 @@ TeX DVI belgesi документ TeX DVI Tài liệu DVI Tex - TeX DVI 文档 - TeX DVI 文件 + TeX DVI 文档 + TeX DVI 文件 DVI Device independent file format - + Enlightenment theme + Enlightenment-tema سمة Enlightenment Enlightenment örtüyü - Matyŭ Enlightenment + Matyŭ Enlightenment Тема — Enlightenment tema d'Enlightenment motiv Enlightenment @@ -10413,13 +10833,14 @@ Enlightenmenttema Enlightenment-Thema Θέμα Enlightenment - Enlightenment theme + Enlightenment theme etoso de Enlightenment tema de Enlightenment Enlightenment gaia Enlightenment-teema Enlightenment tema thème Enlightenment + teme di Enlightenment téama Enlightenment tema de Enlightenment ערכת נושא של Enlightenment @@ -10441,7 +10862,7 @@ tèma Enlightenment Motyw Enlightenment tema Enlightenment - Tema do Enlightenment + Tema do Enlightenment Temă Enlightenment Тема Enlightenment Motív Enlightenment @@ -10452,27 +10873,28 @@ Enlightenment teması тема Enlightenment Sắc thái Enlightenment - Enlightenment 主题 - Enlightenment 佈景主題 + Enlightenment 主题 + Enlightenment 佈景主題 Egon Animator animation تحريكة محرك Egon - Animacyja Egon Animator + Animacyja Egon Animator Анимация — Egon Animator animació d'Egon Animator animace Egon Animator Egon Animator-animation Egon-Animator-Animation Κινούμενο σχέδιο Egon Animator - Egon Animator animation + Egon Animator animation animacio de Egon Animator animación de Egon Animator Egon Animator-eko animazioa Egon Animator -animaatio Egon Animator teknimyndagerð animation Egon Animator + animazion Egon Animator beochan Egon Animator animación de Egon Animator אנימצייה של Egon Animator @@ -10494,7 +10916,7 @@ animacion Egon Animator Animacja Egon Animator animação Egon Animator - Animação do Egon Animator + Animação do Egon Animator Animație Egon Animator Анимация Egon Animator Animácia Egon Animator @@ -10505,28 +10927,30 @@ Egon Animator canlandırması анімація Egon Animator Hoạt ảnh Egon Animator - Egon Animator 动画 - Egon Animator 動畫 + Egon Animator 动画 + Egon Animator 動畫 executable + uitvoerbaar تنفيذي - vykonvalny fajł + vykonvalny fajł Изпълним файл executable spustitelný soubor kørbar Programm Εκτελέσιμο - executable + executable plenumebla ejecutable exekutagarria suoritettava ohjelma inningarfør exécutable + eseguibil comhad inrite executábel קובץ הרצה @@ -10547,7 +10971,7 @@ executable Program executável - Executável + Executável executabil Исполняемый Spustiteľný súbor @@ -10558,43 +10982,41 @@ çalıştırılabilir виконуваний файл thực hiện được - 可执行文件 - 可執行檔 + 可执行文件 + 可執行檔 - - - - + + - - - - + + - - - - - + + + + + FLTK Fluid file + FLTK Fluit-lêer ملف FLTK Fluid - Fajł FLTK Fluid + Fajł FLTK Fluid Интерфейс — FLTK Fluid fitxer FLTK Fluid soubor FLTK Fluid FLTK Fluid-fil FLTK-Fluid-Datei Αρχείο FLTK Fluid - FLTK Fluid file + FLTK Fluid file archivo FLTK Fluid FLTK Fluid fitxategia FLTK Fluid -tiedosto FLTK Fluid fíla fichier Fluid FLTK + file FLTK Fluid comhad FLTK Fluid ficheiro FLTK Fluid קובץ FLTK Fluid @@ -10615,7 +11037,7 @@ fichièr Fluid FLTK Plik Fluid FLTK ficheiro FLTK Fluid - Arquivo Fluid do FLTK + Arquivo Fluid do FLTK Fișier FLTK Fluid Файл FLTK Fluid Súbor FLTK Fluid @@ -10626,34 +11048,37 @@ FLTK Fluid dosyası файл FLTK Fluid Tập tin Fluid FLTK - FLTK 流体文档 - FLTK Fluid 檔 + FLTK 流体文档 + FLTK Fluid 檔 FLTK Fast Light Toolkit - + WOFF font + WOFF-skriftipe Fonte WOFF + Шрифт — WOFF lletra WOFF font WOFF WOFF-skrifttype WOFF-Schrift Γραμματοσειρά WOFF - WOFF font + WOFF font tipo de letra WOFF WOFF letra-tipoa WOFF-fontti police WOFF + caratar WOFF cló WOFF Tipo de letra WOFF גופן WOFF - WOFF slovo + WOFF font WOFF-betűkészlet Typo de litteras WOFF Fonta WOFF @@ -10661,11 +11086,12 @@ WOFF フォント WOFF қарібі WOFF 글꼴 + WOFF šriftas WOFF fonts poliça WOFF Czcionka WOFF letra WOFF - Fonte WOFF + Fonte WOFF Шрифт WOFF Písmo WOFF Pisava WOFF @@ -10673,83 +11099,100 @@ WOFF-typsnitt WOFF yazı tipi шрифт WOFF - WOFF 字体 - WOFF 字型 + WOFF 字体 + WOFF 字型 WOFF Web Open Font Format - + - + WOFF2 font + WOFF2-skriftipe Fonte WOFF2 + Шрифт — WOFF2 lletra WOFF2 font WOFF2 + WOFF2-skrifttype WOFF2-Schrift - WOFF2 font + WOFF2 font tipo de letra WOFF2 + WOFF2 letra-tipoa WOFF2-fontti - WOFF2 slovo + police WOFF2 + caratar WOFF2 + cló WOFF2 + WOFF2 font WOFF2 betűkészlet Fonta WOFF2 Carattere WOFF2 WOFF2 қарібі WOFF2 글꼴 + WOFF2 šriftas Czcionka WOFF2 - Fonte WOFF2 + letra WOFF2 + Fonte WOFF2 Шрифт WOFF2 Písmo WOFF2 + Pisava WOFF2 WOFF2-typsnitt + WOFF2 yazı tipi шрифт WOFF2 - WOFF2 字体 - WOFF2 字型 + WOFF2 字体 + WOFF2 字型 WOFF2 Web Open Font Format 2.0 - + PostScript type-1 font + PostScript tipe 1-skriftipe + Шрифт — PostScript type-1 lletra type-1 de PostScript font PostScript type-1 + PostScript type-1-skrifttype PostScript-Typ-1-Schrift - PostScript type-1 font + PostScript type-1 font tipo de letra PostScript Type-1 PostScript type-1 letra-tipoa + PostScript type-1 -fontti police PostScript Type 1 + caratar PostScript type-1 cló PostScript type-1 - PostScript type-1 slovo + PostScript type-1 font PostScript type-1 betűkészlet - fonta PostScript type-1 + Fonta PostScript type-1 Carattere PostScript type-1 PostScript type-1 қарібі PostScript Type-1 글꼴 Czcionka PostScript Type-1 - Fonte PostScript tipo-1 + letra PostScript Tipo 1 + Fonte PostScript tipo-1 Шрифт PostScript Type-1 Písmo PostScript typu 1 слова Постскрипта врсте-1 PostScript type-1-typsnitt PostScript tip-1 yazı tipi шрифт type-1 PostScript - PostScript type-1 字体 - PostScript type-1 字型 + PostScript type-1 字体 + PostScript type-1 字型 - - - - - - + + + + + + @@ -10757,9 +11200,10 @@ Adobe font metrics + Adobe skriftipe-afmetings مقاييس خط أدوبي Adobe yazı növü metrikləri - Metryka šryftu Adobe + Metryka šryftu Adobe Шрифтова метрика — Adobe mètrica de lletra d'Adobe metrika fontu Adobe @@ -10767,16 +11211,17 @@ Adobe skrifttypefil Adobe-Schriftmetriken Μετρικά γραμματοσειράς Adobe - Adobe font metrics + Adobe font metrics metrikoj de Adobe-tiparo métricas tipográficas de Adobe Adobe letra-tipoen neurriak Adobe-fonttimitat métriques de police Adobe + metrichis caratar Adobe meadarachtaí cló Adobe métricas de fonte de Adobe מדדי גופן של Adobe - Adobe mjere slova + Metrika Adobe fonta Adobe-betűmetrika Metricas de typo de litteras Adobe Metrik fonta Adobe @@ -10793,7 +11238,7 @@ metricas de poliça Adobe Metryka czcionki Adobe métrica de letras Adobe - Métricas de fonte Adobe + Métricas de fonte Adobe Dimensiuni font Adobe Метрика шрифта Adobe Metrika písma Adobe @@ -10801,19 +11246,20 @@ Metrik lloj gërmash Adobe метрика Адобе слова Adobe-typsnittsmetrik - Adobe yazıtipi ölçüleri + Adobe yazı tipi ölçüleri метрики шрифту Adobe Cách đo phông chữ Adobe - Adobe 字体规格 - Adobe 字型描述檔 + Adobe 字体规格 + Adobe 字型描述檔 BDF font + BDF-skriftipe خط BDF BDF yazı növü - Šryft BDF + Šryft BDF Шрифт — BDF lletra BDF font BDF @@ -10821,17 +11267,18 @@ BDF-skrifttype BDF-Schrift Γραμματοσειρά BDF - BDF font + BDF font BDF-tiparo tipo de letra BDF BDF letra-tipoa BDF-fontti BDF stavasnið police BDF + caratar BDF cló BDF tipo de fonte BDF גופן BDF - BDF slovo + BDF font BDF-betűkészlet Typo de litteras BDF Fonta BDF @@ -10848,7 +11295,7 @@ poliça BDF Czcionka BDF letra BDF - Fonte BDF + Fonte BDF Font BDF Шрифт BDF Písmo BDF @@ -10856,22 +11303,23 @@ Lloj gërme BDF БДФ слова BDF-typsnitt - BDF fontu + BDF yazı tipi шрифт BDF Phông chữ BDF - BDF 字体 - BDF 字型 + BDF 字体 + BDF 字型 - + DOS font + DOS-skriftipe خط DOS DOS yazı növü - Šryft DOS + Šryft DOS Шрифт — DOS lletra DOS font pro DOS @@ -10879,17 +11327,18 @@ DOS-skrifttype DOS-Schrift Γραμματοσειρά DOS - DOS font + DOS font DOS-tiparo tipo de letra de DOS DOS letra-tipoa DOS-fontti DOS stavasnið police DOS + caratar DOS cló DOS tipo de fonte de DOS גופן DOS - DOS slovo + DOS font DOS-betűkészlet Typo de litteras DOS Fonta DOS @@ -10906,7 +11355,7 @@ poliça DOS Czcionka DOS letra DOS - Fonte do DOS + Fonte do DOS Font DOS Шрифт DOS Písmo pre DOS @@ -10914,23 +11363,24 @@ Gërmë DOS ДОС слова DOS-typsnitt - DOS fontu + DOS yazı tipi шрифт DOS Phông chữ DOS - DOS 字体 - DOS 字型 + DOS 字体 + DOS 字型 - - - + + + Adobe FrameMaker font + Adobe FrameMaker-skriftipe خط أدوبي الصانع للإطارات Adobe FrameMaker yazı növü - Šryft Adobe FrameMaker + Šryft Adobe FrameMaker Шрифт — Adobe FrameMaker lletra d'Adobe FrameMaker font Adobe FrameMaker @@ -10938,17 +11388,18 @@ Adobe FrameMaker-skrifttype Adobe-FrameMaker-Schrift Γραμματοσειρά Adobe FrameMaker - Adobe FrameMaker font + Adobe FrameMaker font Tiparo de Adobe FrameMaker tipo de letra de Adobe FrameMaker Adobe FrameMaker-en letra-tipoa Adobe FrameMaker -fontti Adobe FrameMaker stavasnið police Adobe FrameMaker + caratar Adobe FrameMaker cló Adobe FrameMaker tipo de fonte de Adobe FrameMaker גופן של Adobe FrameMaker - Adobe FrameMaker slovo + Adobe FrameMaker font Adobe FrameMaker-betűkészlet Typo de litteras pro Adobe FrameMaker Fonta Adobe FrameMaker @@ -10965,7 +11416,7 @@ poliça Adobe FrameMaker Czcionka Adobe FrameMaker letra Adobe FrameMaker - Fonte do Adobe FrameMaker + Fonte do Adobe FrameMaker Font Adobe FrameMaker Шрифт Adobe FrameMaker Písmo Adobe FrameMaker @@ -10976,18 +11427,19 @@ Adobe FrameMaker yazı tipi шрифт Adobe FrameMaker Phông chữ Adobe FrameMaker - Adobe FrameMaker 字体 - Adobe FrameMaker 字型 + Adobe FrameMaker 字体 + Adobe FrameMaker 字型 - + LIBGRX font + LIBGRX-skriftipe خط LIBGRX LIBGRX yazı növü - Šryft LIBGRX + Šryft LIBGRX Шрифт — LIBGRX lletra LIBGRX font LIBGRX @@ -10995,17 +11447,18 @@ LIBGRX-skrifttype LIBGRX-Schrift Γραμματοσειρά LIBGRX - LIBGRX font + LIBGRX font LIBGRX-tiparo tipo de letra LIBGRX LIBGRX letra-tipoa LIBGRX-fontti LIBGRX stavasnið police LIBGRX + caratar LIBGRX cló LIBGRX tipo de fonte en LIBGRX גופן LIBGRX - LIBGRX slovo + LIBGRX font LIBGRX-betűkészlet Typo de litteras LIBGRX Fonta LIBGRX @@ -11022,7 +11475,7 @@ poliça LIBGRX Czcionka LIBGRX letra LIBGRX - Fonte LIBGRX + Fonte LIBGRX Font LIBGRX Шрифт LIBGRX Písmo LIBGRX @@ -11030,21 +11483,22 @@ Lloj gërme LIBGRX ЛИБГРИкс слова LIBGRX-typsnitt - LIBGRX fontu + LIBGRX yazı tipi шрифт LIBGRX Phông chữ LIBGRX - LIBGRX 字体 - LIBGRX 字型 + LIBGRX 字体 + LIBGRX 字型 - + Linux PSF console font + Linux PSF-konsoleskriftipe خط كونسول PSF لينكس Linux PSF konsol yazı növü - Kansolny šryft PSF dla Linuksa + Kansolny šryft PSF dla Linuksa Шрифт — PSF, за конзолата на Линукс lletra de consola PSF de Linux font PSF pro konzolu Linuxu @@ -11052,17 +11506,18 @@ Linux PSF-konsolskrifttype Linux-PSF-Konsolenschrift Γραμματοσειρά κονσόλας PSF Linux - Linux PSF console font + Linux PSF console font PSF-tiparo de Linux-konzolo tipo de letra de consola Linux PSF Linux PSF kontsolako letra-tipoa Linux PSF -konsolifontti Linux PSF stýristøðs stavasnið police console Linux PSF + caratar console Linux PSF cló consóil Linux PSF tipo de fonte de consola Linux PSF גופן לקונסול מסוג Linux PSF - Linux PSF konzolno slovo + Linux PSF font konzole Linux PSF konzolos betűkészlet Typo de litteras console Linux PSF Fonta konsol Linux PSF @@ -11079,7 +11534,7 @@ poliça consòla Linux PSF Czcionka konsoli PSF Linux letra de consola Linux PSF - Fonte de console Linux PSF + Fonte de console Linux PSF Font consolă Linux PSF Консольный шрифт Linux PSF Písmo PSF pre konzolu Linuxu @@ -11087,38 +11542,40 @@ Lloj gërme për konsolë Linux PSF слова Линуксове ПСФ конзоле Linux PSF-konsoltypsnitt - Linux PSF konsol fontu + Linux PSF konsol yazı tipi консольний шрифт Linux PSF Phông chữ bàn giao tiếp PSF Linux - Linux PSF 控制台字体 - Linux PSF console 字型 + Linux PSF 控制台字体 + Linux PSF console 字型 - + Linux PSF console font (gzip-compressed) + Linux PSF-konsoleskriftipe (gzip-saamgepers) خط كونسول PSF لينكس (مضغوط-gzip) - Kansolny šryft PSF dla Linuksa (gzip-skampresavany) + Kansolny šryft PSF dla Linuksa (gzip-skampresavany) Шрифт — Linux PSF, компресиран с gzip lletra de consola PSF de Linux (amb compressió gzip) font PSF pro konzolu Linuxu (komprimace gzip) Linux PSF-konsolskrifttype (gzip-komprimeret) Linux-PSF-Konsolenschrift (gzip-komprimiert) Γραμματοσειρά κονσόλας PSF Linux (συμπιεσμένη με gzip) - Linux PSF console font (gzip-compressed) + Linux PSF console font (gzip-compressed) tipo de letra de consola Linux PSF (comprimido con gzip) Linux PSF kontsolako letra-tipoa (gzip-ekin konprimitua) Linux PSF -konsolifontti (gzip-pakattu) Linux PSF stýristøðs stavasnið (gzip-stappað) police console Linux PSF (compressée gzip) + caratar console Linux PSF (comprimût cun gzip) cló consóil Linux PSF (comhbhrúite le gzip) tipo de fonte de consola Linux PSF (comprimida con gzip) גופן למסוף מסוג Linux PSF (מכווץ ע״י gzip) - Linux PSF konzolno slovo (gzip sažeto) - Linux PSF konzolos betűkészlet (gzip-tömörítésű) + Linux PSF font konzolne (gzip komprimirano) + Linux PSF konzolos betűkészlet (gzip tömörítésű) Typo de litteras console Linux PSF (comprimite con gzip) Fonta konsol Linux PSF (terkompresi gzip) Carattere console Linux PSF (compresso con gzip) @@ -11133,7 +11590,7 @@ poliça consòla Linux PSF (compressat gzip) Czcionka konsoli PSF Linux (kompresja gzip) letra de consola Linux PSF (compressão gzip) - Fonte de console Linux PSF (compactada com gzip) + Fonte de console Linux PSF (compactada com gzip) Font consolă Linux PSF (compresie gzip) Консольный шрифт Linux PSF (сжатый gzip) Písmo PSF pre konzolu Linuxu (komprimované pomocou gzip) @@ -11141,20 +11598,21 @@ Lloj gërme për konsolë Linux PSF (komresuar me gzip) слова Линуксове ПСФ конзоле (запакована гзип-ом) Linux PSF-konsoltypsnitt (gzip-komprimerat) - Linux PSF konsol fontu (gzip ile sıkıştırılmış) + Linux PSF konsol yazı tipi (gzip ile sıkıştırılmış) консольний шрифт Linux PSF (стиснений gzip) Phông chữ bàn giao tiếp PSF Linux (đã nén gzip) - Linux PSF 控制台字体(gzip 压缩) - Linux PSF console 字型 (gzip 格式壓縮) + Linux PSF 控制台字体(gzip 压缩) + Linux PSF console 字型 (gzip 壓縮) PCF font + PCF-skriftipe خط PCF PCF yazı növü - Šryft PCF + Šryft PCF Шрифт — PCF lletra PCF font PCF @@ -11162,17 +11620,18 @@ PCF-skrifttype PCF-Schrift Γραμματοσειρά PCF - PCF font + PCF font PCF-tiparo tipo de letra PCF PCF letra-tipoa PCF-fontti PCF stavasnið police PCF + caratar PCF cló PCF tipo de letra PCF גופן PCF - PCF slovo + PCF font PCF-betűkészlet Typo de litteras PCF Fonta PCF @@ -11189,7 +11648,7 @@ poliça PCF Czcionka PCF letra PCF - Fonte PCF + Fonte PCF Font PCF Шрифт PCF Písmo PCF @@ -11197,14 +11656,14 @@ Gërma PCF ПЦФ слова PCF-typsnitt - PCF fontu + PCF yazı tipi шрифт PCF Phông chữ PCF - PCF 字体 - PCF 字型 + PCF 字体 + PCF 字型 - + @@ -11212,9 +11671,10 @@ OpenType font + OpenType-skriftipe خط OpenType OpenType yazı növü - Šryft OpenType + Šryft OpenType Шрифт — OpenType lletra OpenType font OpenType @@ -11222,17 +11682,18 @@ OpenType-skrifttype OpenType-Schrift Γραμματοσειρά OpenType - OpenType font + OpenType font OpenType-tiparo tipo de letra OpenType OpenType letra-tipoa OpenType-fontti OpenType stavasnið police OpenType + caratar OpenType cló OpenType tipo de fonte OpenType גופן של OpenType - OpenType slovo + OpenType font OpenType-betűkészlet Typo de litteras OpenType Fonta OpenType @@ -11249,7 +11710,7 @@ poliça OpenType Czcionka OpenType letra OpenType - Fonte OpenType + Fonte OpenType Font OpenType Шрифт OpenType Písmo OpenType @@ -11257,24 +11718,25 @@ Gërma OpenType слова Отворене Врсте OpenType-typsnitt - OpenType fontu + OpenType yazı tipi шрифт OpenType Phông chữ OpenType - OpenType 字体 - OpenType 字型 + OpenType 字体 + OpenType 字型 - + Speedo font + Speedo-skriftipe خط Speedo Speedo yazı növü - Šryft Speedo + Šryft Speedo Шрифт — Speedo lletra Speedo font Speedo @@ -11282,17 +11744,18 @@ Speedoskrifttype Speedo-Schrift Γραμματοσειρά Speedo - Speedo font + Speedo font Speedo-tiparo tipo de letra de Speedo Speedo letra-tipoa Speedo-fontti Speedo stavasnið police Speedo + caratar Speedo cló Speedo tipo de letra Speedo גופן של Speedo - Speedo slovo + Speedo font Speedo-betűkészlet Typo de litteras Speedo Fonta Speedo @@ -11309,7 +11772,7 @@ poliça Speedo Czcionka Speedo letra Speedo - Fonte Speedo + Fonte Speedo Font Speedo Шрифт Speedo Písmo Speedo @@ -11317,22 +11780,23 @@ Gërma Speedo Спидо слова Speedo-typsnitt - Speedo fontu + Speedo yazı tipi шрифт Speedo Phông chữ Speedo - Speedo 字体 - Speedo 字型 + Speedo 字体 + Speedo 字型 - + SunOS News font + SunOS News-skriftipe خط SunOS News SunOS News yazı növü - Šryft SunOS News + Šryft SunOS News Шрифт — SunOS News lletra News de SunOS font SunOS News @@ -11340,17 +11804,18 @@ SunOS News-skrifttype SunOS-News-Schrift Γραμματοσειρά SunOS News - SunOS News font + SunOS News font tiparo de SunOS News tipo de letra para NeWS de SunOS SunOs News letra-tipoa SunOS News -fontti SunOS News stavasnið police SunOS News + caratar SunOS News cló SunOS News tipo de letra SunOS News גופן של SunOS News - SunOS News slovo + SunOS News font SunOS News-betűkészlet Typo de litteras SunOS News Fonta SunOS News @@ -11367,7 +11832,7 @@ poliça SunOS News Czcionka SunOS News letra SunOS News - Fonte SunOS News + Fonte SunOS News Font SunOS News Шрифт SunOS News Písmo SunOS News @@ -11378,20 +11843,21 @@ SunOS News yazı tipi шрифт SunOS News Phông chữ SunOS News - SunOS News 字体 - SunOS News 字型 + SunOS News 字体 + SunOS News 字型 - - - + + + TeX font + TeX-skriftipe خط TeX TeX yazı növü - Šryft TeX + Šryft TeX Шрифт — TeX lletra TeX font TeX @@ -11399,17 +11865,18 @@ TeX-skrifttype TeX-Schrift Γραμματοσειρά TeX - TeX font + TeX font TeX-tiparo tipo de letra de TeX TeX letra-tipoa TeX-fontti TeX stavasnið police TeX + caratar TeX cló TeX tipo de letra de TeX גופן TeX - TeX slovo + TeX font TeX-betűkészlet Typo de litteras TeX Fonta TeX @@ -11426,7 +11893,7 @@ poliça TeX Czcionka TeX letra TeX - Fonte TeX + Fonte TeX Font TeX Шрифт TeX Písmo TeX @@ -11434,23 +11901,24 @@ Gërma TeX ТеКс слова TeX-typsnitt - TeX fontu + TeX yazı tipi шрифт TeX Phông chữ TeX - TeX 字体 - TeX 字型 + TeX 字体 + TeX 字型 - - - + + + TeX font metrics + TeX-skriftipeafmetings مقاييس خط TeX TeX yazı növü metrikləri - Metryka šryftu TeX + Metryka šryftu TeX Шрифтова метрика — TeX mètrica de lletra de TeX metrika fontu TeX @@ -11458,16 +11926,17 @@ TeX-skrifttypeinformation TeX-Schriftmetriken Μετρικά γραμματοσειράς TeX - TeX font metrics + TeX font metrics metrikoj de TeX-tiparo métricas tipográficas de TeX TeX letra-tipoen neurriak TeX-fonttimitat métriques de police TeX + metrichis caratar TeX meadarachtaí cló TeX Métricas de tipo de letra de TeX ממדי גופן של TeX - TeX mjere slova + Metrika TeX fonta TeX-betűmetrika Metricas de typo de litteras TeX Fonta metrik TeX @@ -11484,7 +11953,7 @@ metricas de poliça TeX Metryki czcionki TeX métricas de letra TeX - Métrica de fonte TeX + Métrica de fonte TeX Dimensiuni font TeX Метрика шрифта TeX Metrika písma TeX @@ -11495,35 +11964,37 @@ TeX yazı tipi ölçüleri метрики шрифту TeX Cách đo phông chữ TeX - TeX 字体规格 - TeX 字型描述檔 + TeX 字体规格 + TeX 字型描述檔 - - + + TrueType font + TrueType-skriftipe خط TrueType - Šryft TrueType + Šryft TrueType Шрифт — TrueType lletra TrueType font TrueType TrueType-skrifttype TrueType-Schrift Γραμματοσειρά TrueType - TrueType font + TrueType font TrueType-tiparo tipo de letra TrueType TrueType letra-tipoa TrueType-fontti TrueType stavasnið police Truetype + caratar TrueType cló TrueType tipo de letra TrueType גופן מסוג TrueType - TrueType slovo + TrueType font TrueType-betűkészlet Typo de litteras TrueType Fonta TrueType @@ -11540,7 +12011,7 @@ poliça Truetype Czcionka TrueType letra TrueType - Fonte TrueType + Fonte TrueType Font TrueType Шрифт TrueType Písmo TrueType @@ -11548,65 +12019,77 @@ Lloj gërme TrueType Трутајп слова Truetype-typsnitt - TrueType fontu + TrueType yazı tipi шрифт TrueType Phông chữ TrueType - TrueType 字体 - TrueType 字型 + TrueType 字体 + TrueType 字型 - - - + + + Font collection + Skriftipeversameling + Шрифтова колекция ccol·lecció de lletres kolekce fontů + Skrifttypesamling Schriftsammlung - Font collection + Font collection colección tipográfica + Letra-tipo bilduma Fonttikokoelma - Kolekcija slova + Collection de polices + colezion di caratars + bailiúchán clónna + Zbirka fontova Betűkészlet-gyűjtemény Koleksi fonta Raccolta di caratteri Қаріптер жинағы 글꼴 모음 Kolekcja czcionek - coleção de fontes + coleção de letras + coleção de fontes Коллекция шрифтов Zbierka písiem + Zbirka pisav Typsnittssamling + Yazı tipi derlemi збірка шрифтів - 字体集 - 字型集 + 字体集 + 字型集 TrueType XML font + TrueType XML-skriftipe خط TrueType XML - Šryft TrueType XML + Šryft TrueType XML Шрифт — TrueType XML lletra XML de TrueType font TrueType XML TrueType XML-skrifttype TrueType-XML-Schrift Γραμματοσειρά XML TrueType - TrueType XML font + TrueType XML font tipo de letra TrueType XML TrueType XML letra-tipoa TrueType-XML-fontti TrueType XML stavasnið police Truetype XML + caratar TrueType XML cló XML TrueType tipo de letra TrueType XML גופן XML מסוג TrueType - TrueType XML slovo + TrueType XML font TrueType XML betűkészlet Typo de litteras TrueType XML Fonta TrueType XML @@ -11622,7 +12105,7 @@ poliça Truetype XML Czcionka TrueType XML letra TrueType XML - Fonte TrueType XML + Fonte TrueType XML Font XML TrueType Шрифт TrueType XML Písmo TrueType XML @@ -11630,23 +12113,24 @@ Lloj gërme TrueType XML Трутајп ИксМЛ слова Truetype XML-typsnitt - TrueType XML fontu + TrueType XML yazı tipi шрифт TrueType XML Phông chữ XML TrueType - TrueType XML 字体 - TrueType XML 字型 + TrueType XML 字体 + TrueType XML 字型 - + V font + V-skriftipe خط V V yazı növü - Šryft V + Šryft V Шрифт — V lletra V font V @@ -11654,17 +12138,18 @@ V-skrifttype V-Schrift Γραμματοσειρά V - V font + V font V-tiparo tipo de letra V V letra-tipoa V-fontti V stavasnið police V + caratar V cló V tipo de letra V גופן של V - V slovo + V font V-betűkészlet Typo de litteras V Fonta V @@ -11681,7 +12166,7 @@ poliça V Czcionka V letra V - Fonte V + Fonte V Font V Шрифт V font Písmo V @@ -11689,34 +12174,36 @@ Gërmë V В слова V-typsnitt - V fontu + V yazı tipi V-шрифт Phông chữ V - V 字体 - V 字型 + V 字体 + V 字型 - + Adobe FrameMaker document + Adobe FrameMaker-dokument مستند أدوبي الصانع للإطارات Documentu d'Adobe FrameMaker - Dakument Adobe FrameMaker + Dakument Adobe FrameMaker Документ — Adobe FrameMaker document d'Adobe FrameMaker dokument Adobe FrameMaker Adobe FrameMaker-dokument Adobe-FrameMaker-Dokument Έγγραφο Adobe FrameMaker - Adobe FrameMaker document + Adobe FrameMaker document Dokumento de Adobe FrameMaker documento de Adobe FrameMaker Adobe FrameMaker-en dokumentua Adobe FrameMaker -asiakirja Adobe FrameMaker skjal document Adobe FrameMaker + document Adobe FrameMaker cáipéis Adobe FrameMaker documento de Adobe FrameMaker מסמך Adobe FrameMaker @@ -11737,7 +12224,7 @@ document Adobe FrameMaker Dokument Adobe FrameMaker documento Adobe FrameMaker - Documento do Adobe FrameMaker + Documento do Adobe FrameMaker Document Adobe FrameMaker Документ Adobe FrameMaker Dokument Adobe FrameMaker @@ -11748,17 +12235,17 @@ Adobe FrameMaker belgesi документ Adobe FrameMaker Tài liệu Adobe FrameMaker - Adobe FrameMaker 文档 - Adobe FrameMaker 文件 + Adobe FrameMaker 文档 + Adobe FrameMaker 文件 - - - - - - - + + + + + + + @@ -11766,20 +12253,21 @@ Game Boy ROM Game Boy ROM - Game Boy ROM + Game Boy ROM ROM — Game Boy ROM de Game Boy ROM pro Game Boy - Game Boy-rom + Game Boy-ROM Game Boy ROM Game Boy ROM - Game Boy ROM + Game Boy ROM NLM de Game Boy ROM de Game Boy Game Boy-eko ROMa Game Boy -ROM Game Boy ROM ROM Game Boy + ROM Game Boy ROM Game Boy ROM de Game Boy ROM של Game Boy @@ -11801,7 +12289,7 @@ ROM Game Boy Plik ROM konsoli Game Boy ROM Game Boy - ROM de Game Boy + ROM de Game Boy ROM Game Boy Game Boy ROM ROM pre Game Boy @@ -11812,12 +12300,12 @@ Game Boy ROM ППП Game Boy ROM Game Boy - Game Boy ROM - Game Boy ROM + Game Boy ROM + Game Boy ROM - - + + @@ -11825,15 +12313,17 @@ Game Boy Color ROM + ROM — Game Boy Color ROM de Game Boy Color ROM pro Game Boy Color - Game Boy Color ROM + Game Boy Color-ROM Game Boy Color ROM - Game Boy Colour ROM + Game Boy Colour ROM ROM de Game Boy Color Game Boy Color ROM Game Boy Color -ROM ROM Game Boy Color + ROM Game Boy Color ROM Game Boy Color ROM של Game Boy Color Game Boy Color ROM @@ -11843,19 +12333,19 @@ Game Boy Color ROM 게임보이 컬러 롬 Plik ROM konsoli Game Boy Color - ROM de Game Boy Color + ROM de Game Boy Color Game Boy Color ROM ROM pre Game Boy Color Гејм Бој РОМ боје Game Boy Color-rom Game Boy Color ROM ППП Game Boy Color - Game Boy Color ROM - Game Boy Color ROM + Game Boy Color ROM + Game Boy Color ROM - - + + @@ -11864,19 +12354,20 @@ Game Boy Advance ROM Game Boy Advance ROM - Game Boy Advance ROM + Game Boy Advance ROM ROM — Game Boy Advance ROM de Game Boy Advance ROM pro Game Boy Advance - Game Boy Advance-rom + Game Boy Advance-ROM Game Boy Advance ROM Game Boy Advance ROM - Game Boy Advance ROM + Game Boy Advance ROM ROM de Game Boy Advance Game Boy Advance-ko ROMa Game Boy Advance -ROM Game Boy Advance ROM ROM Game Boy Advance + ROM Game Boy Advance ROM Game Boy Advance ROM de Game Boy Advance ROM של Game Boy Advance @@ -11897,7 +12388,7 @@ ROM Game Boy Advance Plik ROM konsoli Game Boy Advance ROM Game Boy Advance - ROM de Game Boy Advance + ROM de Game Boy Advance ROM Game Boy Advance Game Boy Advance ROM ROM pre Game Boy Advance @@ -11908,19 +12399,26 @@ Game Boy Gelişmiş ROM розширений ППП Game Boy ROM Game Boy Advance - Game Boy Advance ROM - Game Boy Advance ROM + Game Boy Advance ROM + Game Boy Advance ROM Virtual Boy ROM + ROM — Virtual Boy ROM de Virtual Boy ROM pro Virtual Boy + Virtual Boy-ROM Virtual Boy ROM - Virtual Boy ROM + Virtual Boy ROM ROM de Virtual Boy + Virtual Boy ROM + Virtual Boy ROM + ROM Virtual Boy + ROM Virtual Boy + ROM Virtual Boy Virtual Boy ROM Virtual Boy ROM ROM Virtual Boy @@ -11928,33 +12426,36 @@ Virtual Boy ROM 버추얼보이 롬 Plik ROM konsoli Virtual Boy - ROM de Virtual Boy + ROM de Virtual Boy Virtual Boy ROM ROM pre Virtual Boy Virtual Boy-rom + Virtual Boy ROM ROM Virtual Boy - Virtual Boy ROM - Virtual Boy ROM + Virtual Boy ROM + Virtual Boy ROM GDBM database + GDBM-databasis قاعدة بيانات GDBM - Baza źviestak GDBM + Baza źviestak GDBM База от данни — GDBM base de dades GDBM databáze GDBM GDBM-database GDBM-Datenbank Βάση δεδομένων GDBM - GDBM database + GDBM database GDBM-datumbazo base de datos GDBM GDBM datu-basea GDBM-tietokanta GDBM dátustovnur base de données GDBM + base di dâts GDBM bunachar sonraí GDBM base de datos GDBM מסד נתונים GDBM @@ -11975,7 +12476,7 @@ banca de donadas GDBM Baza danych GDBM base de dados GDMB - Banco de dados GDBM + Banco de dados GDBM Bază de date GDBM База данных GDBM Databáza GDBM @@ -11983,37 +12484,39 @@ Bazë me të dhëna GDBM ГДБМ база података GDBM-databas - GDBM veritabanı + GDBM veri tabanı база даних GDBM Cơ sở dữ liệu GDBM - GDBM 数据库 - GDBM 資料庫 + GDBM 数据库 + GDBM 資料庫 GDBM GNU Database Manager - - - + + + - + Genesis ROM Genesis ROM - Genesis ROM + Genesis ROM ROM — Genesis ROM de Genesis ROM pro Genesis - Genesis-rom + Genesis-ROM Genesis ROM Genesis ROM - Genesis ROM + Genesis ROM Genesis-NLM ROM de Genesis (Mega Drive) Genesis-eko ROMa Genesis-ROM Genesis ROM ROM Mega Drive/Genesis + ROM Sega Mega Drive ROM Genesis ROM xenérica ROM מסוג Genesis @@ -12034,7 +12537,7 @@ ROM Mega Drive/Genesis Plik ROM konsoli Mega Drive ROM Mega Drive - ROM de Genesis (Mega Drive) + ROM de Genesis (Mega Drive) ROM Genesis Genesis ROM ROM pre Megadrive @@ -12045,30 +12548,35 @@ Genesis ROM ППП Genesis ROM Genesis - Genesis ROM - Genesis ROM + Genesis ROM + Genesis ROM - - - - + + + + + + - + Genesis 32X ROM + ROM — Genesis 32X ROM de Genesis 32X ROM pro Genesis 32X - Genesis 32X ROM + Genesis 32X-ROM Genesis 32X ROM - Genesis 32X ROM + Genesis 32X ROM ROM de Genesis 32X Genesis 32X ROM Genesis 32X -ROM ROM Genesis 32X + ROM Sega Mega Drive 32X ROM Genesis 32X ROM מסוג Genesis 32X Genesis 32X ROM @@ -12078,39 +12586,41 @@ Genesis 32X ROM 제네시스 32X 롬 Plik ROM konsoli Mega Drive 32X - ROM de Genesis 32X + ROM de Genesis 32X Genesis 32X ROM ROM pre Genesis 32X Џенезис 32X РОМ Mega Drive 32X-rom Genesis 32X ROM ППП Genesis 32X - Genesis 32X ROM - Genesis 32X ROM + Genesis 32X ROM + Genesis 32X ROM - + translated messages (machine-readable) + vertaalde boodskappe (masjienleesbaar) رسائل مترجمة (مقروءة آليا) - pierakładzienyja paviedamleńni (dla čytańnia kamputaram) + pierakładzienyja paviedamleńni (dla čytańnia kamputaram) Преведени съобщения — машинен формат missatges traduïts (llegible per màquina) přeložené zprávy (strojově čitelné) oversatte meddelelser (maskinlæsbare) Übersetzte Meldungen (maschinenlesbar) Μεταφρασμένα μηνύματα (για μηχανική ανάγνωση) - translated messages (machine-readable) + translated messages (machine-readable) tradukitaj mesaĝoj (maŝinlegebla) mensajes traducidos (legibles por máquinas) itzulitako mezuak (ordenagailuek irakurtzeko) käännetyt viestit (koneluettava) týdd boð (maskin-lesifør) messages traduits (lisibles par machine) + messaçs tradots (leibii de machine) teachtaireachtaí aistrithe (inléite ag meaisín) mensaxes traducidos (lexíbeis por máquinas) הודעות מתורגמות (מובן ע״י מכונה) @@ -12132,7 +12642,7 @@ messatges tradusits (legibles per maquina) Przetłumaczone komunikaty (czytelne dla komputera) mensagens traduzidas (leitura pelo computador) - Mensagens traduzidas (legível pelo computador) + Mensagens traduzidas (legível pelo computador) mesaje traduse (citite de calculator) Переводы сообщений (откомпилированые) Preložené správy (strojovo čitateľné) @@ -12143,64 +12653,53 @@ çevrilmiş iletiler (makine tarafından okunabilir) перекладені повідомлення (у машинній формі) thông điệp đã dịch (máy đọc được) - 已翻译消息(机读) - 翻譯訊息 (程式讀取格式) + 已翻译消息(机读) + 翻譯訊息 (程式讀取格式) - - + + - GTK+ Builder - constructor de GTK+ - GTK+ Builder - GTK+ Builder - GTK+ Builder - Δομητής GTK+ - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - Tógálaí GTK+ - Construtor de GTK+ - בנייה של GTK+‎ - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ 빌더 - GTK+ būvētājs - GTK+ Builder - GTK+ Builder - Construtor GTK+ - GTK+ Builder - GTK+ Builder - GTK+ Builder - GTK+ Builder - ГТК+ Градитељ - GTK+ Builder - GTK+ İnşa Edici - GTK+ Builder - GTK+ Builder - GTK+ Builder + GTK+ Builder interface document + Интерфейс — GTK+ Builder + document d'interfície GTK+ Builder + GTK+ Builder-brugerflade-dokument + GTK+-Builder-Oberflächendokument + GTK+ Builder interface document + documento de interfaz de GTK Builder + GTK+ Builder interfaze dokumentua + GTK+ Builder -käyttöliittymän asiakirja + document d'interface GTK+ Builder + GTK+ Graditelj dokument sučelja + GTK+ Builder felületleíró dokumentum + Dokumen antarmuka GTK+ Builder + Documento interfaccia GTK+ Builder + GTK+ Builder интерфейс құжаты + GTK+ 빌더 인터페이스 문서 + Dokument interfejsu GTK Builder + Documento de interface do GTK+ Builder + Документ интерфейса GTK+ Builder + GTK+-Builder-gränssnittsdokument + GTK+ Builder arayüz belgesi + документ інтерфейсу GTK+ Builder + GTK+ Builder 界面文档 + GTK+ Builder 介面文件 - + Glade project + Glade-projek مشروع Glade Glade layihəsi - Prajekt Glade + Prajekt Glade Проект — Glade projecte de Glade projekt Glade @@ -12208,13 +12707,14 @@ Gladeprojekt Glade-Projekt Έργο Glade - Glade project + Glade project Glade-projekto proyecto de Glade Glade proiektua Glade-projekti Glade verkætlan projet Glade + progjet Glade tionscadal Glade proxecto de Glade מיזם Glade @@ -12235,7 +12735,7 @@ projècte Glade Projekt Glade projecto Glade - Projeto do Glade + Projeto do Glade Proiect Glade Проект Glade Projekt Glade @@ -12244,19 +12744,20 @@ Глејдов пројекат Glade-projekt Glade projesi - проект Glade + проєкт Glade Dự án Glade - Glade 工程 - Glade 專案 + Glade 工程 + Glade 專案 - + GnuCash financial data + GnuCash finansiële data معلومات GnuCash المالية Финансови данни — GnuCash dades financeres de GnuCash @@ -12264,12 +12765,13 @@ Finansielle data til GnuCash GnuCash-Finanzdaten Οικονομικά στοιχεία GnuCash - GnuCash financial data + GnuCash financial data datos financieros de GnuCash GnuCash finantzako datuak GnuCash-taloustiedot GnuCash fíggjarligar dátur données financières GnuCash + dâts finanziaris GnuCash sonraí airgeadúla GnuCash datos financeiros de GNUCash מידע כלכלי של GnuCash @@ -12287,7 +12789,7 @@ donadas financières GnuCash Dane finansowe GnuCash dados financeiros GnuCash - Dados financeiros do GnuCash + Dados financeiros do GnuCash Date financiare GnuCash Финансовые данные GnuCash Finančné údaje GnuCash @@ -12297,8 +12799,8 @@ GnuCash mali verisi фінансові дані GnuCash Dữ liệu tài chính GnuCash - GnuCash 财务数据 - GnuCash 財務資料 + GnuCash 财务数据 + GnuCash 財務資料 @@ -12306,21 +12808,23 @@ Gnumeric spreadsheet + Gnumeric-sigblad جدول Gnumeric - Raźlikovy arkuš Gnumeric + Raźlikovy arkuš Gnumeric Таблица — Gnumeric full de càlcul de Gnumeric sešit Gnumeric Gnumeric-regneark Gnumeric-Tabelle Λογιστικό φύλλο Gnumeric - Gnumeric spreadsheet + Gnumeric spreadsheet Gnumeric-kalkultabelo hoja de cálculo de Gnumeric Gnumeric kalkulu-orria Gnumeric-taulukko Gnumeric rokniark feuille de calcul Gnumeric + sfuei di calcul Gnumeric scarbhileog Gnumeric folla de cálculo de Gnumeric גליון עבודה Gnumeric @@ -12341,7 +12845,7 @@ fuèlh de calcul Gnumeric Arkusz Gnumeric folha de cálculo Gnumeric - Planilha do Gnumeric + Planilha do Gnumeric Foaie de calcul Gnumeric Электронная таблица Gnumeric Zošit Gnumeric @@ -12349,36 +12853,38 @@ Fletë llogaritjesh Gnumeric табела Гномовог бројевника Gnumeric-kalkylblad - Gnumeric çalışma sayfası + Gnumeric hesap çizelgesi ел. таблиця Gnumeric Bảng tính Gnumeric. - Gnumeric 电子表格 - Gnumeric 試算表 + Gnumeric 电子表格 + Gnumeric 試算表 - - + + Gnuplot document + Gnuplot-dokument مستند Gnuplot Documentu de Gnuplot - Dakument Gnuplot + Dakument Gnuplot Документ — Gnuplot document gnuplot dokument Gnuplot - Gnuplotdokument + Gnuplot-dokument Gnuplot-Dokument Έγγραφο Gnuplot - Gnuplot document + Gnuplot document Gnuplot-dokumento documento de Gnuplot Gnuplot dokumentua Gnuplot-asiakirja Gnuplot skjal document Gnuplot + document Gnuplot cáipéis Gnuplot documento de Gnuplot מסמך Gnuplot @@ -12398,7 +12904,7 @@ document Gnuplot Dokument Gnuplot documento Gnuplot - Documento do Gnuplot + Documento do Gnuplot Document Gnuplot Документ Gnuplot Dokument Gnuplot @@ -12409,8 +12915,8 @@ Gnuplot belgesi документ Gnuplot Tài liệu Gnuplot - Gnuplot 文档 - Gnuplot 文件 + Gnuplot 文档 + Gnuplot 文件 @@ -12420,20 +12926,21 @@ Graphite scientific graph مبيان الجرافيت العلمي - Navukovy hrafik Graphite + Navukovy hrafik Graphite Графика — Graphite gràfic científic Graphite vědecký graf Graphite Graphite videnskabelig graf Wissenschaftlicher Graphite-Graph Επιστημονικό γράφημα Graphite - Graphite scientific graph + Graphite scientific graph scienca grafikaĵo de Graphite gráfico científico de Graphite Graphite - grafiko zientifikoak Graphite- tieteellinen graafi Grapite vísindarlig ritmynd graphe Graphite scientific + grafic sientific Graphite graf eolaíochta Graphite gráfica científica de Graphite תרשים מדעי של Graphite @@ -12454,7 +12961,7 @@ graphe Graphite scientific Wykres naukowy Graphite gráfico científico Graphite - Gráfico científico do Graphite + Gráfico científico do Graphite Grafic științific Graphite Научная диаграмма Graphite Vedecký graf Graphite @@ -12465,28 +12972,29 @@ Graphite bilimsel grafiği наукова графіка Graphite Biểu đồ khoa học Graphite - Graphite 科学图形 - Graphite 科學圖表 + Graphite 科学图形 + Graphite 科學圖表 GTKtalog catalog كتالوج GTKtalog - Kataloh GTKtalog + Kataloh GTKtalog Каталог — Gtktalog catàleg de GTKtalog katalog GTKtalog GTKtalog-katalog GTKtalog-Katalog Κατάλογος GTKtalog - GTKtalog catalogue + GTKtalog catalogue katalogo de GTKtalog catálogo de GTKtalog Gtktalog katalogoa GTKtalog-luettelo GTKtalog skrá catalogue Gtktalog + catalic GTKtalog catalóg GTKtalog catálogo de GTKtalog קטלוג GTKtalog @@ -12508,7 +13016,7 @@ catalòg Gtktalog Katalog programu GTKtalog catálogo GTKtalog - Catálogo GTKtalog + Catálogo GTKtalog Catalog GTKalog Каталог GTKtalog Katalóg GTKtalog @@ -12516,38 +13024,40 @@ Katallog GTKtalog каталог ГТКталога GTKtalog-katalog - Gtktalog kataloğu + GTKtalog kataloğu каталог GTKtalog Phân loại GTKtalog - GTKtalog 目录 - GTKtalog 光碟目錄 + GTKtalog 目录 + GTKtalog 光碟目錄 - + TeX DVI document (gzip-compressed) + TeX DVI-dokument (gzip-saamgepers) مستند TeX DVI (مضغوط-gzip) Documentu Tex DVI (comprimíu en gzip) - Dakument TeX DVI (gzip-skampresavany) + Dakument TeX DVI (gzip-skampresavany) Документ — TeX DVI, компресиран с gzip document DVI de TeX (amb compressió gzip) dokument TeX DVI (komprimovaný pomocí gzip) TeX DVI-dokument (gzip-komprimeret) TeX-DVI-Dokument (gzip-komprimiert) Έγγραφο TeX DVI (συμπιεσμένο με gzip) - TeX DVI document (gzip-compressed) + TeX DVI document (gzip-compressed) documento DVI de TeX (comprimido con gzip) TeX DVI dokumentua (gzip-ekin konprimitua) TeX DVI -asiakirja (gzip-pakattu) TeX DVI skjal (gzip-stappað) document DVI TeX (compressé gzip) + document DVI TeX (comprimût cun gzip) cáipéis DVI TeX (comhbhrúite le gzip) documento DVI de TeX (comprimido con gzip) מסמך מסוג TeX DVI (מכווץ ע״י gzip) TeX DVI dokument (gzip sažet) - TeX DVI dokumentum (gzip-pel tömörítve) + TeX DVI dokumentum (gzip tömörítésű) Documento TeX DVI (comprimite con gzip) Dokumen TeX DVI (terkompresi gzip) Documento Tex DVI (compresso con gzip) @@ -12562,7 +13072,7 @@ document DVI TeX (compressat gzip) Dokument TeX DVI (kompresja gzip) documento TeX DVI (compressão gzip) - Documento DVI TeX (compactado com gzip) + Documento DVI TeX (compactado com gzip) Document TeX DVI (comprimat gzip) Документ TeX DVI (сжатый gzip) Dokument TeX DVI (komprimovaný pomocou gzip) @@ -12573,29 +13083,31 @@ TeX DVI belgesi (gzip ile sıkıştırılmış) документ TeX DVI (стиснений gzip) Tài liệu DVI TeX (đã nén gzip) - TeX DVI 文档(gzip 压缩) - TeX DVI 文件 (gzip 格式壓縮) + TeX DVI 文档(gzip 压缩) + TeX DVI 文件 (gzip 壓縮) Gzip archive + Gzip-argief أرشيف Gzip - Archiŭ gzip + Archiŭ gzip Архив — gzip arxiu gzip archiv gzip Gzip-arkiv Gzip-Archiv Συμπιεσμένο αρχείο Gzip - Gzip archive + Gzip archive Gzip-arkivo archivador Gzip Gzip artxiboa Gzip-arkisto Gzip skjalasavn archive gzip + archivi Gzip cartlann Gzip arquivo Gzip ארכיון Gzip @@ -12615,10 +13127,10 @@ archiu gzip Archiwum gzip arquivo Gzip - Pacote Gzip + Pacote Gzip Arhivă Gzip Архив GZIP - Archív gzip + Archív Gzip Datoteka arhiva Gzip Arkiv gzip Гзип архива @@ -12626,37 +13138,39 @@ Gzip arşivi архів gzip Kho nén gzip - Gzip 归档文件 - Gzip 封存檔 + Gzip 归档文件 + Gzip 封存檔 - + PDF document (gzip-compressed) + PDF-dokument (gzip-saamgepers) مستند PDF (مضغوط-gzip) Documentu PDF (comprimíu en gzip) - Dakument PDF (gzip-skampresavany) + Dakument PDF (gzip-skampresavany) Документ — PDF, компресиран с gzip document PDF (amb compressió gzip) dokument PDF (komprimovaný pomocí gzip) PDF-dokument (gzip-komprimeret) PDF-Dokument (gzip-komprimiert) Έγγραφο PDF (συμπιεσμένο με gzip) - PDF document (gzip-compressed) + PDF document (gzip-compressed) documento PDF (comprimido con gzip) PDF dokumentua (gzip-ekin konprimitua) PDF-asiakirja (gzip-pakattu) PDF skjal (gzip-stappað) document PDF (compressé gzip) + document PDF (comprimût cun gzip) cáipéis PDF (comhbhrúite le gzip) documento PDF (comprimido en gzip) מסמך PDF (מכווץ ע״י gzip) PDF dokument (gzip sažet) - PDF dokumentum (gzip-tömörítésű) + PDF dokumentum (gzip tömörítésű) Documento PDF (comprimite con gzip) Dokumen PDF (terkompresi gzip) Documento PDF (compresso con gzip) @@ -12671,7 +13185,7 @@ document PDF (compressat gzip) Dokument PDF (kompresja gzip) documento PDF (compressão gzip) - Documento PDF (compactado com gzip) + Documento PDF (compactado com gzip) Document PDF (comprimat gzip) Документ PDF (сжатый gzip) Dokument PDF (komprimovaný pomocou gzip) @@ -12682,35 +13196,37 @@ PDF belgesi (gzip ile sıkıştırılmış) документ PDF (стиснений gzip) Tài liệu PDF (đã nén gzip) - PDF 文档(gzip 压缩) - PDF 文件 (gzip 格式壓縮) + PDF 文档(gzip 压缩) + PDF 文件 (gzip 壓縮) PostScript document (gzip-compressed) + PostScript-dokument (gzip-saamgepers) مستند PostScript (مضغوط-gzip) Documentu PostScript (comprimíu en gzip) - Dakument PostScript (gzip-skampresavany) + Dakument PostScript (gzip-skampresavany) Документ — PostScript, компресиран с gzip document PostScript (amb compressió gzip) dokument PostScript (komprimovaný pomocí gzip) PostScript-dokument (gzip-komprimeret) PostScript-Dokument (gzip-komprimiert) Έγγραφο PostScript (συμπιεσμένο με gzip) - PostScript document (gzip-compressed) + PostScript document (gzip-compressed) PostScript-dokumento (kunpremita per gzip) documento PostScript (comprimido con gzip) PostScript dokumentua (gzip-konprimitua) PostScript-asiakirja (gzip-pakattu) PostScript skjal (gzip-stappað) document PostScript (compressé gzip) + document PostScript (comprimût cun gzip) cáipéis PostScript (comhbhrúite le gzip) documento PostScript (comprimido con gzip) מסמך PostScript (מכוות ע״י gzip) PostScript dokument (gzip sažet) - PostScript-dokumentum (gzip-pel tömörítve) + PostScript-dokumentum (gzip tömörítésű) Documento PostScript (comprimite con gzip) Dokumen PostScript (terkompresi gzip) Documento PostScript (compresso con gzip) @@ -12724,9 +13240,9 @@ PostScript-document (ingepakt met gzip) PostScript-dokument (pakka med gzip) document PostEscript (compressat gzip) - Dokument Postscript (kompresja gzip) + Dokument PostScript (kompresja gzip) documento PostScript (compressão gzip) - Documento PostScript (compactado com gzip) + Documento PostScript (compactado com gzip) Document PostScript (comprimat gzip) Документ PostScript (сжатый gzip) Dokument PostScript (komprimovaný pomocou gzip) @@ -12737,18 +13253,19 @@ PostScript belgesi (gzip ile sıkıştırılmış) документ PostScript (стиснене gzip) Tài liệu PostScript (đã nén gzip) - PostScript 文档(gzip 压缩) - PostScript 文件 (gzip 格式壓縮) + PostScript 文档(gzip 压缩) + PostScript 文件 (gzip 壓縮) HDF document + HDF-dokument مستند HDF Documentu HDF HDF sənədi - Dakument HDF + Dakument HDF Документ — HDF document HDF dokument HDF @@ -12756,13 +13273,14 @@ HDF-dokument HDF-Dokument Έγγραφο HDF - HDF document + HDF document HDF-dokumento documento HDF HDF dokumentua HDF-asiakirja HDF skjal document HDF + document HDF cáipéis HDF documento HDF מסמך HDF @@ -12783,7 +13301,7 @@ document HDF Dokument HDF documento HDF - Documento HDF + Documento HDF Document HDF Документ HDF Dokument HDF @@ -12794,14 +13312,14 @@ HDF belgesi документ HDF Tài liệu HDF - HDF 文档 - HDF 文件 + HDF 文档 + HDF 文件 HDF Hierarchical Data Format - - + + @@ -12811,16 +13329,19 @@ IFF file + IFF-lêer + Пакет — IFF fitxer IFF soubor IFF IFF-fil IFF-Datei Αρχείο IFF - IFF file + IFF file archivo IFF IFF fitxtegia IFF-tiedosto fichier IFF + file IFF comhad IFF Ficheiro IFF קובץ IFF @@ -12836,7 +13357,7 @@ fichièr IFF Plik IFF ficheiro IFF - Arquivo IFF + Arquivo IFF Файл IFF Súbor IFF Datoteka IFF @@ -12844,31 +13365,32 @@ IFF-fil IFF dosyası файл IFF - IFF 文件 - IFF 檔案 + IFF 文件 + IFF 檔案 IFF Interchange File Format - + iPod firmware برنامج عتاد الـiPod - Firmware iPod - Фърмуер за iPod + Firmware iPod + Фърмуер — iPod microprogramari d'iPod firmware iPod iPod-styreprogram iPod-Firmware Υλικολογισμικό iPod - iPod firmware + iPod firmware iPod-mikroprogramaro firmware de iPod iPod firmwarea iPod-laiteohjelmisto iPod fastbúnaður firmware iPod + firmware iPod dochtearraí iPod firmware de iPod קושחת ipod @@ -12889,7 +13411,7 @@ firmware iPod Oprogramowanie wewnętrzne iPod firmware iPod - Firmware do iPod + Firmware do iPod Firmware iPod Микропрограмма iPod Firmware iPod @@ -12897,32 +13419,34 @@ Firmware iPod ајПод-ов уграђени fast iPod-program - iPod üretici yazılımı + iPod donanım yazılımı мікропрограма iPod phần vững iPod - iPod 固件 - iPod 韌體 + iPod 固件 + iPod 韌體 - + Java archive + Java-argief أرشيف Java - Archiŭ Java + Archiŭ Java Архив — Java arxiu de Java archiv Java - Javaarkiv + Java-arkiv Java-Archiv Συμπιεσμένο αρχείο Java - Java archive + Java archive Java-arkivo archivador Java Java artxiboa Java-arkisto Java skjalasavn archive Java + archivi Java cartlann Java arquivo Java ארכיון Java @@ -12943,7 +13467,7 @@ archiu Java Archiwum Java arquivo Java - Pacote Java + Pacote Java Arhivă Java Архив Java Archív Java @@ -12954,8 +13478,8 @@ Java arşivi архів Java Kho nén Java - Java 归档文件 - Java 封存檔 + Java 归档文件 + Java 封存檔 @@ -12964,21 +13488,23 @@ Java class + Java-klas صنف java - Klasa Java - Клас на Java + Klasa Java + Клас — Java classe de Java třída Java - Javaklasse + Java-klasse Java-Klasse Κλάση Java - Java class + Java class Java-klaso clase de Java Java-ko klasea Java-luokka Java flokkur classe Java + classe Java aicme Java clase de Java מחלקת Java @@ -12999,7 +13525,7 @@ classa Java Klasa Java classe Java - Classe Java + Classe Java Clasă Java Класс Java Trieda Java @@ -13010,10 +13536,10 @@ Java sınıfı клас Java Hạng Java - Java 类 - Java class + Java 类 + Java class - + @@ -13022,23 +13548,90 @@ + + Groovy source code + Изходен код — Groovy + codi font en Groovy + Groovy-kildekode + Groovy-Quelltext + Groovy source code + código fuente en Groovy + Groovy iturburu-kodea + Groovy-lähdekoodi + code source Groovy + Groovy izvorni kôd + Groovy forráskód + Kode sumber Groovy + Codice sorgente Groovy + Groovy бастапқы коды + 그루비 소스 코드 + Kod źródłowy Groovy + Código-fonte Groovy + Исходный код Groovy + Groovy-källkod + Groovy kaynak kodu + вихідний код мовою Groovy + Groovy 源代码 + Groovy 原始碼 + + + + + + + + + Gradle scripts + Gradle-skrippe + Скрипт — Gradle + scripts Gradle + skript Gradle + Gradle-programmer + Gradle-Skripte + Gradle scripts + secuencias de órdenes de Gradle + Gradle script-ak + Gradle scriptit + scripts Gradle + script Gradle + scripteanna Gradle + Gradle skripta + Gradle-parancsfájl + Skrip Gradle + Script Gradle + Gradle сценарийлері + Gradle 스크립트 + Skrypty Gradle + Scripts Gradle + Скрипты Gradle + Skripty Gradle + Gradle-skript + Gradle betikleri + скрипти Gradle + Gradle 脚本 + Gradle 指令稿 + + + JNLP file + JNLP-lêer ملف JNLP - Fajł JNLP - Файл — JNLP + Fajł JNLP + Стартер — JNLP fitxer JNLP soubor JNLP JNPL-fil JNLP-Datei Αρχείο JNLP - JNLP file + JNLP file JNLP-dosiero archivo JNPL JNLP fitxategia JNLP-tiedosto JNLP fíla fichier JNLP + file JNLP comhad JNLP ficheiro JNLP קובץ JNLP @@ -13058,7 +13651,7 @@ fichièr JNLP Plik JNLP ficheiro JNLP - Arquivo JNLP + Arquivo JNLP Fișier JNLP Файл JNLP Súbor JNLP @@ -13069,15 +13662,15 @@ JNLP dosyası файл JNLP Tập tin JNLP - JNLP 文件 - JNLP 檔案 + JNLP 文件 + JNLP 檔案 JNLP Java Network Launching Protocol - + @@ -13086,15 +13679,16 @@ Ключодържател — Java magatzem de claus de Java úložiště klíčů Java - Javanøglelager + Java-nøglelager Java-Schlüsselbund Χώρος αποθήκευσης κλειδιών Java - Java keystore + Java keystore almacén de claves de Java Java-ren gako-biltegia Java-avainvarasto Java lyklagoymsla stockage de clés Java + archivi di clâfs Java eochairstór Java almacén de chaves de Java אחסון מפתחות של Java @@ -13112,19 +13706,19 @@ emmagazinatge de claus Java Baza kluczy Java armazém de chaves Java - Keystore de Java + Keystore de Java Stocare chei Java Хранилище ключей Java Úložisko kľúčov Java Datoteka tipkovne razporeditve Java смештај кључа Јаве Java-nyckellager - Java deposu + Java anahtar deposu сховище ключів Java - Java 密钥库 - Java 金鑰儲存 + Java 密钥库 + Java 金鑰儲存 - + @@ -13139,12 +13733,13 @@ Java JCE-nøglelager Java JCE-Schlüsselbund Αποθήκη κλειδιών Java JCE - Java JCE keystore + Java JCE keystore almacén de claves JCE de Java Java JCE-ren gako-biltegia Java JCE -avainvarasto Java JCE lyklagoymsla stockage de clés Java JCE + archivi di clâfs JCE Java eochairstór Java JCE almacén de chves JCE de Java אחסון מפתחות של Java JCE @@ -13162,40 +13757,41 @@ emmagazinatge de claus Java JCE Baza kluczy Java JCE armazém de chaves JavaJCE - Keystore JCE do Java + Keystore JCE do Java Stocare chei Java JCE Хранилище ключей Java JCE Úložisko kľúčov Java JCE Datoteka tipkovne razporeditve Java JCE смештај ЈЦЕ кључа Јаве Java JCE-nyckellager - Java JCE deposu + Java JCE anahtar deposu сховище ключів JCE Java - Java JCE 密钥库 - Java JCE 金鑰儲存 + Java JCE 密钥库 + Java JCE 金鑰儲存 JCE Java Cryptography Extension - + Pack200 Java archive أرشيف Pack200 Java - Archiŭ Pack200 Java + Archiŭ Pack200 Java Архив — Java Pack200 arxiu de Java en Pack200 archiv Java Pack200 Pack200 Java-arkiv Pack200-Java-Archiv Συμπιεσμένο αρχείο Java Pack200 - Pack200 Java archive + Pack200 Java archive archivador Pack200 Java Pack2000 Java artxiboa Pack200-Java-arkisto Pack200 Java skjalasavn archive Java Pack200 + archivi Java Pack200 cartlann Java Pack200 arquivo Pack200 Java ארכיון מסוג Pack200 Java @@ -13215,7 +13811,7 @@ archiu Java Pack200 Archiwum Java Pack200 arquivo Java Pack200 - Pacote Java Pack200 + Pacote Java Pack200 Arhivă Java Pack2000 Архив Java Pack200 Archív Java Pack200 @@ -13226,31 +13822,33 @@ Pack200 Java arşivi архів Java Pack200 Kho nén Java Pack200 - Pack200 Java 归档文件 - Pack200 Java 封存檔 + Pack200 Java 归档文件 + Pack200 Java 封存檔 - + JavaScript program + JavaScript-program برنامج جافاسكربت - Prahrama JavaScript + Prahrama JavaScript Програма на JavaScript programa JavaScript program v JavaScriptu JavaScript-program JavaScript-Programm Πρόγραμμα JavaScript - JavaScript program + JavaScript program JavaScript-programo programa en JavaScript JavaScript programa JavaScript-ohjelma JavaScript forrit programme JavaScript + program JavaScript ríomhchlár JavaScript programa JavaScript תכנית JavaScript @@ -13271,7 +13869,7 @@ programa JavaEscript Pogram JavaScript programa JavaScript - Programa JavaScript + Programa JavaScript Program JavaScript Программа JavaScript Program jazyka JavaScript @@ -13282,23 +13880,23 @@ JavaScript programı програма мовою JavaScript Chương trình JavaScript - JavaScript 程序 - JavaScript 程式 + JavaScript 程序 + JavaScript 程式 - - - - - - - - - - + + + + + + + + + + @@ -13306,17 +13904,20 @@ JSON document + JSON-dokument Documentu JSON + Документ — JSON document JSON dokument JSON JSON-dokument JSON-Dokument Έγγραφο JSON - JSON document + JSON document documento JSON JSON dokumentua JSON-asiakirja document JSON + document JSON cáipéis JSON Documento JSON מסמך JSON @@ -13330,7 +13931,7 @@ document JSON Dokument JSON documento JSON - Documento JSON + Documento JSON Документ JSON Dokument JSON Dokument JSON @@ -13338,8 +13939,8 @@ JSON-dokument JSON belgesi документ JSON - JSON 文档 - JSON 文件 + JSON 文档 + JSON 文件 JSON JavaScript Object Notation @@ -13348,17 +13949,20 @@ JRD document + JRD-dokument Documentu JRD + Документ — JRD document JRD dokument JRD JRD-dokument JRD-Dokument Έγγραφο JRD - JRD document + JRD document documento JRD JRD dokumentua JRD-asiakirja document JRD + document JRD cáipéis JRD מסמך JRD JRD dokument @@ -13371,15 +13975,16 @@ document JRD Dokument JRD doxumento JRD - Documento JRD + Documento JRD Документ JRD Dokument JRD + Dokument JRD ЈРД документ JRD-dokument JRD belgesi документ JRD - JRD 文档 - JRD 文件 + JRD 文档 + JRD 文件 JRD JSON Resource Descriptor @@ -13388,14 +13993,17 @@ JSON patch + Кръпка — JSON pedaç de JSON cesta JSON JSON-rettelse JSON-Patch - JSON patch + JSON patch parche en JSON JSON adabakia + JSON-paikkatiedosto correctif JSON + blec JSON paiste JSON טלאי JSON JSON zakrpa @@ -13408,15 +14016,15 @@ correctiu JSON Łata JSON patch JSON - Patch JSON + Patch JSON Патч JSON Záplata JSON ЈСОН закрпа JSON patch JSON yaması латка JSON - JSON 补丁 - JSON 修補檔 + JSON 补丁 + JSON 修補檔 JSON JavaScript Object Notation @@ -13426,16 +14034,18 @@ JSON-LD document Documentu JSON-LD + Документ — JSON-LD document JSON-LD dokument JSON-LD JSON-LD-dokument JSON-LD-Dokument Έγγραφο JSON-LD - JSON-LD document + JSON-LD document documento JSON-LD JSON-LD dokumentua JSON-LD-asiakirja document JSON-LD + document JSON-LD cáipéis JSON-LD מסמך JSON-LD JSON-LD dokument @@ -13448,15 +14058,16 @@ Document JSON-LD Dokument JSON-LD documento JSON-LD - Documento JSON-LD + Documento JSON-LD Документ JSON-LD Dokument JSON-LD + Dokument JSON-LD ЈСОН-ЛД документ JSON-LD-dokument JSON-LD belgesi документ JSON-LD - JSON-LD 文档 - JSON-LD 文件 + JSON-LD 文档 + JSON-LD 文件 JSON-LD JavaScript Object Notation for Linked Data @@ -13464,55 +14075,55 @@ - Jupyter Notebook - llibreta de notes de Jupyter - sešit Jupyter - Jupyter Notebook - Jupyter-Dokument - Jupyter Notebook - libreta de Jupyter - Jupyter Notebook + Jupyter notebook document + Скицник — Jupyter + document de llibreta de notes de Jupyter + Jupyter notebook-dokument + Jupyter-Notebook-Dokument + Jupyter notebook document + documento de cuaderno de Jupyter + Jupyter notebook dokumentua + Jupyter notebook -asiakirja carnet de notes Jupyter - Leabhar nótaí Jupyter - מחברת Jupyter - Jupyter bilježnica - Jupyter notesz - Notebook Jupyter - Notebook Jupyter - Jupyter Notebook - Jupyter 노트북 - Notatnik Jupyter - Bloco de Notas Jupyter - Jupyter Notebook - Zošit programu Jupyter - Џупитер бележница - Jupyter Notebook-dokument - Jupyter Notebook - записник Jupyter - Jupyter 笔记本 - Jupyter 記事本 + Jupyter notebook dokument + Jupyter munkafüzet dokumentum + Dokumen Jupyter notebook + Documento notebook Jupyter + Jupyter блокнот құжаты + 주피터 노트북 문서 + Dokument notatnika Jupyter + Documento Jupyter Notebook + Документ Jupyter notebook + Jupyter-anteckningsboksdokument + Jupyter notebook belgesi + документ нотатника Jupyter + Jupyter 笔记本文档 + Jupyter 記事本文件 - - + + CoffeeScript document + CoffeeScript-dokument Documentu de CoffeScript + Документ — CoffeeScript document CoffeeScript dokument CoffeeScript CoffeeScript-dokument CoffeeScript-Dokument Έγγραφο CoffeeScript - CoffeeScript document + CoffeeScript document documento en CoffeeScript CoffeeScript dokumentua CoffeeScript-asiakirja document CoffeeScript + document CoffeeScript cáipéis CoffeeScript מסמך CoffeeScript CoffeeScript dokument @@ -13525,36 +14136,39 @@ Document CoffeScript Dokument CoffeeScript documento CoffeeScript - Documento CoffeeScript + Documento CoffeeScript Документ CoffeeScript Dokument CoffeeScript + Dokument CoffeeScript Кофи скрипт документ CoffeeScript-dokument CoffeeScript belgesi документ CoffeeScript - CoffeeScript 文档 - CoffeeScript 文件 + CoffeeScript 文档 + CoffeeScript 文件 JBuilder project + JBuilder-projek مشروع JBuilder - Prajekt JBuilder + Prajekt JBuilder Проект — JBuilder projecte de JBuilder projekt JBuilder JBuilder-projekt JBuilder-Projekt Εργο JBuilder - JBuilder project + JBuilder project JBuilder-projekto proyecto de JBuilder JBuilder proiektua JBuilder-projekti JBuilder verkætlan projet JBuilder + progjet JBuilder tionscadal JBuilder proxecto de JBuilder מיזם JBuilder @@ -13575,7 +14189,7 @@ projècte JBuilder Projekt JBuilder projecto JBuilder - Projeto do JBuilder + Projeto do JBuilder Proiect JBuilder Проект JBuilder Projekt JBuilder @@ -13584,31 +14198,33 @@ пројекат ЈГрадитеља JBuilder-projekt JBuilder projesi - проект JBuilder + проєкт JBuilder Dự án JBuilder - JBuilder 工程 - JBuilder 專案 + JBuilder 工程 + JBuilder 專案 Karbon14 drawing + Karbon14-tekening تصميم Karbon14 - Rysunak Karbon14 + Rysunak Karbon14 Чертеж — Karbon14 dibuix de Karbon14 kresba Karbon14 Karbon14-tegning Karbon14-Zeichnung Σχέδιο Karbon14 - Karbon14 drawing + Karbon14 drawing Karbon14-grafikaĵo dibujo de Karbon14 Karbon14 marrazkia Karbon14-piirros Karbon14 tekning dessin Karbon14 + dissen Karbon14 líníocht Karbon14 debuxo de Karbon14 ציור Karbon14 @@ -13629,7 +14245,7 @@ dessenh Karbon14 Rysunek Karbon14 desenho Karbon14 - Desenho do Karbon14 + Desenho do Karbon14 Desen Karbon14 Рисунок Karbon14 Kresba Karbon14 @@ -13640,18 +14256,18 @@ Karbon14 çizimi малюнок Karbon14 Bản vẽ Karbon14 - Karbon14 绘图 - Karbon14 繪圖 + Karbon14 绘图 + Karbon14 繪圖 - - - + + + - - - + + + @@ -13659,21 +14275,23 @@ KChart chart + KChart-grafiek رسم بياني KChart - Hrafik KChart + Hrafik KChart Диаграма — KChart diagrama de KChart graf Chart KChart-diagram KChart-Diagramm Γράφημα KChart - KChart chart + KChart chart KChart-diagramo gráfico de KChart KChart diagrama KChart-kaavio KChart strikumynd graphique KChart + grafic KChart cairt KChart gráfica de KChart תרשים KChart @@ -13694,7 +14312,7 @@ grafic KChart Wykres KChart gráfico KChart - Gráfico do KChart + Gráfico do KChart Diagramă KChart Диаграмма KChart Graf KChart @@ -13705,224 +14323,159 @@ KChart çizgesi діаграма KChart Sơ đồ KChart - KChart 图表 - KChart 圖表 + KChart 图表 + KChart 圖表 - - - + + + - - - + + + - Kexi settings for database server connection - إعدادات Kexi للإتصال بخادم قاعدة البيانات - Връзка към база от данни — Kexi - ajusts de Kexi per a la connexió al servidor de bases de dades - nastavení Kexi ke spojení s databázovým serverem - Kexiopsætning til forbindelsen for databaseserveren - Kexi-Einstellungen für Verbindung zum Datenbankserver - Ρυθμίσεις Kexi για σύνδεση με εξυπηρετητή βάσεων δεδομένων - Kexi settings for database server connection - configuración de Kexi para conectar con un servidor de bases de datos - Kexi-ren ezarpenak datu-basearen zerbitzariarekin konektatzeko - Kexi-tietokantayhteysasetukset - Kexi stillingar fyri dátustovnsambætara sambinding - paramètres Kexi pour connexion au serveur de base de données - socruithe Kexi do cheangal le freastalaí bunachair sonraí - configuración de Kexi para conexión con servidor de base de datos - הגדרות של Kexi עבור חיבור שרת למסד נתונים - Kexi postavke za povezeivanje baza podataka poslužitelja - Kexi beállítások adatbáziskiszolgáló-kapcsolathoz - Configuration Kexi pro connexion al servitor de base de datos - Tatanan Kexi bagi koneksi server basis data - Impostazioni Kexi per connessione a server di database - データベースサーバ接続用の Kexi 設定 - Дерекқор серверге байланыс Kexi баптаулары - Kexi 데이터베이스 서버 연결 설정 - Kexi duomenų bazės ryšio su serveriu parametrai - Kexi iestatījumi datubāzes servera savienojumam - Kexi instellingen voor database server connectie - paramètres Kexi per connexion al servidor de banca de donadas - Ustawienia Kexi dla połączenia serwera bazy danych - definições Kexi para ligação de servidor de base de dados - Configurações do Kexi para conexão a servidor de banco de dados - Configurări Kexi pentru conexiunea la serverul de baze de date - Параметры Kexi для подключения к серверу БД - Nastavenia Kexi pre pripojenie k databázovému serveru - Strežniška povezava do nastavitvene datoteke Kexi. - подешавања Кексија за везу са сервером базе података - Kexi-inställningar för anslutning till databasserver - Veritabanı sunucu bağlantısı için Kexi ayarları - параметри Kexi для встановлення з’єднання з сервером бази даних - Kexi 数据库服务器连接设置 - Kexi 設定值 (資料庫伺服器連線用) + Kexi settings + Настройки — Kexi + ajusts de Kexi + Kexi-indstillinger + Kexi-Einstellungen + Kexi settings + configuración de Kexi + Kexi ezarpenak + Kexi-asetukset + réglages Kexi + Kexi postavke + Kexi beállítások + Pengaturan Kexi + Impostazioni Kexi + Kexi баптаулары + Kexi 설정 + Ustawienia Kexi + Configurações do Kexi + Файл настроек Kexi + Nastavenia Kexi + Nastavitve Kexi + Kexi-inställningar + Kexi ayarları + параметри Kexi + Kexi 设置 + Kexi 設定 - shortcut to Kexi project on database server - اختصار لمشروع Kexi على خادم قاعدة بيانات - Връзка към проект — Kexi - drecera al projecte de Kexi en un servidor de base de dades - zástupce projektu Kexi na databázovém serveru - genvej til Kexiprojekt på databaseserver - Schnellzugriff zum Kexi-Projekt auf dem Datenbankserver - Συντόμευση σε έργο Kexi στον εξυπηρετητή βάσης δεδομένων - shortcut to Kexi project on database server - acceso directo a proyecto Kexi en el servidor de bases de datos - lasterbidea datu-basearen zerbitzariko Kexi proiekturako - pikakuvake tietokantapalvelimella olevaan Kexi-projektiin - snarvegur til Kexi verkætlan á dátustovnsambætara - raccourci vers projet Kexi sur serveur de base de données - aicearra go tionscadal Kexi ar fhreastalaí bunachair sonraí - acceso directo a proxecto Kexi no servidor de bases de datos - קיצור דרך לפרוירט Kexi בשרת נתונים - Prečac do Kexi projekta na poslužitelju baze podataka - indítóikon adatbázis-kiszolgálón lévő Kexi projektre - Ligamine a projecto Kexi in servitor de base de datos - pintasan ke projek Kexi pada server basis data - Scorciatoia a progetto Kexi su server di database - データベースサーバの Kexi プロジェクトへのショートカット - дерекқор серверіндегі Kexi жобасына сілтеме - 데이터베이스 서버의 Kexi 프로젝트 바로 가기 - nuoroda į Kexi projektą duomenų bazės serveryje - īsceļš uz Kexi projektu datubāzes serverī - shortcut naar Kexi project op database server - acorchi cap a projècte Kexi sus servidor de banca de donadas - Skrót do projektu Kexi na serwerze bazy danych - atalho para projeto Kexi em servidor de base de dados - Atalho para projeto Kexi no servidor de banco de dados - scurtătură către un proiect Kexi pe un server de baze de date - Ссылка на проект Kexi на сервере БД - Zástupca projektu Kexi na databázovom serveri - bližnjica do Kexi projekta na podatkovnem strežniku - пречица до пројекта Кексија на серверу базе података - genväg till Kexi-projekt på databasserver - veritabanı üzerindeki Kexi projesine kısayol - скорочення для проекту Kexi на сервері бази даних - 数据库服务器上 Kexi 项目的快捷方式 - 資料庫伺服器上 Kexi 專案的捷徑 + Kexi shortcut + Ускорител — Kexi + drecera de Kexi + Kexi-genvej + Kexi-Verweis + Kexi shortcut + atajo de Kexi + Kexi lasterbidea + KEXI-pikakuvake + raccourci Kexi + Kexi prečac + Kexi parancsiko + Pintasan Kexi + Scorciatoia Kexi + Kexi жарлығы + Kexi 바로 가기 + Skrót Kexi + Atalho do Kexi + Ссылка Kexi + Odkaz Kexi + Kexi-genväg + Kexi kısayolu + скорочення Kexi + Kexi 快捷方式 + Kexi 捷徑 - Kexi database file-based project - مشروع قاعدة بيانات Kexi يعتمد على ملفات - Проект с база от данни — Kexi - projecte basat en fitxer de base de dades de Kexi - projekt založený na souboru databáze Kexi - Filbaseret projekt for Kexidatabase - Dateibasiertes Kexi-Datenbankprojekt - Έργο βάσης δεδομένων Kexi βασισμένο σε αρχεία - Kexi database file-based project - proyecto de base de datos basada en archivos de Kexi - Kexi datu-baseko fitxategian oinarritutako proiektua - Kexin tiedostoperustainen tietokantaprojekti - Kexi dátustovns fílugrundað verkætlan - projet de base de données Kexi en mode fichier - tionscadal bunachair sonraí Kexi bunaithe ar chomhaid - proxecto baseado no ficheiro-base de datos Kexi - מיזם מסד נתונים מבוסס-קובץ של Kexi - Kexi baza podataka datotekom temeljen projekt - Kexi adatbázisfájl-alapú projekt - Projecto de base de datos Kexi in modo file - Projek berbasis berkas basis data Kexi - Progetto su file di database Kexi - Kexi データベース ファイルベースプロジェクト - Файл негізінде жоба үшін Kexi дерекқоры - Kexi 데이터베이스 파일 기반 프로젝트 - Kexi duomenų bazės failo tipo projektas - Kexi datubāzes datnes balstīts projekts - Kexi database bestandgebaseerd project - projècte de banca de donadas Kexi en mòde fichièr - Projekt bazy danych Kexi na podstawie plików - projeto Kexi em base de dados baseada em ficheiros - Projeto de banco de dados baseado em arquivo do Kexi - Proiect bazat pe fișiere al bazei de date Kexi - Файловый проект базы данных Kexi - Projekt databázy Kexi s úložiskom typu súbor - Datoteka projekta podatkovne zbirke Kexi - пројекат Кексијеве базе података на основу датотеке - Kexi-databas för filbaserat projekt - Dosya temelli Kexi veritabanı projesi - проект файлової бази даних Kexi - Kexi 基于文件的数据库项目 - Kexi 資料庫檔案基礎專案 + Kexi database file + База от данни — Kexi + fitxer de base de dades de Kexi + Kexi database-fil + Kexi-Datenbankdatei + Kexi database file + archivo de base de datos de Kexi + Kexi datu-base fitxategia + KEXI-tietokanta + fichier de base de données Kexi + Kexi datoteka baze podataka + Kexi adatbázisfájl + Berkas basis data Kexi + File database Kexi + Kexi дерекқор файлы + Kexi 데이터베이스 파일 + Plik bazy danych Kexi + Arquivo de banco de dados do Kexi + Файл базы данных Kexi + Súbor databázy Kexi + Kexi-databasfil + Kexi veri tabanı dosyası + файл бази даних Kexi + Kexi 数据库文件 + Kexi 資料庫檔案 - Kexi database file-based project - مشروع قاعدة بيانات Kexi يعتمد على ملفات - Проект с база от данни — Kexi - projecte basat en fitxer de base de dades de Kexi - projekt založený na souboru databáze Kexi - Filbaseret projekt for Kexidatabase - Dateibasiertes Kexi-Datenbankprojekt - Έργο βάσης δεδομένων Kexi βασισμένο σε αρχεία - Kexi database file-based project - proyecto de base de datos basada en archivos de Kexi - Kexi datu-baseko fitxategian oinarritutako proiektua - Kexin tiedostoperustainen tietokantaprojekti - Kexi dátustovns fílugrundað verkætlan - projet de base de données Kexi en mode fichier - tionscadal bunachair sonraí Kexi bunaithe ar chomhaid - proxecto baseado no ficheiro-base de datos Kexi - מיזם מסד נתונים מבוסס-קובץ של Kexi - Kexi baza podataka datotekom temeljen projekt - Kexi adatbázisfájl-alapú projekt - Projecto de base de datos Kexi in modo file - Projek berbasis berkas basis data Kexi - Progetto su file di database Kexi - Kexi データベース ファイルベースプロジェクト - Файл негізінде жоба үшін Kexi дерекқоры - Kexi 데이터베이스 파일 기반 프로젝트 - Kexi duomenų bazės failo tipo projektas - Kexi datubāzes datnes balstīts projekts - Kexi database bestandgebaseerd project - projècte de banca de donadas Kexi en mòde fichièr - Projekt bazy danych Kexi na podstawie plików - projeto Kexi em base de dados baseada em ficheiros - Projeto de banco de dados baseado em arquivo do Kexi - Proiect bazat pe fișiere al bazei de date Kexi - Файловый проект базы данных Kexi - Projekt databázy Kexi s úložiskom typu súbor - Datoteka projekta podatkovne zbirke Kexi - пројекат Кексијеве базе података на основу датотеке - Kexi-databas för filbaserat projekt - Dosya temelli Kexi veritabanı projesi - проект файлової бази даних Kexi - Kexi 基于文件的数据库项目 - Kexi 資料庫檔案基礎專案 - + Kexi database file + База от данни — Kexi + fitxer de base de dades de Kexi + Kexi database-fil + Kexi-Datenbankdatei + Kexi database file + archivo de base de datos de Kexi + Kexi datu-base fitxategia + KEXI-tietokanta + fichier de base de données Kexi + Kexi datoteka baze podataka + Kexi adatbázisfájl + Berkas basis data Kexi + File database Kexi + Kexi дерекқор файлы + Kexi 데이터베이스 파일 + Plik bazy danych Kexi + Arquivo de banco de dados do Kexi + Файл базы данных Kexi + Súbor databázy Kexi + Kexi-databasfil + Kexi veri tabanı dosyası + файл бази даних Kexi + Kexi 数据库文件 + Kexi 資料庫檔案 + KFormula formula + KFormula-formule صيغة KFormula - Formuła KFormula + Formuła KFormula Формула — KFormula fórmula de KFormula vzorec KFormula KFormula-formel KFormula-Formel Μαθηματικός τύπος KFormula - KFormula formula + KFormula formula KFormula-formulo fórmula de KFormula KFormula formula KFormula-kaava KFormula frymil formule KFormula + formule KFormula foirmle KFormula fórmula de KFormula נוסחת KFormula @@ -13943,7 +14496,7 @@ formula KFormula Formuła KFormula fórmula KFormula - Fórmula do KFormula + Fórmula do KFormula Formulă KFormula Формула KFormula Vzorec KFormula @@ -13954,18 +14507,18 @@ KFormula formülü формула KFormula Công thức KFormula - KFormula 公式 - KFormula 公式 + KFormula 公式 + KFormula 公式 - - - + + + - - - + + + @@ -13973,21 +14526,23 @@ KIllustrator drawing + KIllustrator-tekening تصميم KIllustrator - Rysunak KIllustrator + Rysunak KIllustrator Чертеж — KIllustrator dibuix de KIllustrator kresba KIllustrator KIllustrator-tegning KIllustrator-Zeichnung Σχέδιο KIllustrator - KIllustrator drawing + KIllustrator drawing KIllustrator-grafikaĵo dibujo de KIllustrator KIllustrator marrazkia KIllustrator-piirros KIllustrator tekning dessin KIllustrator + dissen KIllustrator líníocht KIllustrator debuxo de KIllustrator ציור KIllustrator @@ -14008,7 +14563,7 @@ dessenh KIllustrator Rysunek KIllustrator desenho KIllustrator - Desenho do KIllustrator + Desenho do KIllustrator Desen KIllustrator Рисунок KIllustrator Kresba KIllustrator @@ -14019,13 +14574,13 @@ KIllustrator çizimi малюнок KIllustrator Bản vẽ KIllustrator - KIllustrator 绘图 - KIllustrator 繪圖 + KIllustrator 绘图 + KIllustrator 繪圖 - - - + + + @@ -14033,21 +14588,23 @@ Kivio flowchart + Kivio-vloeidiagram قائمة تدفق Kivio - Blok-schiema Kivio + Blok-schiema Kivio Диаграма — Kivio diagrama de flux de Kivio vývojový diagram Kivio Kiviorutediagram Kivio-Flussdiagramm Διάγραμμα ροής Kivio - Kivio flowchart + Kivio flowchart Kivo-fluskemo diagrama de flujo de Kivio Kivio diagrama Kivio-vuokaavio Kivio leiðarit diagramme de flux Kivio + diagram di flus Kivio sreabhchairt Kivio gráfica de fluxo de Kivio תרשים זרימה של Kivio @@ -14068,7 +14625,7 @@ diagrama de flux Kivio Diagram przepływów Kivio gráfico de fluxo Kivio - Fluxograma do Kivio + Fluxograma do Kivio Diagramă Kivio Диаграмма Kivio Vývojový diagram Kivio @@ -14076,21 +14633,21 @@ Diagramë fluksi Kivio Кивиов дијаграм тока Kivio-flödesschema - Kivio akış şeması + Kivio akış çizgesi блок-схема Kivio Lược đồ Kivio - Kivio 流程图 - Kivio 圖表 + Kivio 流程图 + Kivio 流程圖 - - - + + + - - - + + + @@ -14098,21 +14655,23 @@ Kontour drawing + Kontour-tekening تصميم Kontour - Rysunak Kontour + Rysunak Kontour Чертеж — Kontour dibuix de Kontour kresba Kontour Kontourtegning Kontour-Zeichnung Σχέδιο Kontour - Kontour drawing + Kontour drawing Kontour-grafikaĵo dibujo de Kontour Kontour marrazkia Kontour-piirros Kontour tekning dessin Kontour + dissen Kontour líníocht Kontour debuxo de Kontour ציור Kontour @@ -14133,7 +14692,7 @@ dessenh Kontour Rysunek Kontour desenho Kontour - Desenho do Kontour + Desenho do Kontour Desen Kontour Рисунок Kontour Kresba Kontour @@ -14144,18 +14703,18 @@ Kontour çizimi малюнок Kontour Bản vẽ Kontour - Kontour 绘图 - Kontour 繪圖 + Kontour 绘图 + Kontour 繪圖 - - - + + + - - - + + + @@ -14163,21 +14722,23 @@ KPovModeler scene + KPovModeler-toneel مشهد KPovModeler - Scena KPovModeler + Scena KPovModeler Сцена — KPovModeler escena de KPovModeler scéna KPovModeler KPovModeler-scene KPovModeler-Szene Σκηνή KPovModeler - KPovModeler scene + KPovModeler scene KPovModeler-sceno escena de KPovModeler KPovModeler eszena KPovModeler-näkymä KPovModeler leikmynd scène KPovModeler + sene KPovModeler radharc KPovModeler escena de KPovModeler סצנת KPovModeler @@ -14198,7 +14759,7 @@ scène KPovModeler Scena KPovModeler cenário KPovModeler - Cena do KPovModeler + Cena do KPovModeler Scenă KPovModeler Сцена KPovModeler Scéna KPovModeler @@ -14209,28 +14770,30 @@ KPovModeler sahnesi сцена KPovModeler Cảnh KPovModeler - KPovModeler 场景 - KPovModeler 場景 + KPovModeler 场景 + KPovModeler 場景 KPresenter presentation + KPresenter-voorlegging عرض تقديمي KPresenter - Prezentacyja KPresenter + Prezentacyja KPresenter Презентация — KPresenter presentació de KPresenter prezentace KPresenter KPresenter-præsentation KPresenter-Präsentation Παρουσίαση KPresenter - KPresenter presentation + KPresenter presentation KPresenter-prezentaĵo presentación de KPresenter Kpresenter aurkezpena KPresenter-esitys KPresenter framløga présentation KPresenter + presentazion KPresenter láithreoireacht KPresenter presentación de KPresenter מצגת KPresenter @@ -14251,7 +14814,7 @@ presentacion KPresenter Prezentacja KPresenter apresentação KPresenter - Apresentação do KPresenter + Apresentação do KPresenter Prezentare KPresenter Презентация KPresenter Prezentácia KPresenter @@ -14262,18 +14825,18 @@ KPresenter sunum dosyası презентація KPresenter Trình diễn KPresenter - KPresenter 演示文稿 - KPresenter 簡報檔 + KPresenter 演示文稿 + KPresenter 簡報 - - - + + + - - - + + + @@ -14282,22 +14845,24 @@ Krita document + Krita-dokument مستند Krita Documentu de Krita - Dakument Krita + Dakument Krita Документ — Krita - document Krita + document de Krita dokument Krita Kritadokument Krita-Dokument Έγγραφο Krita - Krita document + Krita document Krita-dokumento documento de Krita Krita dokumentua Krita-asiakirja Krita skjal document Krita + document Krita cáipéis Krita documento de Krita מסמך Krita @@ -14318,7 +14883,7 @@ document Krita Dokument Krita documento Krita - Documento do Krita + Documento do Krita Document Krita Документ Krita Dokument Krita @@ -14329,18 +14894,18 @@ Krita belgesi документ Krita Tài liệu Krita - Krita 文档 - Krita 文件 + Krita 文档 + Krita 文件 - - - + + + - - - + + + @@ -14348,21 +14913,23 @@ KSpread spreadsheet + KSpread-sigblad جدول KSpread - Raźlikovy arkuš KSpread + Raźlikovy arkuš KSpread Таблица — KSpread full de càlcul de KSpread sešit KSpread KSpread-regneark KSpread-Tabelle Λογιστικό φύλλο KSpread - KSpread spreadsheet + KSpread spreadsheet KSpread-kalkultabelo hoja de cálculo de KSpread KSpread kalkulu-orria KSpread-taulukko KSpread rokniark feuille de calcul KSpread + sfuei di calcul KSpread scarbhileog KSpread folla de cálculo de KSpread גליון נתונים של Kspread @@ -14383,7 +14950,7 @@ fuèlh de calcul KSpread Arkusz KSpread folha de cálculo KSpread - Planilha do KSpread + Planilha do KSpread Foaie de calcul KSpread Электронная таблица KSpread Zošit KSpread @@ -14391,21 +14958,21 @@ Fletë llogaritjesh KSpread табела К-табеле KSpread-kalkylblad - KSpread çalışma sayfası + KSpread hesap çizelgesi ел. таблиця KSpread Bảng tính KSpread - KSpread 电子表格 - KSpread 試算表 + KSpread 电子表格 + KSpread 試算表 - - - + + + - - - + + + @@ -14413,21 +14980,23 @@ KSpread spreadsheet (encrypted) + KSpread-sigblad (geënkripteer) جدول KSpread (مشفر) - Raźlikovy arkuš KSpread (zašyfravany) + Raźlikovy arkuš KSpread (zašyfravany) Таблица — KSpread, шифрирана full de càlcul de KSpread (xifrat) sešit KSpread (šifrovaný) KSpread-regneark (krypteret) KSpread-Tabelle (verschlüsselt) Λογιστικό φύλλο KSpread (κρυπτογραφημένο) - KSpread spreadsheet (encrypted) + KSpread spreadsheet (encrypted) KSpread-kalkultabelo (ĉifrita) hoja de cálculo de KSpread (cifrada) - KSpread kalkulu-orria (enkriptatua) + KSpread kalkulu-orria (zifratuta) KSpread-taulukko (salattu) KSpread rokniark (bronglað) feuille de calcul KSpread (chiffrée) + sfuei di calcul KSpread (cifrât) scarbhileog KSpread (criptithe) folla de cálculo de KSpread (cifrada) גליון נתונים של KSpread (מוצפן) @@ -14448,7 +15017,7 @@ fuèlh de calcul KSpread (chifrada) Arkusz KSpread (zaszyfrowany) folha de cálculo KSpread (encriptada) - Planilha do KSpread (criptografada) + Planilha do KSpread (criptografada) Foaie de calcul KSpread (criptat) Электронная таблица KSpread (зашифрованная) Zošit KSpread (šifrovaný) @@ -14456,32 +15025,33 @@ Fletë llogaritjesh KSpread (e kriptuar) табела К-табеле (шифрована) KSpread-kalkylblad (krypterat) - KSpread çalışma sayfası (şifreli) + KSpread hesap çizelgesi (şifreli) ел. таблиця KSpread (зашифрована) Bảng tính KSpread (đã mật mã) - KSpread 电子表格(加密) - KSpread 試算表 (已加密) + KSpread 电子表格(加密) + KSpread 試算表 (加密) - + KSysV init package حزمة KSysV init - Inicyjalny pakunak KSysV + Inicyjalny pakunak KSysV Пакет — KSysV init - paquet d'inici KSysV + paquet de KSysV init balíček init KSysV KSsV init-pakke KSysV-Init-Paket Αρχικό πακέτο KSysV - KSysV init package + KSysV init package paquete de configuración de init para KSysV KSysV hasieratzeko paketea KSysV init -paketti KSysV init pakki paquet d'initialisation KSysV + pachet init KSysV pacáiste túsaithe KSysV paquete de KsysV init חבילת KSysV init @@ -14501,7 +15071,7 @@ paquet d'initializacion KSysV Pakiet KSysV init pacote inicial KSysV - Pacote init do KSysV + Pacote init do KSysV Pachet KSysV init Пакет инициализации KSysV Balíček KSysV init @@ -14512,33 +15082,35 @@ KSysV init paketi пакунок KSysV init Gói sở khởi KSysV - KSysV init 软件包 - KSysV init 軟體包 + KSysV init 软件包 + KSysV init 軟體包 - - + + Kugar document + Kugar-dokument مستند Kugar Documentu de Kugar - Dakument Kugar + Dakument Kugar Документ — Kugar document Kugar dokument Kugar Kugardokument Kugar-Dokument Έγγραφο Kugar - Kugar document + Kugar document Kugar-dokumento documento de Kugar Kugar dokumentua Kugar-asiakirja Kugar skjal document Kugar + document Kugar cáipéis Kugar documento de Kugar מסמך Kugar @@ -14559,7 +15131,7 @@ document Kugar Dokument Kuguar documento Kugar - Documento do Kugar + Documento do Kugar Document Kugar Документ Kugar Dokument Kugar @@ -14570,16 +15142,17 @@ Kugar belgesi документ Kugar Tài liệu Kugar - Kugar 文档 - Kugar 文件 + Kugar 文档 + Kugar 文件 KWord document + KWord-dokument مستند KWord Documentu de Kword - Dakument KWord + Dakument KWord Документ — KWord document KWord dokument KWord @@ -14587,13 +15160,14 @@ KWord-dokument KWord-Dokument Έγγραφο KWord - KWord document + KWord document KWord-dokumento documento de KWord KWord dokumentua KWord-asiakirja KWord skjal document KWord + document KWord cáipéis KWord documento de KWord מסמך KWord @@ -14614,7 +15188,7 @@ document KWord Dokument KWord documento KWord - Documento do KWord + Documento do KWord Document KWord Документ KWord Dokument KWord @@ -14625,18 +15199,18 @@ KWord belgesi документ KWord Tài liệu KWord - KWord 文档 - KWord 文件 + KWord 文档 + KWord 文件 - - - + + + - - - + + + @@ -14645,22 +15219,24 @@ KWord document (encrypted) + KWord-dokument (geënkripteer) مستند KWord (مشفر) Documentu de Kword (cifráu) - Dakument KWord (zašyfravany) + Dakument KWord (zašyfravany) Документ — KWord, шифриран document KWord (xifrat) dokument KWord (šifrovaný) KWord-dokument (krypteret) KWord-Dokument (verschlüsselt) Έγγραφο KWord (κρυπτογραφημένο) - KWord document (encrypted) + KWord document (encrypted) KWord-dokumento (ĉifrita) documento de KWord (cifrado) - KWord dokumentua (enkriptatua) + KWord dokumentua (zifratuta) KWord-asiakirja (salattu) KWord skjal (bronglað) document KWord (chiffré) + document KWord (cifrât) cáipéis KWord (criptithe) documento de KWord (cifrado) מסמך KWord (מוצפן) @@ -14681,7 +15257,7 @@ document KWord (chifrat) Dokument KWord (zaszyfrowany) documento KWord (encriptado) - Documento do KWord (criptografado) + Documento do KWord (criptografado) Document KWord (criptat) Документ KWord (зашифрованный) Dokument KWord (šifrovaný) @@ -14692,18 +15268,19 @@ KWord belgesi (şifreli) документ KWord (зашифрований) Tài liệu KWord (đã mật mã) - KWord 文档(加密) - KWord 文件 (已加密) + KWord 文档(加密) + KWord 文件 (加密) - + LHA archive + LHA-argief أرشيف LHA LHA arxivi - Archiŭ LHA + Archiŭ LHA Архив — LHA arxiu LHA archiv LHA @@ -14711,13 +15288,14 @@ LHA-arkiv LHA-Archiv Συμπιεσμένο αρχείο LHA - LHA archive + LHA archive LHA-arkivo archivador LHA LHA artxiboa LHA-arkisto LHA skjalasavn archive LHA + archivi LHA cartlann LHA arquivo LHA ארכיון LHA @@ -14738,7 +15316,7 @@ archiu LHA Archiwum LHA arquivo LHA - Pacote LHA + Pacote LHA Arhivă LHA Архив LHA Archív LHA @@ -14749,22 +15327,22 @@ LHA arşivi архів LHA Kho nén LHA - LHA 归档文件 - LHA 封存檔 + LHA 归档文件 + LHA 封存檔 - - - - - - - - - - - - + + + + + + + + + + + + @@ -14772,21 +15350,23 @@ LHZ archive + LHZ-argief أرشيف LHZ - Archiŭ LHZ + Archiŭ LHZ Архив — LHZ arxiu LHZ archiv LHZ LHZ-arkiv LHZ-Archiv Συμπιεσμένο αρχείο LHZ - LHZ archive + LHZ archive LHZ-arkivo archivador LHZ LHZ artxiboa LHZ-arkisto LHZ skjalasavn archive LHZ + archivi LHZ cartlann LHZ arquivo LHZ ארכיון LHZ @@ -14807,7 +15387,7 @@ archiu LHZ Archiwum LHZ arquivo LHZ - Pacote LHZ + Pacote LHZ Arhivă LHZ Архив LHZ Archív LHZ @@ -14818,28 +15398,30 @@ LHZ arşivi архів LHZ Kho nén LHZ (LHA đã nén) - LHZ 归档文件 - LHZ 封存檔 + LHZ 归档文件 + LHZ 封存檔 - + message catalog + boodskaplêer كتالوج الرسالة - kataloh paviedamleńniaŭ + kataloh paviedamleńniaŭ Каталог със съобщения catàleg de missatges katalog zpráv meddelelseskatalog Nachrichtenkatalog Κατάλογος μηνυμάτων - message catalogue + message catalogue katalogo de mesaĝoj catálogo de mensajes mezuen katalogoa viestiluettelo boðskrá catalogue de messages + catalic di messaçs catalóg theachtaireachtaí catálogo de mensaxes קטלוג הודעות @@ -14860,7 +15442,7 @@ catalòg de messatges Katalog wiadomości catálogo de mensagens - Catálogo de mensagens + Catálogo de mensagens catalog de mesaje Каталог сообщений Katalóg správ @@ -14871,34 +15453,37 @@ ileti kataloğu каталог повідомлень phân loại thông điệp - 消息库 - 訊息目錄 + 消息库 + 訊息目錄 - + + - + LyX document + LyX-dokument مستند LyX Documentu de Lyx - Dakument LyX + Dakument LyX Документ — LyX document LyX dokument LyX LyX-dokument LyX-Dokument Έγγραφο LyX - LyX document + LyX document LyX-dokumento documento de LyX LyX dokumentua LyX-asiakirja LyX skjal document LyX + document LyX cáipéis LyX documento LyX מסמך Lyx @@ -14919,7 +15504,7 @@ document LyX Dokument LyX documento LyX - Documento LyX + Documento LyX Document LyX Документ LyX Dokument LyX @@ -14930,28 +15515,31 @@ LyX belgesi документ LyX Tài liệu LyX - LyX 文档 - LyX 文件 + LyX 文档 + LyX 文件 - + LZ4 archive + LZ4-argief + Архив — LZ4 arxiu LZ4 archiv LZ4 LZ4-arkiv LZ4-Archiv Συμπιεσμένο αρχείο LZ4 - LZ4 archive + LZ4 archive archivador LZ4 LZ4 artxiboa LZ4-arkisto archive LZ4 + archivi LZ4 Cartlann LZ4 Arquivo LZ4 ארכיון LZ4 @@ -14965,7 +15553,7 @@ archiu LZ4 Archiwum LZ4 arquivo LZ4 - Pacote LZ4 + Pacote LZ4 Архив LZ4 Archív LZ4 Datoteka arhiva LZ4 @@ -14973,64 +15561,69 @@ LZ4-arkiv LZ4 arşivi архів LZ4 - LZ4 归档文件 - LZ4 封存檔 + LZ4 归档文件 + LZ4 封存檔 - - + + Tar archive (LZ4-compressed) + Tar-argief (LZ4-saamgepers) + Архив — tar, компресиран с LZ4 arxiu tar (amb compressió LZ4) archiv Tar (komprimace LZ4) Tar-arkiv (LZ4-komprimeret) Tar-Archiv (LZ4-komprimiert) - Tar archive (LZ4-compressed) + Tar archive (LZ4-compressed) archivador Tar (comprimido con LZ4) Tar artxiboa (LZ4-rekin konprimatua) Tar-arkisto (LZ4-pakattu) archive tar (compression LZ4) + archivi Tar (comprimût cun LZ4) cartlann Tar (comhbhrúite le LZ4) ארכיון Tar (מכווץ ע״י LZ4) Tar arhiva (LZ4 sažeto) - Tar archívum (LZ4-el tömörítve) - arsip tar (terkompresi LZ4) + Tar archívum (LZ4 tömörítésű) + Arsip tar (terkompresi LZ4) Archivio tar (compresso con LZ4) Tar архиві (LZ4-пен сығылған) Tar 묶음 파일(LZ4 압축) Archiwum tar (kompresja LZ4) - Arquvio Tar (compactado com LZ4) + Arquivo Tar (compactado com LZ4) Архив TAR (сжатый lz4) - Archív tar (komprimovaný pomocou LZ4) + Archív Tar (komprimovaný pomocou LZ4) Тар архива (запакована ЛЗ4-ом) Tar-arkiv (LZ4-komprimerat) Tar arşivi (LZ4 ile sıkıştırılmış) архів tar (стиснений LZ4) - Tar 归档文件(LZ4 压缩) - Tar 封存檔 (LZ4 格式壓縮) + Tar 归档文件(LZ4 压缩) + Tar 封存檔 (LZ4 壓縮) Lzip archive + Lzip-argief أرشيف Lzip - Архив — lzip + Архив — Lzip arxiu lzip archiv Lzip Lzip-arkiv Lzip-Archiv Συμπιεσμένο αρχείο Lzip - Lzip archive + Lzip archive Lzip-arkivo archivador Lzip Lzip artxiboa Lzip-arkisto Lzip skjalasavn archive lzip + archivi Lzip cartlann Lzip arquivo Lzip ארכיון Lzip @@ -15048,7 +15641,7 @@ archiu lzip Archiwum lzip arquivo LZip - Pacote Lzip + Pacote Lzip Arhivă Lzip Архив LZIP Archív Lzip @@ -15057,96 +15650,105 @@ Lzip-arkiv Lzip arşivi архів lzip - Lzip 归档文件 - Lzip 封存檔 + Lzip 归档文件 + Lzip 封存檔 - + Tar archive (lzip-compressed) + Tar-argief (lzip-saamgepers) + Архив — tar, компресиран с Lzip arxiu tar (amb compressió lzip) archiv Tar (komprimace lzip) Tar-arkiv (lzip-komprimeret) Tar-Archiv (lzip-komprimiert) - Tar archive (lzip-compressed) + Tar archive (lzip-compressed) archivador Tar (comprimido con lzip) Tar artxiboa (lzip-rekin konprimatua) Tar-arkisto (lzip-pakattu) archive tar (compressée lzip) + archivi Tar (comprimût cun lzip) cartlann Tar (comhbhrúite le lzip) ארכיון Tar (מכווץ ע״י lzip) Tar arhiva (lzip sažeto) - Tar archívum (lzippel tömörítve) - arsip tar (terkompresi lzip) + Tar archívum (lzip tömörítésű) + Arsip tar (terkompresi lzip) Archivio tar (compresso con lzip) Tar архиві (lzip-пен сығылған) TAR 묶음 파일(LZIP 압축) Archiwum tar (kompresja lzip) - Arquivo Tar (compactado com lzip) + Arquivo Tar (compactado com lzip) Архив TAR (сжатый lzip) - Archív tar (komprimovaný pomocou lzip) + Archív Tar (komprimovaný pomocou lzip) Тар архива (запакована лзипом) Tar-arkiv (lzip-komprimerat) Tar arşivi (lzip ile sıkıştırılmış) архів tar (стиснений lzip) - Tar 归档文件(lzip 压缩) - Tar 封存檔 (lzip 格式壓縮) + Tar 归档文件(lzip 压缩) + Tar 封存檔 (lzip 壓縮) PDF document (lzip-compressed) + PDF-dokument (lzip-saamgepers) Documentu PDF (comprimíu en lzip) + Документ — PDF, компресиран с Lzip document PDF (amb compressió lzip) dokument PDF (komprimace lzip) + PDF-dokument (lzip-komprimeret) PDF-Dokument (lzip-komprimiert) - PDF document (lzip-compressed) + PDF document (lzip-compressed) documento PDF (comprimido con lzip) PDF dokumentua (lzip-rekin konprimitua) PDF-asiakirja (lzip-pakattu) document PDF (compressé lzip) + document PDF (comprimût cun lzip) cáipéis PDF (comhbhrúite le lzip) PDF dokument (lzip sažeto) - PDF dokumentum (lzip-tömörítésű) - dokumen PDF (termkompresi lzip) + PDF dokumentum (lzip tömörítésű) + Dokumen PDF (termkompresi lzip) Documento PDF (compresso con lzip) PDF құжаты (lzip-пен сығылған) PDF 문서(LZIP 압축) Dokument PDF (kompresja lzip) - Documento PDF (compactado com lzip) + Documento PDF (compactado com lzip) Документ PDF (сжатый lzip) Dokument PDF (komprimovaný pomocou lzip) ПДФ документ (запакован лзип-ом) PDF-dokument (lzip-komprimerat) PDF belgesi (lzip ile sıkıştırılmış) документ PDF (стиснений lzip) - PDF 文档(lzip 压缩) - PDF 文件 (lzip 格式壓縮) + PDF 文档(lzip 压缩) + PDF 文件 (lzip 壓縮) LZMA archive + LZMA-argief أرشيف LZMA - Archiŭ LZMA + Archiŭ LZMA Архив — LZMA arxiu LZMA archiv LZMA LZHA-arkiv LZMA-Archiv Συμπιεσμένο αρχείο LZMA - LZMA archive + LZMA archive LZMA-arkivo archivador LZMA LZMA artxiboa LZMA-arkisto LZMA skjalasavn archive LZMA + archivi LZMA cartlann LZMA arquivo LZMA ארכיון LZMA @@ -15166,7 +15768,7 @@ archiu LZMA Archiwum LZMA arquivo LZMA - Pacote LZMA + Pacote LZMA Arhivă LZMA Архив LZMA Archív LZMA @@ -15177,8 +15779,8 @@ LZMA arşivi архів LZMA Kho nén LZMA - LZMA 归档文件 - LZMA 封存檔 + LZMA 归档文件 + LZMA 封存檔 LZMA Lempel-Ziv-Markov chain-Algorithm @@ -15186,25 +15788,27 @@ Tar archive (LZMA-compressed) + Tar-argief (LZMA-saamgepers) أرشيف Tar (مضغوط-LZMA) - Archiŭ tar (LZMA-skampresavany) + Archiŭ tar (LZMA-skampresavany) Архив — tar, компресиран с LZMA arxiu tar (amb compressió LZMA) archiv Tar (komprimace LZMA) Tar-arkiv (LZMA-komprimeret) Tar-Archiv (LZMA-komprimiert) Αρχείο Tar (συμπιεσμένο με LZMA) - Tar archive (LZMA-compressed) + Tar archive (LZMA-compressed) archivador Tar (comprimido con LZMA) Tar artxiboa (LZMA-rekin konprimitua) Tar-arkisto (LZMA-pakattu) Tar skjalasavn (LZMA-stappað) archive tar (compression LZMA) + archivi Tar (comprimût cun LZMA) cartlann Tar (comhbhrúite le LZMA) arquivo Tar (comprimido con LZMA) ארכיון Tar (מכווץ ע״י LZMA) Tar arhiva (LZMA sažeta) - Tar archívum (LZMA-val tömörítve) + Tar archívum (LZMA tömörítésű) Archivo Tar (comprimite con LZMA) Arsip Tar (terkompresi LZMA) Archivio tar (compresso con LZMA) @@ -15219,10 +15823,10 @@ archiu tar (compression LZMA) Archiwum tar (kompresja LZMA) arquivo Tar (compressão LZMA) - Pacote Tar (compactado com LZMA) + Pacote Tar (compactado com LZMA) Arhivă Tar (comprimată LZMA) Архив TAR (сжатый lzma) - Archív tar (komprimovaný pomocou LZMA) + Archív Tar (komprimovaný pomocou LZMA) Datoteka arhiva Tar (stisnjen z LZMA) Arkiv tar (i kompresuar me LZMA) Тар архива (запакована ЛЗМА-ом) @@ -15230,8 +15834,8 @@ Tar arşivi (LZMA ile sıkıştırılmış) архів tar (стиснений LZMA) Kho nén tar (đã nén LZMA) - Tar 归档文件(LZMA 压缩) - Tar 封存檔 (LZMA 格式壓縮) + Tar 归档文件(LZMA 压缩) + Tar 封存檔 (LZMA 壓縮) @@ -15239,21 +15843,23 @@ LZO archive + LZO-argief أرشيف LZO - Archiŭ LZO + Archiŭ LZO Архив — LZO arxiu LZO archiv LZO LZO-arkiv LZO-Archiv Συμπιεσμένο αρχείο LZO - LZO archive + LZO archive LZO-arkivo archivador LZO LZO artxiboa LZO-arkisto LZO skjalasavn archive LZO + archivi LZO cartlann LZO arquivo LZO ארכיון LZO @@ -15274,7 +15880,7 @@ archiu LZO Archiwum LZO arquivo LZO - Pacote LZO + Pacote LZO Arhivă LZO Архив LZO Archív LZO @@ -15285,27 +15891,31 @@ LZO arşivi архів LZO Kho nén LZO - LZO 归档文件 - LZO 封存檔 + LZO 归档文件 + LZO 封存檔 LZO Lempel-Ziv-Oberhumer - + Qpress archive + Qpress-argief + Архив — Qpress arxiu Qpress archiv Qpress Qpress-arkiv Qpress-Archiv Συμπιεσμένο αρχείο Qpress - Qpress archive + Qpress archive archivador de Qpress + Qpress artxiboa Qpress-arkisto Archive Qpress + archivi Qpress cartlann Qpress Arquivo Qpress ארכיון Qpress @@ -15319,7 +15929,7 @@ Archiu Qpress Archiwum Qpress arquivo Qpress - Pacote Qpress + Pacote Qpress Архив Qpress Archív Qpress Datoteka arhiva Qpress @@ -15327,25 +15937,28 @@ Qpress-arkiv Qpress arşivi архів Qpress - Qpress 归档文件 - Qpress 封存檔 + Qpress 归档文件 + Qpress 封存檔 - + XAR archive + XAR-argief + Архив — XAR arxiu XAR archiv XAR XAR-arkiv XAR-Archiv - XAR archive + XAR archive archivador XAR XAR artxiboa XAR-arkisto archive XAR + archivi XAR cartlann XAR ארכיון XAR XAR arhiva @@ -15356,36 +15969,40 @@ XAR 아카이브 Archiu XAR Archiwum XAR - Arquivo XAR + Arquivo XAR Архив XAR Archív XAR ИксАР архива XAR-arkiv XAR arşivi архів XAR - XAR 归档文件 - XAR 封存檔 + XAR 归档文件 + XAR 封存檔 XAR eXtensible ARchive - + - + Zlib archive + Zlib-argief + Архив — Zlib arxiu Zlib archiv Zlib Zlib-arkiv Zlib-Archiv Συμπιεσμένο αρχείο Zlib - Zlib archive + Zlib archive archivador Zlib + Zlib artxiboa Zlib-arkisto Archive Zlib + archivi Zlib cartlann Zlib Arquivo Zlib ארכיון Zlib @@ -15399,7 +16016,7 @@ Archiu Zlib Archiwum Zlib arquivo Zlib - Pacote Zlib + Pacote Zlib Архив Zlib Archív Zlib Datoteka arhiva Zlib @@ -15407,15 +16024,16 @@ Zlib-arkiv Zlib arşivi архів zlib - Alzip 归档文件 - Zlib 封存檔 + Alzip 归档文件 + Zlib 封存檔 MagicPoint presentation + MagicPoint-voorlegging عرض تقديمي MagicPoint - Prezentacyja MagicPoint + Prezentacyja MagicPoint Презентация — MagicPoint presentació de MagicPoint prezentace MagicPoint @@ -15423,13 +16041,14 @@ MagicPoint-præsentation MagicPoint-Präsentation Παρουσίαση MagicPoint - MagicPoint presentation + MagicPoint presentation MagicPoint-prezentaĵo presentación de MagicPoint MagicPoint aurkezpena MagicPoint-esitys MagicPoint framløga présentation MagicPoint + presentazion MagicPoint láithreoireacht MagicPoint presentación de MagicPoint מצגת MagicPoint @@ -15451,7 +16070,7 @@ presentacion MagicPoint Prezentacja programu MagicPoint apresentação MagicPoint - Apresentação do MagicPoint + Apresentação do MagicPoint Prezentare MagicPoint Презентация MagicPoint Prezentácia MagicPoint @@ -15462,29 +16081,31 @@ MagicPoint sunumu презентація MagicPoint Trình diễn MagicPoint - MagicPoint 演示文稿 - MagicPoint 簡報檔 + MagicPoint 演示文稿 + MagicPoint 簡報 Macintosh MacBinary file + Macintosh MacBinary-lêer ملف Macintosh MacBinary - Fajł Macintosh MacBinary + Fajł Macintosh MacBinary Файл — MacBinary fitxer MacBinary de Macintosh soubor MacBinary pro Macintosh Macintosh MacBinary-fil Macintosh-MacBinary-Datei Εκτελέσιμο Macintosh MacBinary - Macintosh MacBinary file + Macintosh MacBinary file MacBinary-dosiero de Macintosh archivo de Macintosh MacBinary Macintosh MacBinary fitxategia Macintosh MacBinary -tiedosto Macintosh MacBinary fíla fichier Macintosh MacBinary + file MacBinary di Macintosh comhad Macintosh MacBinary ficheiro MacBinary de Macintosh קובץ בינרי של מקינטוש @@ -15505,7 +16126,7 @@ fichièr Macintosh MacBinary Plik MacBinary Macintosh ficheiro MacBinary de Macintosh - Arquivo do Macintosh MacBinary + Arquivo do Macintosh MacBinary Fișier Macintosh MacBinary Файл Macintosh MacBinary Súbor pre Macintosh MacBinary @@ -15516,29 +16137,31 @@ Macintosh MacBinary dosyası файл Macintosh MacBinary Tập tin nhị phân MacBinary của Macintosh - Macintosh MacBinary 文件 - Macintosh MacBinary 檔 + Macintosh MacBinary 文件 + Macintosh MacBinary 檔 - + Matroska stream + Matroska-stroom دفق Matroska - Płyń Matroska + Płyń Matroska Поток — Matroska flux Matroska proud Matroska - Matroskastrøm + Matroska-strøm Matroska-Datenstrom Ροή Matroska - Matroska stream + Matroska stream flujo Matroska Matroska korrontea Matroska-virta Matroska streymur flux Matroska + flus Matroska sruth Matroska fluxo de Matroska זרימת Matroska @@ -15558,7 +16181,7 @@ flux Matroska Strumień Matroska fluxo Matroska - Transmissão do Matroska + Transmissão do Matroska Flux Matroska Поток Matroska Stream Matroska @@ -15569,38 +16192,40 @@ Matroska akışı потік даних Matroska Luồng Matroska - Matroska 流 - Matroska 串流 + Matroska 流 + Matroska 串流 - - - - - - + + + + + + Matroska video + Matroska-video Matroska مرئي Videu en Matroska - Videa Matroska + Videa Matroska Видео — Matroska vídeo Matroska video Matroska - Matroskavideo + Matroska-video Matroska-Video Βίντεο Matroska - Matroska video + Matroska video Matroska-video vídeo Matroska Matroska bideoa Matroska-video Matroska video vidéo Matroska + video Matroska físeán Matroska vídeo de Matroska וידאו Matroska @@ -15622,7 +16247,7 @@ vidèo Matroska Plik wideo Matroska vídeo Matroska - Vídeo Matroska + Vídeo Matroska Video Matroska Видео Matroska Video Matroska @@ -15633,24 +16258,27 @@ Matroska video відеокліп Matroska Ảnh động Matroska - Matroska 视频 - Matroska 視訊 + Matroska 视频 + Matroska 視訊 Matroska 3D video + Matroska 3D video Videu en Matroska 3D + Видео — Matroska 3D vídeo Matroska 3D 3D video Matroska Matroska 3D-video Matroska 3D-Video Βίντεο 3Δ Matroska - Matroska 3D video + Matroska 3D video vídeo Matroska en 3D Matroska 3D bideoa Matroska 3D-video vidéo Matroska 3D + video 3D Matroska físeán Matroska 3D Video Matroska 3D סרטון תלת ממדי מסוג Matroska @@ -15664,7 +16292,7 @@ vidèo Matroska 3D Plik wideo Matroska 3D vídeo 3D Matroska - Vídeo 3D Matroska + Vídeo 3D Matroska Видео Matroska 3D 3D video Matroska Video datoteka Matroska 3D @@ -15672,28 +16300,30 @@ Matroska 3D-video Matroska 3B video відеокліп Matroska 3D - Matroska 3D 视频 - Matroska 3D 視訊 + Matroska 3D 视频 + Matroska 3D 視訊 Matroska audio + Matroska-oudio سمعي Matroska - Aŭdyjo Matroska + Aŭdyjo Matroska Аудио — Matroska - àudio de Matroska + àudio Matroska zvuk Matroska - Matroskalyd + Matroska-lyd Matroska-Audio Ήχος Matroska - Matroska audio + Matroska audio Matroska-sondosiero - sonido Matroska + audio Matroska Matroska audioa Matroska-ääni Matroska ljóður audio Matroska + audio Matroska fuaim Matroska son de Matroska שמע Matroska @@ -15714,7 +16344,7 @@ àudio Matroska Plik dźwiękowy Matroska áudio Matroska - Áudio Matroska + Áudio Matroska Audio Matroska Аудио Matroska Zvuk Matroska @@ -15725,13 +16355,14 @@ Matroska ses звук Matroska Âm thanh Matroska - Matroska 音频 - Matroska 音訊 + Matroska 音频 + Matroska 音訊 WebM video + WebM-video WebM مرئي Videu en WebM Видео — WebM @@ -15740,13 +16371,14 @@ WebM-video WebM-Video Βίντεο WebM - WebM video + WebM video WebM-video vídeo WebM WebM bideoa WebM-video WebM video vidéo WebM + video WebM físeán WebM vídeo WebM וידאו WebM @@ -15764,7 +16396,7 @@ vidèo WebM Plik wideo WebM vídeo WebM - Vídeo WebM + Vídeo WebM Video WebM Видео WebM Video WebM @@ -15773,36 +16405,38 @@ WebM-video WebM video відео WebM - WebM 视频 - WebM 視訊 + WebM 视频 + WebM 視訊 - - - - - - + + + + + + WebM audio + WebM-oudio WebM سمعي Аудио — WebM - àudio de WebM + àudio WebM zvuk WebM WebM-lyd WebM-Audio Ήχος WebM - WebM audio + WebM audio WebM-sondosiero - sonido WebM + audio WebM WebM audioa WebM-ääni WebM ljóður audio WebM + audio WebM fuaim WebM son WebM שמע WebM @@ -15820,7 +16454,7 @@ àudio WebM Plik dźwiękowy WebM áudio WebM - Áudio WebM + Áudio WebM Audio WebM Аудио WebM Zvuk WebM @@ -15829,22 +16463,25 @@ WebM-ljud WebM sesi звук WebM - WebM 音频 - WebM 音訊 + WebM 音频 + WebM 音訊 MHTML web archive + MHTML-webargief + Архив — MHTML arxiu web MHTML webový archiv MHTML - MHTML-netarkiv + MHTML-webarkiv MHTML-Webarchiv Συμπιεσμένο αρχείο ιστού MHTML - MHTML web archive + MHTML web archive archivador web MHTML MHTML web artxiboa MHTML-kooste archive web MHTML + archivi web MHTML cartlann ghréasáin MHTML Arquivo web MHTML ארכיון רשת MHTML @@ -15860,7 +16497,7 @@ archiu web MHTML Archiwum witryny MHTML arquivo web MHTML - Pacote web MHTML + Pacote web MHTML Веб-архив MHTML Webový archív MHTML Spletni arhiv MHTML @@ -15868,8 +16505,8 @@ MHTML-webbarkiv MHTML web arşivi вебархів MHTML - MHTML 网络归档 - MHTML 網頁封存檔 + MHTML 网络归档 + MHTML 網頁封存檔 MHTML MIME HTML @@ -15878,6 +16515,7 @@ MXF video + MXF-video MXF مرئي Videu en MXF Видео — MXF @@ -15886,13 +16524,14 @@ MXF-video MXF-Video Βίντεο MXF - MXF video + MXF video MXF-video vídeo MXF MXF bideoa MXF-video MXF video vidéo MXF + video MXF físeán MXF vídeo MXF וידאו MXF @@ -15911,7 +16550,7 @@ vidèo MXF Plik wideo MXF vídeo MXF - Vídeo MXF + Vídeo MXF Video MXF Видео MXF Video MXF @@ -15920,33 +16559,35 @@ MXF-video MXF video відеокліп MXF - MXF 视频 - MXF 視訊 + MXF 视频 + MXF 視訊 MXF Material Exchange Format - + OCL file + OCL-lêer ملف OCL - Fajł OCL + Fajł OCL Файл — OCL fitxer OCL soubor OCL OCL-fil OCL-Datei Αρχείο OCL - OCL file + OCL file OCL-dosiero archivo OCL OCL fitxategia OCL-tiedosto OCL fíla fichier OCL + file OCL comhad OCL ficheiro OCL קובץ OCL @@ -15966,7 +16607,7 @@ fichièr OCL Plik OCL ficheiro OCL - Arquivo OCL + Arquivo OCL Fișier OCL Файл OCL Súbor OCL @@ -15977,54 +16618,39 @@ OCL dosyası файл OCL Tập tin OCL - OCL 文件 - OCL 檔 + OCL 文件 + OCL 檔 OCL Object Constraint Language - COBOL source file + COBOL source code Изходен код — COBOL codi font en COBOL - zdrojový soubor COBOL - COBOL-kildefil - COBOL-Quelldatei - Πηγαίο αρχείο COBOL - COBOL source file - COBOL-fontdosiero - archivo fuente de COBOL + COBOL-kildekode + COBOL-Quelltext + COBOL source code + código fuente en COBOL COBOL iturburu-kodea COBOL-lähdekoodi - fichier source COBOL - cód foinseach COBOL - ficheiro fonte de COBOL - קובץ מקור של COBOL - COBOL izvorna datoteka - COBOL forrásfájl - File de codice fonte COBOL - Berkas sumber COBOL - File sorgente COBOL - COBOL ソースファイル - COBOL-ის საწყისი ფაილი + code source COBOL + COBOL izvorni kôd + COBOL forráskód + Kode sumber COBOL + Codice sorgente COBOL COBOL бастапқы коды - COBOL 소스 파일 - COBOL pirmkods - COBOL bronbestand - fichièr font COBOL - Plik źródłowy COBOL - ficheiro origem COBOL - Arquivo de código-fonte em COBOL - Файл исходного кода на COBOL - Zdrojový súbor COBOLu - Izvorna koda COBOL - изворна датотека КОБОЛ-а - COBOL-källkodsfil - COBOL kaynak dosyası + 코볼 소스 코드 + Kod źródłowy COBOL + Código-fonte COBOL + Исходный код COBOL + Zdrojový kód COBOL + COBOL-källkod + COBOL kaynak kodu вихідний код мовою COBOL - COBOL 源文件 - COBOL 源檔 + COBOL 源代码 + COBOL 原始碼 COBOL COmmon Business Oriented Language @@ -16033,24 +16659,26 @@ Mobipocket e-book + Mobipocket e-boek Е-книга — Mobipocket llibre electrònic Mobipocket elektronická kniha Mobipocket Mobipocket e-bog Mobipocket E-Book Ηλεκτρονικό βιβλίο Mobipocket - Mobipocket e-book + Mobipocket e-book libro electrónico de Mobipocket Mobipocket liburua Mobipocket e-kirja livre numérique Mobipocket + e-book Mobipocket r-leabhar Mobipocket E-book Mobipocket ספר אלקטרוני של Mobipocket Mobipocket e-knjiga Mobipocket e-könyv E-libro Mobipocket - e-book Mobipocket + E-book Mobipocket E-book Mobipocket Mobipocket 電子書籍 Mobipocket-ის ელწიგნი @@ -16061,7 +16689,7 @@ libre numeric Mobipocket E-book Mobipocket ebook Mobipocket - E-book Mobipocket + E-book Mobipocket Электронная книга Mobipocket E-kniha Mobipocket e-knjiga Mobipocket @@ -16069,38 +16697,40 @@ Mobipocket-e-bok Mobipocket e-kitap електронна книга Mobipocket - Mobipocket 电子书 - Mobipocket e-book + Mobipocket 电子书 + Mobipocket e-book - - + + - + Adobe FrameMaker MIF document + Adobe FrameMaker MIF-dokument مستند أدوبي الصانع للإطارات MIF Documentu MIF d'Adobe FrameMaker - Dakument Adobe FrameMaker MIF + Dakument Adobe FrameMaker MIF Документ — Adobe FrameMaker MIF document MIF d'Adobe FrameMaker dokument Adobe FrameMaker MIF Adobe FrameMaker MIF-dokument Adobe-FrameMaker-MIF-Dokument Έγγραφο MIF του Adobe FrameMaker - Adobe FrameMaker MIF document + Adobe FrameMaker MIF document MIF-dokumento de Adobe FrameMaker documento MIF de Adobe FrameMaker Adobe FrameMaker-en MIF dokumentua Adobe FrameMaker MIF -asiakirja Adobe FrameMaker MIF skjal document MIF Adobe FrameMaker + document MIF di Adobe FrameMaker cáipéis MIF Adobe FrameMaker documento MIF de Adobe FrameMaker מסמך MIF של Adobe FrameMaker @@ -16121,7 +16751,7 @@ document MIF Adobe FrameMaker Dokument MIF Adobe FrameMaker documento Adobe FrameMaker MIF - Documento MIF do Adobe FrameMaker + Documento MIF do Adobe FrameMaker Document Adobe FrameMaker MIF Документ Adobe FrameMaker MIF Dokument Adobe FrameMaker MIF @@ -16132,27 +16762,29 @@ Adobe FrameMaker MIF belgesi документ Adobe FrameMaker MIF Tài liệu Adobe FrameMaker MIF - Adobe FrameMaker MIF 文档 - Adobe FrameMaker MIF 文件 + Adobe FrameMaker MIF 文档 + Adobe FrameMaker MIF 文件 Mozilla bookmarks + Mozilla-boekmerke علامات موزيلا - Zakładki Mozilla + Zakładki Mozilla Отметки — Mozilla llista d'adreces d'interès de Mozilla záložky Mozilla Mozillabogmærker Mozilla-Lesezeichen Σελιδοδείκτες Mozilla - Mozilla bookmarks + Mozilla bookmarks Mozilla-legosignoj marcadores de Mozilla Mozillako laster-markak Mozilla-kirjanmerkit Mozilla bókamerki marque-pages Mozilla + segnelibris Mozilla leabharmharcanna Mozilla Marcadores de Mozilla סימניה של Mozilla @@ -16173,7 +16805,7 @@ marcapaginas Mozilla Zakładki Mozilla marcadores do Mozilla - Favoritos do Mozilla + Favoritos do Mozilla Semne de carte Mozilla Закладки Mozilla Záložky Mozilla @@ -16184,32 +16816,34 @@ Mozilla yer imleri закладки Mozilla Liên kết đã lưu Mozilla - Mozilla 书签 - Mozilla 書籤 + Mozilla 书签 + Mozilla 書籤 - + DOS/Windows executable + DOS/Windows-uitvoerbaar تنفيذي DOS/Windows - Vykonvalny fajł DOS/Windows + Vykonvalny fajł DOS/Windows Изпълним файл — DOS/Windows executable de DOS o de Windows spustitelný soubor pro DOS/Windows DOS-/Windowskørbar DOS/Windows-Programmdatei Εκτελέσιμο DOS/Windows - DOS/Windows executable + DOS/Windows executable DOS/Windows-plenumebla ejecutable de DOS/Windows DOS/Windows-eko exekutagarria DOS/Windows-ohjelma DOS/Windows inningarfør exécutable DOS/Windows + eseguibil DOS/Windows comhad inrite DOS/Windows executábel de DOS/Windows קובץ בר־הרצה של DOS/חלונות @@ -16231,7 +16865,7 @@ executable DOS/Windows Program DOS/Windows executável DOS/Windows - Executável do DOS/Windows + Executável do DOS/Windows Executabil DOS/Windows Исполняемый файл DOS/Windows Spustiteľný súbor pre DOS/Windows @@ -16239,33 +16873,35 @@ I ekzekutueshëm DOS/Windows ДОС/Виндоуз извршна Körbar DOS/Windows-fil - DOS/Windows çalıştırılabilir + DOS/Windows çalıştırılabiliri виконуваний файл DOS/Windows Tập tin có thực hiện được DOS/Windows - DOS/Windows 可执行文件 - DOS/Windows 可執行檔 + DOS/Windows 可执行文件 + DOS/Windows 可執行檔 - + Internet shortcut + Internet-kortpad اختصار الإنترنت - Sieciŭnaja spasyłka + Sieciŭnaja spasyłka Адрес в Интернет drecera d'Internet odkaz do Internetu Internetgenvej Internet-Verweis Συντόμευση διαδικτύου - Internet shortcut + Internet shortcut acceso directo a Internet Interneteko lasterbidea Internet-pikakuvake Alnetssnarvegur raccourci Internet + scurte di internet aicearra Idirlín atallo de Internet קיצור דרך של האינטרנט @@ -16285,7 +16921,7 @@ acorchi Internet Skrót internetowy atalho da Internet - Atalho da Internet + Atalho da Internet Scurtătură Internet Интернет-ссылка Internetový odkaz @@ -16296,34 +16932,36 @@ İnternet kısayolu інтернет-посилання Lối tắt Internet - Internet 快捷方式 - 網際網路捷徑 + Internet 快捷方式 + 網際網路捷徑 - - - + + + WRI document + WRI-dokument مستند WRI Documentu WRI - Dakument WRI + Dakument WRI Документ — WRI document WRI dokument WRI WRI-dokument WRI-Dokument Έγγραφο WRI - WRI document + WRI document WRI-dokumento documento WRI WRI dokumentua WRI-asiakirja WRI skjal document WRI + document WRI cáipéis WRI documento WRI מסמך WRI @@ -16343,7 +16981,7 @@ document WRI Dokument WRI documento WRI - Documento WRI + Documento WRI Document WRI Документ WRI Dokument WRI @@ -16354,29 +16992,30 @@ WRI belgesi документ WRI Tài liệu WRI - WRI 文档 - WRI 文件 + WRI 文档 + WRI 文件 MSX ROM MSX ROM - MSX ROM + MSX ROM ROM — MSX ROM de MSX ROM pro MSX ROM MSX - MSX-rom + MSX-ROM MSX ROM MSX ROM - MSX ROM + MSX ROM MSX-NLM ROM de MSX MSX-ko ROMa MSX-ROM MSX ROM ROM MSX + ROM MSX ROM MSX ROM de MSX MSX ROM @@ -16398,7 +17037,7 @@ ROM MSX Plik ROM konsoli MSX ROM MSX - ROM de MSX + ROM de MSX ROM MSX MSX ROM ROM pre MSX @@ -16409,27 +17048,29 @@ MSX ROM ППП MSX ROM MSX - MSX ROM - MSX ROM + MSX ROM + MSX ROM M4 macro + M4-makro M4 macro - Makras M4 + Makras M4 Макроси — M4 macro M4 makro M4 M4-makro M4-Makro Μακροεντολή m4 - M4 macro + M4 macro macro M4 M4 makroa M4-makro M4 fjølvi macro M4 + macro M4 macra M4 macro M4 מאקרו M4 @@ -16449,7 +17090,7 @@ macro M4 Makro M4 macro M4 - Macro M4 + Macro M4 Macro M4 Макрос M4 Makro M4 @@ -16460,8 +17101,8 @@ M4 makrosu макрос M4 Vĩ lệnh M4 - M4 宏 - M4 巨集 + M4 宏 + M4 巨集 @@ -16469,20 +17110,21 @@ Nintendo64 ROM Nintendo64 ROM - Nintendo64 ROM + Nintendo64 ROM ROM — Nintendo64 ROM de Nintendo64 ROM pro Nintendo64 - Nintendo64-rom + Nintendo64-ROM Nintendo64 ROM Nintendo64 ROM - Nintendo64 ROM + Nintendo64 ROM Nintendo64-NLM ROM de Nintendo64 Nintendo64-ko ROMa Nintendo64-ROM Nintendo64 ROM ROM Nintendo64 + ROM Nintendo64 ROM Nintendo64 ROM de Nintendo64 ROM של Nintendo64 @@ -16503,7 +17145,7 @@ ROM Nintendo64 Plik ROM konsoli Nintendo64 ROM Nintendo64 - ROM de Nintendo64 + ROM de Nintendo64 ROM Nintendo64 Nintendo64 ROM ROM pre Nintendo64 @@ -16514,26 +17156,27 @@ Nintendo64 ROM ППП Nintendo64 ROM Nintendo64 - 任天堂 64 ROM - Nintendo64 ROM + 任天堂 64 ROM + Nintendo64 ROM - - - - - - + + + + + + Nautilus link + Nautilus-skakel وصلة Nautilus Nautilus körpüsü - Spasyłka Nautilus + Spasyłka Nautilus Връзка — Nautilus enllaç de Nautilus odkaz Nautilus @@ -16541,13 +17184,14 @@ Nautilus-henvisning Nautilus-Verknüpfung Σύνδεσμος Nautilus - Nautilus link + Nautilus link Nautilus-ligilo enlace de Nautilus Nautilus esteka Nautilus-linkki Nautilus leinkja lien Nautilus + colegament Nautilus nasc Nautilus ligazón de nautilus קישור של Nautilus @@ -16568,7 +17212,7 @@ ligam Nautilus Odnośnik Nautilus atalho Nautilus - Link do Nautilus + Link do Nautilus Legătură Nautilus Ссылка Nautilus Odkaz Nautilus @@ -16579,25 +17223,27 @@ Nautilus bağlantısı посилання Nautilus Liên kết Nautilus - Nautilus 链接 - Nautilus 鏈結 + Nautilus 链接 + Nautilus 連結 - + Neo-Geo Pocket ROM + ROM — Neo-Geo Pocket ROM de Neo-Geo Pocket ROM pro Neo-Geo Pocket - Neo-Geo Pocket ROM + Neo-Geo Pocket-ROM Neo-Geo Pocket ROM - Neo-Geo Pocket ROM + Neo-Geo Pocket ROM ROM de Neo-Geo Pocket Neo-Geo Pocket ROM Neo-Geo Pocket -ROM ROM Neo-Geo Pocket + ROM Neo-Geo Pocket ROM Neo-Geo Pocket Neo-Geo Pocket ROM Neo-Geo Pocket ROM @@ -16606,54 +17252,82 @@ Neo-Geo Pocket ROM 네오지오 포켓 롬 Plik ROM konsoli Neo-Geo Pocket - ROM de Neo-Geo Pocket + ROM de Neo-Geo Pocket Neo-Geo Pocket ROM ROM pre Neo-Geo Pocket Нео-Гео Покет РОМ Neo-Geo Pocket-rom Neo-Geo Pocket ROM ППП Neo-Geo Pocket - Neo-Geo Pocket ROM - Neo-Geo Pocket ROM + Neo-Geo Pocket ROM + Neo-Geo Pocket ROM - - - + + + Neo-Geo Pocket Color ROM + ROM — Neo-Geo Pocket Color + ROM de Neo-Geo Pocket Color + ROM pro Neo-Geo Pocket Color + Neo-Geo Pocket Color-ROM + Neo-Geo Pocket Color ROM + Neo-Geo Pocket Colour ROM + ROM de Neo-Geo Pocket Color + Neo-Geo Pocket Color ROM + Neo-Geo Pocket Color ROM + ROM Neo-Geo Pocket Color + ROM Neo-Geo Pocket Color + ROM datha Neo-Geo Pocket + Neo-Geo Pocket Color ROM + Neo-Geo Pocket Color ROM + ROM Neo-Geo Pocket Color + ROM Neo-Geo Pocket Color + Neo-Geo Pocket Color ROM + 네오지오 포켓 컬러 롬 + Plik ROM konsoli Neo-Geo Pocket Color + ROM de Neo-Geo Pocket Color + Neo-Geo Pocket Color ROM + ROM pre Neo-Geo Pocket Color + Neo-Geo Pocket Color ROM + Neo-Geo Pocket Color ROM + ППП Neo-Geo Pocket Color + Neo-Geo Pocket Color ROM + Neo-Geo Pocket Color ROM - - - + + + - + NES ROM NES ROM - NES ROM + NES ROM ROM — NES ROM de NES ROM pro NES ROM NES - NES-rom + NES-ROM NES ROM NES ROM - NES ROM + NES ROM NES-NLM ROM de NES NES-eko ROMa NES-ROM NES ROM ROM NES + ROM NES ROM NES ROM de NES ROM של NES @@ -16674,7 +17348,7 @@ ROM NES Plik ROM konsoli NES ROM NES - ROM de NES + ROM de NES ROM NES NES ROM ROM pre NES @@ -16685,8 +17359,8 @@ NES ROM ППП NES ROM NES - NES ROM - 任天堂 ROM + NES ROM + 任天堂紅白機 ROM @@ -16697,20 +17371,21 @@ Unidata NetCDF document مستند Unidata NetCDF Documentu NetCDF d'Unidata - Dakument Unidata NetCDF + Dakument Unidata NetCDF Документ — Unidata NetCDF document d'Unidata NetCDF dokument Unidata NetCDF Unidata NetCDF-dokument Unidata-NetCDF-Dokument Έγγραφο Unidata NetCDF - Unidata NetCDF document + Unidata NetCDF document dokumento en NetCDF-formato de Unidata documento de Unidata NetCDF Unidata NetCDF dokumentua Unidata NetCDF -asiakirja Unidata NetCDF skjal document Unidata NetCDF + document Unidata NetCDF cáipéis Unidata NetCDF Documentno de Unixdata NetCDF מסמך של Unidata NetCDF @@ -16731,7 +17406,7 @@ document Unidata NetCDF Dokument Unidata NetCDF documento Unidata NetCDF - Documento do Unidata NetCDF + Documento do Unidata NetCDF Document Unidata NetCDF Документ Unidata NetCDF Dokument Unidata NetCDF @@ -16742,8 +17417,8 @@ Unidata NetCDF belgesi документ Unidata NetCDF Tài liệu NetCDF Unidata - Unidata NetCDF 文档 - Unidata NetCDF 文件 + Unidata NetCDF 文档 + Unidata NetCDF 文件 NetCDF Network Common Data Form @@ -16755,13 +17430,15 @@ Индекс — Usenet, NewzBin índex d'Usenet NewzBin index NewzBin diskuzních skupin Usenet - NewzBin-brugernetindex + NewzBin usenet-indeks NewzBin-Usenet-Index Ευρετήριο usenet NewzBin - NewzBin usenet index + NewzBin usenet index índice NewzBin de usenet NewzBin usenet indizea + NewzBin usenet indeksi index usenet + tabele usenet NewzBin innéacs usenet NewzBin Índice de usenet NEwzBin אינדקס שרתי חדשות NewzBin @@ -16778,7 +17455,7 @@ indèx usenet NewzBin Indeks grup dyskusyjnych NewzBin índice usenet NewzBin - Índice de usenet NewzBin + Índice de usenet NewzBin Индекс usenet NewzBin Index Usenetu NewzBin Kazalo usenet NewzBin @@ -16786,30 +17463,32 @@ NewzBin-usenetindex NewzBin usenet dizini покажчик usenet NewzBin - NewzBin Usenet 索引 - NewzBin usenet 索引 + NewzBin Usenet 索引 + NewzBin usenet 索引 - + object code + objekkode رمز الكائن - abjektny kod + abjektny kod Обектен код codi objecte objektový kód objektkode Objektcode Μεταφρασμένος κώδικας - object code + object code celkodo código objeto objektu kodea objektikoodi code objet + codiç ogjet cód réada código obxecto קוד אובייקט @@ -16830,7 +17509,7 @@ còde objet Kod obiektowy código de objeto - Código-objeto + Código-objeto cod sursă obiect Объектный код Objektový kód @@ -16841,18 +17520,18 @@ nesne kodu об'єктний код mã đối tượng - 目标代码 - 目的碼 + 目标代码 + 目的碼 - - - + + + - - - + + + @@ -16867,12 +17546,13 @@ Udvekslingsformat for Annodex Annodex-Wechselformat Μορφή ανταλλαγής Annodex - Annodex exchange format + Annodex exchange format formato de intercambio de Annodex Annodex trukatze-formatua Annodex-siirtomuoto Annodex umbýtingarsnið format d'échange Annodex + formât di scambi Annodex formáid mhalairte Annodex formato intercambiábel de Annodex תבנית החלפת Annodex @@ -16891,7 +17571,7 @@ format d'escambi Annodex Format wymiany Annodex formato de troca Annodex - Formato de troca Annodex + Formato de troca Annodex Format schimb Annodex Формат обмена Annodex Formát pre výmenu Annodex @@ -16901,13 +17581,13 @@ Annodex değişim biçimi формат обміну даними Annodex Định dạng trao đổi Annodex - Annodex 交换格式 - Annodex 交換格式 + Annodex 交换格式 + Annodex 交換格式 - - - + + + @@ -16915,57 +17595,35 @@ - Annodex Video - Annodex مرئي - Videu n'Annodex + Annodex video Видео — Annodex - Annodex Video - video Annodex - Annodexvideo + vídeo Annodex + Annodex-video Annodex-Video - Βίντεο Annodex - Annodex Video - Annodex-video + Annodex video vídeo Annodex Annodex bideoa - Annodex-video - Annodex video + Annodex video vidéo Annodex - Físeán Annodex - vídeo de Annodex - וידאו Annodex Annodex video snimka Annodex videó - Video Annodex Video Annodex Video Annodex - Annodex 動画 - Annodex-ის ვიდეო Annodex видеосы Annodex 동영상 - Annodex vaizdo įrašas - Annodex video - Annodex Video - vidèo Annodex Plik wideo Annodex - vídeo Annodex - Vídeo Annodex - Video Annodex + Vídeo Annodex Видео Annodex - Video Annodex - Video datoteka Annodex - Анодекс видео Annodex-video - Annodex Video - відеокліп Annodex - Ảnh động Annodex - Annodex 视频 - Annodex 視訊 + Annodex video + відео Annodex + Annodex 视频 + Annodex 視訊 - - - + + + @@ -16973,56 +17631,35 @@ - Annodex Audio - Annodex سمعي + Annodex audio Аудио — Annodex - Annodex Audio - zvuk Annodex - Annodexlyd + àudio Annodex + Annodex-lyd Annodex-Audio - Ήχος Annodex - Annodex Audio - Annodex-sondosiero - sonido Annodex + Annodex audio + audio Annodex Annodex audioa - Annodex-ääni - Annodex ljóður + Annodex ääni audio Annodex - Fuaim Annodex - son de Annodex - שמע Annodex Annodex zvučni zapis Annodex hang - Audio Annodex Audio Annodex Audio Annodex - Annodex オーディオ - Annodex-ის აუდიო Annodex аудиосы Annodex 오디오 - Annodex garso įrašas - Annodex audio - Annodex Audio - àudio Annodex Plik dźwiękowy Annodex - áudio Annodex - Áudio Annodex - Audio Annodex + Áudio Annodex Аудио Annodex - Zvuk Annodex - Zvočna datoteka Annodex - Анодекс аудио Annodex-ljud - Annodex Sesi + Annodex sesi звук Annodex - Âm thanh Annodex - Annodex 音频 - Annodex 音訊 + Annodex 音频 + Annodex 音訊 - - - + + + @@ -17031,20 +17668,22 @@ Ogg multimedia file + Ogg-multimedialêer ملف وسائط متعددة Ogg - Multymedyjny fajł Ogg + Multymedyjny fajł Ogg Мултимедия — Ogg fitxer multimèdia Ogg multimediální soubor Ogg Ogg multimedie-fil Ogg-Multimediadatei Αρχείο πολυμέσων Ogg - Ogg multimedia file + Ogg multimedia file archivo multimedia Ogg Ogg multimediako fitxategia Ogg-multimediatiedosto Ogg margmiðlafíla fichier multimédia Ogg + file multimediâl Ogg comhad ilmheán Ogg ficheiro multimedia Ogg קובץ מולטימדיה Ogg @@ -17065,7 +17704,7 @@ fichièr multimèdia Ogg Plik multimedialny Ogg ficheiro multimédia Ogg - Arquivo multimídia Ogg + Arquivo multimídia Ogg Fișier multimedia Ogg Мультимедийный файл Ogg Súbor multimédií Ogg @@ -17073,70 +17712,47 @@ File multimedial Ogg Огг мултимедијална датотека Ogg-multimediafil - Ogg çokluortam dosyası + Ogg çoklu ortam dosyası мультимедійний файл Ogg Tập tin đa phương tiện Ogg - Ogg 多媒体文件 - Ogg 多媒體檔案 + Ogg 多媒体文件 + Ogg 多媒體檔案 - + - Ogg Audio - Ogg سمعي - Aŭdyjo Ogg + Ogg audio Аудио — Ogg - àudio d'Ogg - zvuk Ogg + àudio Ogg Ogg-lyd Ogg-Audio - Ήχος Ogg - Ogg Audio - sonido Ogg + Ogg audio + audio Ogg Ogg audioa Ogg-ääni - Ogg ljóður audio Ogg - Fuaim Ogg - son Ogg - שמע Ogg Ogg zvučni zapis Ogg hang - Audio Ogg Audio Ogg Audio Ogg - Ogg オーディオ - Ogg-ის აუდიო - Ogg аудиосы + Ogg аулиосы Ogg 오디오 - Ogg garso įrašas - Ogg audio - Ogg lyd - Ogg-audio - Ogg-lyd - àudio Ogg Plik dźwiękowy Ogg - áudio Ogg - Áudio Ogg - Audio Ogg + Áudio Ogg Аудио Ogg Zvuk Ogg - Zvočna datoteka Ogg - Audio Ogg - Огг звук Ogg-ljud - Ogg Sesi + Ogg sesi звук ogg - Âm thanh Ogg - Ogg 音频 - Ogg 音訊 + Ogg 音频 + Ogg 音訊 - + @@ -17144,58 +17760,34 @@ - Ogg Video - Ogg مرئي - Videu n'Ogg - Videa Ogg + Ogg video Видео — Ogg vídeo Ogg - video Ogg Ogg-video Ogg-Video - Βίντεο Ogg - Ogg Video + Ogg video vídeo Ogg Ogg bideoa Ogg-video - Ogg Video vidéo Ogg - Físeán Ogg - vídeo Ogg - וידאו Ogg Ogg video snimka Ogg videó - Video Ogg Video Ogg Video Ogg - Ogg 動画 - Ogg ვიდეო Ogg видеосы Ogg 동영상 - Ogg vaizdo įrašas - Ogg video - Ogg video - Ogg-video - Ogg-video - vidèo Ogg Plik wideo Ogg - vídeo Ogg - Vídeo Ogg - Video Ogg + Vídeo Ogg Видео Ogg Video Ogg - Video datoteka Ogg - Video Ogg - Огг снимак Ogg-video - Ogg Video - відеокліп ogg - Ảnh động Ogg - Ogg 视频 - Ogg 視訊 + Ogg video + відео ogg + Ogg 视频 + Ogg 視訊 - + @@ -17203,23 +17795,25 @@ Ogg Vorbis audio + Ogg Vorbis-oudio Ogg Vorbis سمعي Ogg Vorbis audio faylı - Aŭdyjo Ogg Vorbis + Aŭdyjo Ogg Vorbis Аудио — Ogg Vorbis - àudio d'Ogg Vorbis + àudio Ogg Vorbis zvuk Ogg Vorbis Sain Ogg Vorbis Ogg Vorbis-lyd Ogg-Vorbis-Audio Ήχος Ogg Vobris - Ogg Vorbis audio + Ogg Vorbis audio Ogg-Vorbis-sondosiero - sonido Ogg Vorbis + audio Ogg Vorbis Ogg Vorbis audioa Ogg Vorbis -ääni Ogg Vorbis ljóður audio Ogg Vorbis + audio Ogg Vorbis fuaim Ogg Vorbis son Ogg Vorbis שמע Ogg Vorbis @@ -17241,7 +17835,7 @@ àudio Ogg Vorbis Plik dźwiękowy Ogg Vorbis áudio Ogg Vorbis - Áudio Ogg Vorbis + Áudio Ogg Vorbis Audio Ogg Vorbis Аудио Ogg Vorbis Zvuk Ogg Vorbis @@ -17252,14 +17846,14 @@ Ogg Vorbis sesi звук ogg Vorbis Âm thanh Vorbis Ogg - Ogg Vorbis 音频 - Ogg Vorbis 音訊 + Ogg Vorbis 音频 + Ogg Vorbis 音訊 - - + + @@ -17267,20 +17861,22 @@ Ogg FLAC audio + Ogg FLAC-oudio Ogg FLAC سمعي - Aŭdyjo Ogg FLAC + Aŭdyjo Ogg FLAC Аудио — Ogg FLAC - àudio FLAC d'Ogg + àudio Ogg FLAC zvuk Ogg FLAC Ogg FLAC-lyd Ogg-FLAC-Audio Ήχος Ogg FLAC - Ogg FLAC audio - sonido Ogg FLAC + Ogg FLAC audio + audio Ogg FLAC Ogg FLAC audioa Ogg FLAC -ääni Ogg FLAC ljóður audio Ogg FLAC + audio Ogg FLAC fuaim Ogg FLAC son Ogg FLAC שמע Ogg FLAC @@ -17301,7 +17897,7 @@ àudio Ogg FLAC Plik dźwiękowy Ogg FLAC áudio Ogg FLAC - Áudio Ogg FLAC + Áudio Ogg FLAC Audio Ogg FLAC Аудио Ogg FLAC Zvuk Ogg FLAC @@ -17312,13 +17908,13 @@ Ogg FLAC sesi звук ogg FLAC Âm thanh FLAC Ogg - Ogg FLAC 音频 - Ogg FLAC 音訊 + Ogg FLAC 音频 + Ogg FLAC 音訊 - - + + @@ -17329,16 +17925,19 @@ Opus audio - àudio d'Opus + Opus-oudio + Аудио — Opus + àudio Opus zvuk Opus Opus-lyd Opus-Audio Ήχος Opus - Opus audio - sonido Opus + Opus audio + audio Opus Opus audioa Opus-ääni audio Opus + audio Opus fuaim Opus Son Opus שמע Opus @@ -17352,7 +17951,7 @@ àudio Opus Plik dźwiękowy Opus áudio Opus - Áudio Opus + Áudio Opus Аудио Opus Zvuk Opu Zvočna datoteka Opus @@ -17360,32 +17959,34 @@ Opus-ljud Opus sesi звук Opus - Opus 音频 - Opus 音訊 + Opus 音频 + Opus 音訊 - - + + Ogg Speex audio + Ogg Speex-oudio Ogg Speex سمعي - Aŭdyjo Ogg Speex + Aŭdyjo Ogg Speex Аудио — Ogg Speex - àudio Speex d'Ogg + àudio Ogg Speex zvuk Ogg Speex Ogg Speex-lyd Ogg-Speex-Audio Ήχος Ogg Speex - Ogg Speex audio - sonido Ogg Speex + Ogg Speex audio + audio Ogg Speex Ogg Speex audioa Ogg Speex -ääni Ogg Speex ljóður audio Ogg Speex + audio Ogg Speex fuaim Ogg Speex son Ogg Speex שמע Ogg Speex @@ -17406,7 +18007,7 @@ àudio Ogg Speex Plik dźwiękowy Ogg Speex áudio Ogg Speex - Áudio Ogg Speex + Áudio Ogg Speex Audio Ogg Speex Аудио Ogg Speex Zvuk Ogg Speex @@ -17417,33 +18018,36 @@ Ogg Speex sesi звук ogg Speex Âm thanh Speex Ogg - Ogg Speex 音频 - Ogg Speex 音訊 + Ogg Speex 音频 + Ogg Speex 音訊 - - + + + Speex audio + Speex-oudio Speex سمعي - Aŭdyjo Speex + Aŭdyjo Speex Аудио — Speex - àudio de Speex + àudio Speex zvuk Speex - Speexlyd + Speex-lyd Speex-Audio Ήχος Speex - Speex audio - sonido Speex + Speex audio + audio Speex Speex audioa Speex-ääni Speex ljóður audio Speex + audio Speex fuaim Speex son Speex שמע של Speex @@ -17463,7 +18067,7 @@ àudio Speex Plik dźwiękowy Speex áudio Speex - Áudio Speex + Áudio Speex Audio Speex Аудио Speex Zvuk Speex @@ -17474,30 +18078,32 @@ Speex sesi звук Speex Âm thanh Speex - Speex 音频 - Speex 音訊 + Speex 音频 + Speex 音訊 - + Ogg Theora video + Ogg Theora-video Ogg Theora مرئي Videu n'Ogg Theora - Videa Ogg Theora + Videa Ogg Theora Видео — Ogg Theora vídeo Ogg Theora video Ogg Theora Ogg Theora-video Ogg-Theora-Video Βίντεο Ogg Theora - Ogg Theora video + Ogg Theora video vídeo Ogg Theora Ogg Theora bideoa Ogg Theora -video Ogg Theora video vidéo Ogg Theora + video Ogg Theora físeán Ogg Theora vídeo Ogg Theora שמע Ogg Theora @@ -17518,7 +18124,7 @@ vidèo Ogg Theora Plik wideo Ogg Theora vídeo Ogg Theora - Vídeo Ogg Theora + Vídeo Ogg Theora Video Ogg Theora Видео Ogg Theora Video Ogg Theora @@ -17529,35 +18135,37 @@ Ogg Theora video відеокліп ogg Theora Ảnh động Theora Ogg - Ogg Theora 视频 - Ogg Theora 視訊 + Ogg Theora 视频 + Ogg Theora 視訊 - - + + OGM video + OGM-video OGM مرئي Videu n'OGM - Videa OGM + Videa OGM Видео — OGM vídeo OGM video OGM OGM-video OGM-Video Βίντεο OGM - OGM video + OGM video OGM-video vídeo OGM OGM bideoa OGM-video OGM video vidéo OGM + video OGM físeán OGM vídeo OGM וידאו OGM @@ -17578,7 +18186,7 @@ vidèo OGM Plik wideo OGM vídeo OGM - Vídeo OGM + Vídeo OGM Video OGM Видео OGM Video OGM @@ -17589,43 +18197,45 @@ OGM video відеокліп OGM Ảnh động OGM - OGM 视频 - OGM 視訊 + OGM 视频 + OGM 視訊 - - + + - + OLE2 compound document storage تخزين مجمع مستند OLE2 Almacenamientu de documentos compuestu por OLE2 - Schovišča dla kampanentaŭ dakumentu OLE2 + Schovišča dla kampanentaŭ dakumentu OLE2 Съставен документ-хранилище — OLE2 emmagatzematge de documents compostos OLE2 úložiště složeného dokumentu OLE2 OLE2-sammensat dokumentlager OLE2-Verbunddokumentenspeicher Αρχείο συμπαγούς αποθήκευσης εγγράφων OLE2 - OLE2 compound document storage + OLE2 compound document storage OLE2-deponejo de parentezaj dokumentoj almacenamiento de documentos compuestos OLE2 OLE2 konposatutako dokumentu-bilduma OLE2-yhdisteasiakirjatallenne OLE2 samansett skjalagoymsla document de stockage composé OLE2 + memorizazion document compost OLE2 stóras cáipéisí comhshuite OLE2 almacenamento de documento composto OLE2 אחסון מסמך משותף OLE2 OLE2 pohrana složenog dokumenta OLE2 összetett dokumentumtároló Magazin de documentos composite OLE2 - penyimpan dokumen kompon OLE2 + Penyimpan dokumen kompon OLE2 Memorizzazione documento composto OLE2 OLE2 複合ドキュメントストレージ OLE2 құрама құжаттар қоймасы @@ -17639,7 +18249,7 @@ document d'emmagazinatge compausat OLE2 Magazyn dokumentu złożonego OLE2 armazenamento de documento composto OLE2 - Armazenamento de documento composto OLE2 + Armazenamento de documento composto OLE2 Document de stocare compus OLE2 Хранилище составных документов OLE2 Úložisko zloženého dokumentu OLE2 @@ -17650,27 +18260,30 @@ OLE2 bileşik belge depolama сховище складних документів OLE2 Kho lưu tài liệu ghép OLE2 - OLE2 组合文档存储 - OLE2 複合文件儲存 + OLE2 组合文档存储 + OLE2 複合文件儲存 - - + + Microsoft Publisher document + Microsoft Publisher-dokument Documentu de Microsoft Publisher + Документ — Microsoft Publisher document de Microsoft Publisher dokument Microsoft Publisher Microsoft Publisher-dokument Microsoft-Publisher-Dokument Έγγραφο Microsoft Publisher - Microsoft Publisher document + Microsoft Publisher document documento de Microsoft Publisher Microsoft Publisher dokumentua Microsoft Publisher -asiakirja document Microsoft Publisher + document Microsoft Publisher cáipéis Microsoft Publisher Documento de Microsoft Publisher מסמך Microsoft Publisher @@ -17684,7 +18297,7 @@ document Microsoft Publisher Dokument Microsoft Publisher documento Microsoft Publisher - Documento do Microsoft Publisher + Documento do Microsoft Publisher Документ Microsoft Publisher Dokument Microsoft Publisher Dokument Microsoft Publisher @@ -17692,27 +18305,29 @@ Microsoft Publisher-dokument Microsoft Publisher belgesi документ Microsoft Publisher - Microsoft Publisher 文档 - Microsoft Publisher 文件 + Microsoft Publisher 文档 + 微軟 Publisher 文件 Windows Installer package + Windows-installeerpakket حزمة مثبّت ويندوز - Pakunak Windows Installer + Pakunak Windows Installer Пакет — инсталация за Windows paquet de Windows Installer balíček Windows Installer - Windows Installer-pakke + Windows installationsprogram-pakke Windows-Installationspaket Πακέτο Windows Installer - Windows Installer package + Windows Installer package paquete de instalación de Windows Windows-eko pakete instalatzailea Windows-asennuspaketti Windows innleggingarpakki paquet d'installation Windows + pachet Windows Installer pacáiste Windows Installer paquete de instalación de Windows חבילה של Windows Installer @@ -17731,7 +18346,7 @@ paquet d'installacion Windows Pakiet instalatora Windows pacote de instalação Windows - Pacote do Windows Installer + Pacote do Windows Installer Pachet instalator Windows Пакет Windows Installer Balík Windows Installer @@ -17742,28 +18357,30 @@ Windows Installer paketi пакунок Windows Installer Gói cài đặt Windows - Windows 程序安装包 - Windows Installer 軟體包 + Windows 程序安装包 + Windows Installer 軟體包 GNU Oleo spreadsheet + GNU Oleo-sigblad جدول جنو Oleo - Raźlikovy arkuš GNU Oleo + Raźlikovy arkuš GNU Oleo Таблица — GNU Oleo full de càlcul de GNU Oleo sešit GNU Oleo GNU Oleo-regneark GNU-Oleo-Tabelle Λογιστικό φύλλο GNU Oleo - GNU Oleo spreadsheet + GNU Oleo spreadsheet Kalkultabelo de GNU Oleo hoja de cálculo de GNU Oleo GNU Oleo kalkulu-orria GNU Oleo -taulukko GNU Oleo rokniark feuille de calcul GNU Oleo + sfuei di calcul GNU Oleo scarbhileog GNU Oleo folla de cálculo de Oleo GNU גליון נתונים של GNU Oleo @@ -17785,7 +18402,7 @@ fuèlh de calcul GNU Oleo Arkusz GNU Oleo folha de cálculo GNU Oleo - Planilha do GNU Oleo + Planilha do GNU Oleo Foaie de calcul GNU Oleo Электронная таблица GNU Oleo Zošit GNU Oleo @@ -17793,34 +18410,36 @@ Fletë llogaritje GNU Oleo ГНУ Олео табела GNU Oleo-kalkylblad - GNU Oleo çalışma sayfası + GNU Oleo hesap çizelgesi ел. таблиця GNU Oleo Bảng tính Oleo của GNU - GNU Oleo 电子表格 - GNU Oleo 試算表 + GNU Oleo 电子表格 + GNU Oleo 試算表 - + PAK archive + PAK-argief أرشيف PAK - Archiŭ PAK + Archiŭ PAK Архив — PAK arxiu PAK archiv PAK PAK-arkiv PAK-Archiv Συμπιεσμένο αρχείο PAK - PAK archive + PAK archive PAK-arkivo archivador PAK PAK artxiboa PAK-arkisto PAK skjalasavn archive PAK + archivi PAK cartlann PAK arquivo PAK ארכיון PAK @@ -17841,7 +18460,7 @@ archiu PAK Archiwum PAK arquivo PAK - Pacote PAK + Pacote PAK Arhivă PAK Архив PAK Archív PAK @@ -17852,19 +18471,20 @@ PAK arşivi архів PAK Kho nén PAK - PAK 归档文件 - PAK 封存檔 + PAK 归档文件 + PAK 封存檔 - + Palm OS database + Palm OS-databasis قاعدة بيانات Palm OS Palm OS mə'lumat bazası - Baza źviestak Palm OS + Baza źviestak Palm OS База от данни — Palm OS base de dades Palm OS databáze Palm OS @@ -17872,13 +18492,14 @@ Palm OS-database Palm-OS-Datenbank Βάση δεδομένων Palm OS - Palm OS database + Palm OS database datumbazo de Palm OS base de datos de Palm OS Palm OS datu-basea Palm OS -tietokanta Palm OS dátustovnur base de données Palm OS + base di dâts Palm OS bunachar sonraí Palm OS base de datos de Palm OS מסד נתונים של Palm OS @@ -17899,7 +18520,7 @@ banca de donadas Palm OS Baza danych Palm OS base de dados Palm OS - Banco de dados do Palm OS + Banco de dados do Palm OS Bază de date Palm OS База данных Palm OS Databáza Palm OS @@ -17907,11 +18528,11 @@ Bankë me të dhëna Palm OS база података Палм ОС-а Palm OS-databas - Palm OS veritabanı + Palm OS veri tabanı база даних Palm OS Cơ sở dữ liệu PalmOS - Palm OS 数据库 - Palm OS 資料庫 + Palm OS 数据库 + Palm OS 資料庫 @@ -17920,20 +18541,22 @@ Parchive archive + Parchive-argief أرشيف Parchive - Archiŭ Parchive + Archiŭ Parchive Архив — parchive arxiu Parchive archiv Parchive Parchive-arkiv Parchive-Archiv Συμπιεσμένο αρχείο Parchive - Parchive archive + Parchive archive archivador Parchive Parchive artxiboa Parchive-arkisto Parchive skjalasavn archive Parchive + archivi Parchive cartlann Parchive arquivo Parchive ארכיון של Parchive @@ -17953,7 +18576,7 @@ archiu Parchive Archiwum parchive arquivo Parchive - Pacote Parchive + Pacote Parchive Arhivă Parchive Архив Parchive Archív Parchive @@ -17964,34 +18587,36 @@ Parchive arşivi архів Parchive Kho nén Parchive - Parchive 归档文件 - Parchive 封存檔 + Parchive 归档文件 + Parchive 封存檔 Parchive Parity Volume Set Archive - + PEF executable + PEF-uitvoerbaar PEF تنفيذي - Vykonvalny fajł PEF + Vykonvalny fajł PEF Изпълним файл — PEF executable PEF spustitelný soubor PEF PEF-kørbar PEF-Programm Εκτελέσιμο PEF - PEF executable + PEF executable PEF-plenumebla ejecutable PEF PEF exekutagarria PEF-ohjelma PEF inningarfør exécutable PEF + eseguibil PEF comhad inrite PEF Executábel PEF קובץ הרצה PEF @@ -18012,7 +18637,7 @@ executable PEF Program PEF executável PEF - Executável PEF + Executável PEF Executabil PEF Исполняемый файл PEF Spustiteľný súbor PEF @@ -18023,31 +18648,33 @@ PEF çalıştırılabilir виконуваний файл PEF Tập tin thực hiện được PEF - PEF 可执行文件 - PEF 可執行檔 + PEF 可执行文件 + PEF 可執行檔 - + Perl script + Perl-skrip سكربت بيرل - Skrypt Perl + Skrypt Perl Скрипт — Perl script Perl skript v Perlu Sgript Perl - Perlprogram + Perl-program Perl-Skript Δέσμη ενεργειών Perl - Perl script + Perl script Perl-skripto secuencia de órdenes en Perl Perl script-a Perl-komentotiedosto Perl boðrøð script Perl + script Perl script Perl Script de Perl תסריט מעטפת של Perl @@ -18068,7 +18695,7 @@ escript Perl Skrypt Perl script Perl - Script Perl + Script Perl Script Perl Сценарий Perl Skript jazyka Perl @@ -18079,40 +18706,41 @@ Perl betiği скрипт на Perl Văn lệnh Perl - Perl 脚本 - Perl 指令稿 + Perl 脚本 + Perl 指令稿 - - - - - - - - + + + + + - - - + + + + + + - - - + + + - - + + PHP script + PHP-skrip سكربت PHP PHP skripti - Skrypt PHP + Skrypt PHP Скрипт — PHP script PHP skript PHP @@ -18120,13 +18748,14 @@ PHP-program PHP-Skript Δέσμη ενεργειών PHP - PHP script + PHP script PHP-skripto secuencia de órdenes en PHP PHP script-a PHP-komentotiedosto PHP boðrøð script PHP + script PHP script PHP Script de PHP תסריט מעטפת של PHP @@ -18147,7 +18776,7 @@ escript PHP Skrypt PHP script PHP - Script PHP + Script PHP Script PHP Сценарий PHP Skript PHP @@ -18158,12 +18787,12 @@ PHP betiği скрипт PHP Văn lệnh PHP - PHP 脚本 - PHP 指令稿 + PHP 脚本 + PHP 指令稿 - + @@ -18173,19 +18802,21 @@ PKCS#7 certificate bundle + PKCS#7-sertifikaatbundel رزمة الشهادة PKCS#7 - Сбор със сертификати — PKCS#7 + Пакет със сертификати — PKCS#7 conjunt de certificats PKCS#7 svazek certifikátů PKCS#7 PKCS#7-certifikatbundt PKCS#7-Zertifikatspaket Πακέτο ψηφιακών πιστοποιητικών PKCS#7 - PKCS#7 certificate bundle + PKCS#7 certificate bundle lote de certificados PCKS#7 PKCS#7 zertifikazio sorta PKCS#7-varmennenippu PKCS#7 váttanar bundi lot de certificats PKCS#7 + côl di certificâts PKCS#7 burla teastas PKCS#7 paquete de certificado PKCS#7 בקשה מוסמכת PKCS#7 @@ -18203,7 +18834,7 @@ lòt de certificats PKCS#7 Pakiet certyfikatu PKCS#7 pacote de certificação PKCS#7 - Pacote de certificados PKCS#7 + Pacote de certificados PKCS#7 Pachet certificat PKCS#7 Пакет сертификата PKCS#7 Zväzok certifikátov PKCS#7 @@ -18213,8 +18844,8 @@ PKCS#7 sertifika paketi комплект сертифікатів PKCS#7 Bó chứng nhận PKCS#7 - PKCS#7 证书束 - PKCS#7 憑證綁包 + PKCS#7 证书束 + PKCS#7 憑證綁包 PKCS Public-Key Cryptography Standards @@ -18222,21 +18853,23 @@ PKCS#12 certificate bundle + PKCS#12-sertifikaatbundel رزمة الشهادة PKCS#12 - Viazka sertyfikataŭ PKCS#12 - Сбор със сертификати — PKCS#12 + Viazka sertyfikataŭ PKCS#12 + Пакет със сертификати — PKCS#12 conjunt de certificats PKCS#12 svazek certifikátů PKCS#12 PKCS#12-certifikatbundt PKCS#12-Zertifikatspaket Πακέτο ψηφιακών πιστοποιητικών PKCS#12 - PKCS#12 certificate bundle + PKCS#12 certificate bundle ligaĵo de PKCS#12-atestiloj lote de certificados PCKS#12 PKCS#12 zertifikazio sorta PKCS#12-varmennenippu PKCS#12 váttanar bundi lot de certificats PKCS#12 + côl di certificâts PKCS#12 burla teastas PKCS#12 paquete de certificado PKCS#12 בקשה מוסמכת PKCS#12 @@ -18257,7 +18890,7 @@ lòt de certificats PKCS#12 Pakiet certyfikatu PKCS#12 pacote de certificação PKCS#12 - Pacote de certificados PKCS#12 + Pacote de certificados PKCS#12 Certificat împachetat PKCS#12 Пакет сертификата PKCS#12 Zväzok certifikátov PKCS#12 @@ -18268,8 +18901,8 @@ PKCS#12 sertifika paketi комплект сертифікатів PKCS#12 Bó chứng nhận PKCS#12 - PKCS#12 证书束 - PKCS#12 憑證檔綁包 + PKCS#12 证书束 + PKCS#12 憑證綁包 PKCS Public-Key Cryptography Standards @@ -18278,20 +18911,22 @@ PlanPerfect spreadsheet + PlanPerfect-sigblad جدول PlanPerfect - Raźlikovy arkuš PlanPerfect + Raźlikovy arkuš PlanPerfect Таблица — PlanPerfect full de càlcul de PlanPerfect sešit PlanPerfect PlanPerfect-regneark PlanPerfect-Tabelle Φύλλο εργασίας PlanPerfect - PlanPerfect spreadsheet + PlanPerfect spreadsheet hoja de cálculo de PlanPerfect PlanPerfect kalkulu-orria PlanPerfect-taulukko PlanPerfect rokniark feuille de calcul PlanPerfect + sfuei di calcul PlanPerfect scarbhileog PlanPerfect folla de cálculo de PlanPerfect גליון נתונים של PlanPerfect @@ -18311,7 +18946,7 @@ fuèlh de calcul PlanPerfect Arkusz PlanPerfect folha de cálculo PlanPerfect - Planilha do PlanPerfect + Planilha do PlanPerfect Foaie de calcul PlanPerfect Электронная таблица PlanPerfect Zošit PlanPerfect @@ -18319,16 +18954,17 @@ Fletë llogaritjesh PlanPerfect табела План Перфекта PlanPerfect-kalkylblad - PlanPerfect çalışma sayfası + PlanPerfect hesap çizelgesi ел. таблиця PlanPerfect Bảng tính PlanPerfect - PlanPerfect 电子表格 - PlanPerfect 試算表 + PlanPerfect 电子表格 + PlanPerfect 試算表 Pocket Word document + Pocket Word-dokument مستند Pocket Word Documentu de PocketWord Документ — Pocket Word @@ -18337,12 +18973,13 @@ Pocket Word-dokument Pocket-Word-Dokument Έγγραφο Pocket Word - Pocket Word document + Pocket Word document documento de Pocket Word Pocket Word dokumentua Pocket Word -asiakirja Pocket Word skjal document Pocket Word + document Pocket Word cáipéis Pocket Word documento de Pocket Word מסמך של Pocket Word @@ -18360,7 +18997,7 @@ document Pocket Word Dokument Pocket Word documento Pocket Word - Documento do Pocket Word + Documento do Pocket Word Document Pocket Word Документ Pocket Word Dokument Pocket Word @@ -18370,32 +19007,34 @@ Pocket Word belgesi документ Pocket Word Tài liệu Pocket Word - Pocket Word 文档 - Pocket Word 文件 + Pocket Word 文档 + Pocket Word 文件 - + profiler results + profieldata نتائج المحلل profiler nəticələri - vyniki profilera + vyniki profilera Резултати от анализатора - resultats de profiler + resultats del perfilador výsledky profileru canlyniadau proffeilio profileringsresultater Profiler-Ergebnisse Αποτελέσματα μετρήσεων για την εκτέλεση προγράμματος - profiler results + profiler results resultoj de profililo resultados del perfilador profiler-aren emaitzak profilointitulokset résultats de profileur + risultâts profiladôr torthaí próifíleora resultados do perfilador תוצאות מאבחן @@ -18416,7 +19055,7 @@ resultats de perfilador Wyniki profilowania resultados de análise de perfil - Resultados do profiler + Resultados do profiler rezultate profiler Результаты профилирования Výsledky profilera @@ -18424,33 +19063,35 @@ Rezultate të profiluesit резултати профилатора profilerarresultat - profil sonuçları + profiler sonuçları результати профілювання kết quả nét hiện trạng - 探查器结果 - 硬體資訊產生器成果 + 探查器结果 + 硬體資訊產生器成果 Pathetic Writer document + Pathetic Writer-dokument مستند Pathetic Writer Documentu de Pathetic Writer - Dakument Pathetic Writer + Dakument Pathetic Writer Документ — Pathetic Writer document de Pathetic Writer dokument Pathetic Writer Pathetic Writer-dokument Pathetic-Writer-Dokument Έγγραφο Pathetic Writer - Pathetic Writer document + Pathetic Writer document dokumento de Pathetic Writer documento de Pathetic Writer Pathetic Writer dokumentua Pathetic Writer -asiakirja Pathetic Writer skjal document Pathetic Writer + document Pathetic Writer cáipéis Pathetic Writer documento de Pathetic Writer מסמך של Pathetic Writer @@ -18471,7 +19112,7 @@ document Pathetic Writer Dokument Pathetic Writer documento do Pathetic Writer - Documento do Pathetic Writer + Documento do Pathetic Writer Document Pathetic Writer Документ Pathetic Writer Dokument Pathetic Writer @@ -18482,30 +19123,32 @@ Pathetic Writer belgesi документ Pathetic Writer Tài liệu Pathetic Writer - Pathetic Writer 文档 - Pathetic Writer 文件 + Pathetic Writer 文档 + Pathetic Writer 文件 Python bytecode + Python binêre kode Python bytecode Python bayt kodu - Bajtavy kod Python + Bajtavy kod Python Байт код — Python bytecode de Python bajtový kód Python Côd beit Python - Pythonbytekode + Python-bytekode Python-Bytecode Συμβολοκώδικας Python - Python bytecode + Python bytecode Python-bajtkodo bytecode de Python Python byte-kodea Python-tavukoodi Python býtkota bytecode Python + bytecode di Python beartchód Python bytecode de Python Bytecode של Python @@ -18526,7 +19169,7 @@ bytecode Python Kod bajtowy Python código binário Python - Código compilado Python + Código compilado Python Bytecode Python Байт-код Python Bajtový kód Python @@ -18537,27 +19180,30 @@ Python bayt kodu байт-код Python Mã byte Python - Python 字节码 - Python 位元組碼 + Python 字节码 + Python 位元組碼 - + QtiPlot document + QtiPlot-dokument Documentu de QtiPlot + Документ — QtiPlot document QtiPlot dokument GtiPlot QtiPlot-dokument QtiPlot-Dokument Έγγραφο QtiPlot - QtiPlot document + QtiPlot document documento de QtiPlot QtiPlot dokumentua QtiPlot-asiakirja document QtiPlot + document QtiPlot cáipéis QtiPlot Documento de QtiPilot מסמך QtiPlot @@ -18573,7 +19219,7 @@ document QtiPlot Dokument QtiPlot documento QtiPlot - Documento do QtiPlot + Documento do QtiPlot Документ QtiPlot Dokument QtiPlot Dokument QtiPlot @@ -18581,8 +19227,8 @@ QtiPlot-dokument QtiPlot belgesi документ QtiPlot - QtiPlot 文档 - QtiPlot 文件 + QtiPlot 文档 + QtiPlot 文件 @@ -18593,21 +19239,23 @@ Quattro Pro spreadsheet + Quattro Pro-sigblad جدول Quattro Pro - Raźlikovy arkuš Quattro Pro + Raźlikovy arkuš Quattro Pro Таблица — Quattro Pro full de càlcul de Quattro Pro sešit Quattro Pro Quattro Pro-regneark Quattro-Pro-Tabelle Λογιστικό φύλλο Quattro Pro - Quattro Pro spreadsheet + Quattro Pro spreadsheet sterntabelo de Quattro Pro hoja de cálculo de Quattro Pro Quattro Pro kalkulu-orria Quattro Pro -taulukko Quattro Pro rokniark feuille de calcul Quattro Pro + sfuei di calcul Quattro Pro scarbhileog Quattro Pro folla de cálculo Quattro Pro גליון נתונים של Quattro Pro @@ -18628,7 +19276,7 @@ fuèlh de calcul Quattro Pro Arkusz Quattro Pro folha de cálculo Quattro Pro - Planilha do Quattro Pro + Planilha do Quattro Pro Foaie de calcul Quattro Pro Электронная таблица Quattro Pro Zošit Quattro Pro @@ -18636,70 +19284,48 @@ Fletë llogaritjesh Quattro Pro Кватро Про табела Quattro Pro-kalkylblad - Quattro Pro çalışma sayfası + Quattro Pro hesap çizelgesi ел. таблиця Quattro Pro Bảng tính Quattro Pro - Quattro Pro 电子表格 - Quattro Pro 試算表 + Quattro Pro 电子表格 + Quattro Pro 試算表 - QuickTime metalink playlist - قائمة تشغيل QuickTime metalink - śpis metaspasyłak na pieśni QuickTime + QuickTime playlist Списък за изпълнение — QuickTime - llista de reproducció de metaenllaços QuickTime - seznam k přehrání metalink QuickTime - QuickTime metalink-afspilningsliste - QuickTime-Metalink-Wiedergabeliste - Λίστα αναπαραγωγής metalinks QuickTime - QuickTime metalink playlist - lista de reproducción de metaenlaces QuickTime - QuickTime meta-esteken erreprodukzio-zerrenda - QuickTime metalink -soittolista - QuickTime metaleinkju avspælingarlisti - liste de lecture metalink QuickTime - seinmliosta meiteanasc QuickTime - lista de reprodución de metaligazóns QuickTime - רשימת השמעה מקושרת של QuickTime - QuickTime meta poveznica popisa izvođenja - QuickTime metalink lejátszólista - Lista de selection Metalink QuickTime - Senarai berkas taut meta QuickTime - Playlist metalink QuickTime - QuickTime メタリンク再生リスト - QuickTime метасілтемелер ойнау тізімі - 퀵타임 메타링크 재생 목록 - QuickTime metanuorodos grojaraštis - QuickTime metasaites repertuārs - QuickTime metalink-spilleliste - QuickTime metalink-afspeellijst - QuickTime metalink-speleliste - lista de lectura metalink QuickTime - Lista odtwarzania metaodnośników QuickTime - lista de reprodução QuickTime metalink - Lista de reprodução metalink do QuickTime - Listă cu metalegături QuickTime - Список воспроизведения мета-ссылок QuickTime - Zoznam skladieb metalink QuickTime - Seznam predvajanja QuickTime - Listë titujsh metalink QuickTime - списак нумера мета везе Квик Тајма - QuickTime-metalänkspellista - QuickTime metalink çalma listesi - список відтворення QuickTime metalink - Danh mục nhạc siêu liên kết Quicktime - QuickTime Metalink 播放列表 - QuickTime metalink 播放清單 + llista de reproducció QuickTime + QuickTime-afspilningsliste + QuickTime-Wiedergabeliste + QuickTime playlist + lista de reproducción de QuickTime + QuickTime erreprodukzio-zerrenda + QuickTime-soittolista + liste de lecture QuickTime + QuickTime popis izvođenja + QuickTime lejátszólista + Daftar putar QuickTime + Playlist QuickTime + QuickTime ойнау тізімі + 퀵타임 재생 목록 + Lista odtwarzania QuickTime + Lista de reprodução do QuickTime + Список воспроизведения QuickTime + Zoznam skladieb QuickTime + QuickTime-spellista + QuickTime çalma listesi + список відтворення QuickTime + QuickTime 播放列表 + QuickTime 播放清單 - + @@ -18709,10 +19335,11 @@ Quicken document + Quicken-dokument مستند Quicken Documentu de Quicken Quicken sənədi - Dakument Quicken + Dakument Quicken Документ — Quicken document Quicken dokument Quicken @@ -18720,13 +19347,14 @@ Quickendokument Quicken-Dokument Έγγραφο Quicken - Quicken document + Quicken document Quicken-dokumento documento de Quicken Quicken dokumentua Quicken-asiakirja Quicken skjal document Quicken + document Quicken cáipéis Quicken documento de Quicken מסמך של Quicken @@ -18747,7 +19375,7 @@ document Quicken Dokument Quicken documento Quicken - Documento do Quicken + Documento do Quicken Document Quicken Документ Quicken Dokument Quicken @@ -18758,15 +19386,16 @@ Quicken belgesi документ Quicken Tài liệu Quicken - Quicken 文档 - Quicken 文件 + Quicken 文档 + Quicken 文件 RAR archive + RAR-argief أرشيف RAR - Archiŭ RAR + Archiŭ RAR Архив — RAR arxiu RAR archiv RAR @@ -18774,13 +19403,14 @@ RAR-arkiv RAR-Archiv Συμπιεσμένο αρχείο RAR - RAR archive + RAR archive RAR-arkivo archivador RAR RAR artxiboa RAR-arkisto RAR skjalasavn archive RAR + archivi RAR cartlann RAR ficheiro RAR ארכיון RAR @@ -18801,7 +19431,7 @@ archiu RAR Archiwum RAR arquivo RAR - Pacote RAR + Pacote RAR Arhivă RAR Архив RAR Archív RAR @@ -18812,35 +19442,37 @@ RAR arşivi архів RAR Kho nén RAR - RAR 归档文件 - RAR 封存檔 + RAR 归档文件 + RAR 封存檔 RAR Roshal ARchive - + DAR archive + DAR-argief أرشيف DAR - Archiŭ DAR + Archiŭ DAR Архив — DAR arxiu DAR archiv DAR DAR-arkiv DAR-Archiv Συμπιεσμένο αρχείο DAR - DAR archive + DAR archive DAR-arkivo archivador DAR DAR artxiboa DAR-arkisto DAR skjalasavn archive DAR + archivi DAR cartlann DAR arquivo DAR ארכיון DAR @@ -18861,7 +19493,7 @@ archiu DAR Archiwum DAR arquivo DAR - Pacote DAR + Pacote DAR Arhivă DAR Архив DAR Archív DAR @@ -18872,31 +19504,33 @@ DAR arşivi архів DAR Kho nén DAR - DAR 归档文件 - DAR 封存檔 + DAR 归档文件 + DAR 封存檔 - + Alzip archive + Alzip-argief أرشيف Alzip - Archiŭ Alzip + Archiŭ Alzip Архив — alzip arxiu Alzip archiv Alzip - Alziparkiv + Alzip-arkiv Alzip-Archiv Συμπιεσμένο αρχείο Alzip - Alzip archive + Alzip archive Alzip-arkivo archivador Alzip Alzip artxiboa Alzip-arkisto Alsip skjalasavn archive alzip + archivi Alzip cartlann Alzip arquivo Alzip ארכיון Alzip @@ -18917,7 +19551,7 @@ archiu alzip Archiwum alzip arquivo Alzip - Pacote Alzip + Pacote Alzip Arhivă Alzip Архив ALZIP Archív Alzip @@ -18928,31 +19562,32 @@ Alzip arşivi архів Alzip Kho nén Alzip - Alzip 归档文件 - Alzip 封存檔 + Alzip 归档文件 + Alzip 封存檔 - + rejected patch رقعة مرفوضة - niepryniaty patch + niepryniaty patch Отхвърлен файл с кръпка pedaç rebutjat odmítnutá záplata - afvist tekstlap + afvist rettelse Abgelehnter Patch Διόρθωση που απορρίφθηκε - rejected patch + rejected patch reĵeta flikaĵo parche rechazado baztertutako adabakia hylättyjen muutosten tiedosto vrakað rætting correctif rejeté + blec refudât paiste diúltaithe parche rexeitado טלאי שנדחה @@ -18973,7 +19608,7 @@ correctiu regetat Odrzucona łata patch rejeitado - Arquivo de patch rejeitado + Arquivo de patch rejeitado petec respsins Отклонённый патч Odmietnutá záplata @@ -18984,8 +19619,8 @@ reddedilmiş yama відхилена латка đắp vá bị từ chối - 拒绝的补丁 - 回絕的修補 + 拒绝的补丁 + 回絕的修補 @@ -18993,21 +19628,23 @@ RPM package + RPM-pakket حزمة RPM - Pakunak RPM + Pakunak RPM Пакет — RPM paquet RPM balíček RPM RPM-pakke RPM-Paket Πακέτο RPM - RPM package + RPM package RPM-pakaĵo paquete RPM RPM paketea RPM-paketti RPM pakki paquet RPM + pachet RPM pacáiste RPM paquete RFM חבילת RPM @@ -19028,7 +19665,7 @@ paquet RPM Pakiet RPM pacote RPM - Pacote RPM + Pacote RPM Pachet RPM Пакет RPM Balík RPM @@ -19039,27 +19676,30 @@ RPM paketi пакунок RPM Gói RPM - RPM 软件包 - RPM 軟體包 + RPM 软件包 + RPM 軟體包 - + Source RPM package + Bron-RPM-pakket + Пакет — RPM с изходен код paquet RPM de codi font zdrojový balíček RPM Kilde RPM-pakke Quell-RPM-Paket Πακέτο πηγής RPM - Source RPM package + Source RPM package paquete de fuente RPM Iturburu RPM paketea RPM-lähdepaketti paquet source RPM + pachet sorzint RPM pacáiste foinse RPM Paquete RPM de fontes חבילת מקור RPM @@ -19075,7 +19715,7 @@ paquet font RPM Źródłowy pakiet RPM pacote origem RPM - Pacote fonte RPM + Pacote fonte RPM Пакет RPM с исходным кодом Zdrojový balík RPM Paket izvorne kode RPM @@ -19083,8 +19723,8 @@ Käll-RPM-paket Kaynak RPM paketi пакунок RPM з початковим кодом - 源码 RPM 软件包 - 來源 RPM 軟體包 + 源码 RPM 软件包 + 來源 RPM 軟體包 @@ -19092,21 +19732,23 @@ Ruby script + Ruby-skrip سكربت روبي - Skrypt Ruby + Skrypt Ruby Скрипт — Ruby script Ruby skript Ruby - Rubyprogram + Ruby-program Ruby-Skript Δέσμη ενεργειών Ruby - Ruby script + Ruby script Ruby-skripto secuencia de órdenes en Ruby Ruby script-a Ruby-komentotiedosto Ruby boðrøð script Ruby + script Ruby script Ruby Script de Ruby תסריט Ruby @@ -19127,7 +19769,7 @@ escript Ruby Skrypt Ruby script Ruby - Script Ruby + Script Ruby Script Ruby Сценарий Ruby Skript Ruby @@ -19138,34 +19780,36 @@ Ruby betiği скрипт Ruby Văn lệnh Ruby - Ruby 脚本 - Ruby 指令稿 + Ruby 脚本 + Ruby 指令稿 - - + + Markaby script + Markaby-skrip سكربت Markaby - Skrypt Markaby + Skrypt Markaby Скрипт — Markaby script Markaby skript Markaby - Markabyprogram + Markaby-program Markaby-Skript Δέσμη ενεργειών Markaby - Markaby script + Markaby script Markaby-skripto secuencia de órdenes en Markaby Markaby script-a Markaby-komentotiedosto Markaby boðrøð script Markaby + script Markaby script Markaby Script de Markaby תסריט Markby @@ -19186,7 +19830,7 @@ escript Markaby Skrypt Markaby script Markaby - Script Markaby + Script Markaby Script Markaby Сценарий Markaby Skript Markaby @@ -19197,24 +19841,27 @@ Markaby betiği скрипт Markaby Văn lệnh Markaby - RMarkaby 脚本 - Markaby 指令稿 + RMarkaby 脚本 + Markaby 指令稿 Rust source code + Rust-bronkode + Изходен код — Rust codi font en Rust zdrojový kód v jazyce Rust Rust-kildekode Rust-Quelltext Πηγαίος κώδικας Rust - Rust source code + Rust source code código fuente en Rust Rust iturburu-kodea Rust-lähdekoodi code source Rust + codiç sorzint Rust cód foinseach Rust קוד מקור של Rust Rust izvorni kôd @@ -19227,35 +19874,38 @@ còde font Rust Kod źródłowy Rust código origem Rust - Código-fonte Rust + Código-fonte Rust Исходный код Rust Zdrojový kód Rust + Izvorna koda Rust Раст изворни ко̂д Rust-källkod Rust kaynak kodu вихідний код мовою Rust - Rust 源代码 - Rust 源碼 + Rust 源代码 + Rust 源碼 SC/Xspread spreadsheet + SC/Xspread-sigblad جدول SC/Xspread - Raźlikovy arkuš SC/Xspread + Raźlikovy arkuš SC/Xspread Таблица — SC/Xspread full de càlcul de SC/Xspread sešit SC/Xspread SC/Xspread-regneark SX/Xspread-Tabelle Λογιστικό φύλλο SC/Xspread - SC/Xspread spreadsheet + SC/Xspread spreadsheet SC/Xspread-kalkultabelo hoja de cálculo SC/Xspread SC/Xspread kalkulu-orria SC/Xspread-taulukko SC/Xspread rokniark feuille de calcul SC/Xspread + sfuei di calcul SC/Xspread scarbhileog SC/Xspread folla de cálculo SC/Xspread גליון נתונים של SC/Xspread @@ -19275,7 +19925,7 @@ fuèlh de calcul SC/Xspread Arkusz SC/Xspread folha de cálculo SC/Xspread - Planilha do SC/Xspread + Planilha do SC/Xspread Foaie de calcul SC/Xspread Электронная таблица SC/Xspread Zošit SC/Xspread @@ -19283,35 +19933,37 @@ Fletë llogaritjesh SC/Xspread табела СЦ/Икс-табеле SC/Xspread-kalkylblad - SC/Xspread çalışma sayfası + SC/Xspread hesap çizelgesi ел. таблиця SC/Xspread Bảng tính SC/Xspread - SC/Xspread 电子表格 - SC/Xspread 試算表 + SC/Xspread 电子表格 + SC/Xspread 試算表 - + shell archive + shell-argief أرشيف شِل qabıq arxivi - archiŭ abałonki + archiŭ abałonki Архив на обвивката arxiu de shell archiv shellu archif plisgyn - skalarkiv + skal-arkiv Shell-Archiv Αρχείο κέλυφους - shell archive + shell archive ŝel-arkivo archivador shell shell artxiboa komentotulkkiarkisto skel savn archive shell + archivi shell cartlann bhlaoisce ficheiro shell ארכיון מעטפת @@ -19332,7 +19984,7 @@ archiu shell Archiwum powłoki arquivo de terminal - Pacote shell + Pacote shell arhivă shell Архив shell Archív shellu @@ -19343,27 +19995,29 @@ kabuk arşivi архів оболонки kho trình bao - shell 归档文件 - shell 封存檔 + shell 归档文件 + shell 封存檔 libtool shared library + libtool- gedeelde biblioteek مكتبة libtool المشتركة - supolnaja biblijateka libtool + supolnaja biblijateka libtool Споделена библиотека — libtool biblioteca compartida libtool sdílená knihovna libtool libtool delt bibliotek Gemeinsame libtool-Bibliothek Κοινόχρηστη βιβλιοθήκη libtool - libtool shared library + libtool shared library biblioteca compartida de libtool libtool partekatutako liburutegia jaettu libtool-kirjasto libtool felagssavn bibliothèque partagée libtool + librarie condividude libtool comhleabharlann libtool biblioteca compartida de libtool ספרייה משותפת של libtool @@ -19383,7 +20037,7 @@ bibliotèca partejada libtool Biblioteka współdzielona libtool biblioteca partilhada libtool - Biblioteca compartilhada libtool + Biblioteca compartilhada libtool bibliotecă partajată libtool Разделяемая библиотека libtool Zdieľaná knižnica libtool @@ -19394,17 +20048,18 @@ libtool paylaşımlı kitaplığı спільна бібліотека libtool thư viện dùng chung libtool - libtool 共享库 - libtool 共享函式庫 + libtool 共享库 + libtool 共享函式庫 shared library + gedeelde biblioteek مكتبة مشتركة bölüşülmüş kitabxana - supolnaja biblijateka + supolnaja biblijateka Споделена библиотека biblioteca compartida sdílená knihovna @@ -19412,13 +20067,14 @@ delt bibliotek Gemeinsame Bibliothek Αρχείο κοινόχρηστης βιβλιοθήκης - shared library + shared library dinamike bindebla biblioteko biblioteca compartida partekatutako liburutegia jaettu kirjasto felagssavn bibliothèque partagée + librarie condividude comhleabharlann biblioteca compartida ספרייה משותפת @@ -19439,7 +20095,7 @@ bibliotèca partejada Biblioteka współdzielona biblioteca partilhada - Biblioteca compartilhada + Biblioteca compartilhada bibliotecă partajată Разделяемая библиотека Zdieľaná knižnica @@ -19450,45 +20106,36 @@ paylaşımlı kitaplık спільна бібліотека thư viện dùng chung - 共享库 - 共享函式庫 + 共享库 + 共享函式庫 - - - - - - - - - - - - + + - shell script + shell-skrip سكربت شِل qabıq skripti - skrypt abałonki + skrypt abałonki Скрипт на обвивката script shell skript shellu sgript plisgyn - skalprogram + skal-program Shell-Skript Δέσμη ενεργειών κελύφους - shell script + shell script ŝelskripto secuencia de órdenes en shell shell script-a komentotulkin komentotiedosto skel boðrøð script shell + script shell script bhlaoisce script de shell תסריט מעטפת @@ -19509,7 +20156,7 @@ escript shell Skrypt powłoki script de terminal - Script shell + Script shell script shell Сценарий shell Skript shellu @@ -19520,44 +20167,46 @@ kabuk betiği скрипт оболонки văn lệnh trình bao - shell 脚本 - shell 指令稿 + shell 脚本 + shell 指令稿 - - - - - - - - - - - + + + + + + + + + + + Shockwave Flash file + Shockwave Flash-lêer ملف Shockwave Flash - Fajł Shockwave Flash + Fajł Shockwave Flash Файл — Shockwave Flash fitxer Shockwave Flash soubor Shockwave Flash Shockwave Flash-fil Shockwave-Flash-Datei Αρχείο Shockwave Flash - Shockwave Flash file + Shockwave Flash file dosiero de Shockwave Flash archivo Shockwave Flash Shockwave Flash fitxategia Shockwave Flash -tiedosto Shockwave Flash fíla fichier Shockwave Flash + file Shockwave Flash comhad Shockwave Flash ficheiro sockwave Flash קובץ של Shockwave Flash @@ -19578,7 +20227,7 @@ fichièr Shockwave Flash Plik Shockwave Flash ficheiro Shockwave Flash - Arquivo Shockwave Flash + Arquivo Shockwave Flash Fișier Shockwave Flash Файл Shockwave Flash Súbor Shockwave Flash @@ -19589,36 +20238,38 @@ Shockwave Flash dosyası файл Shockwave Flash Tập tin Flash Shockwave - Shockwave Flash 文件 - Shockwave Flash 檔案 + Shockwave Flash 文件 + Shockwave Flash 檔案 - - + + - + Shorten audio + Shorten-oudio Shorten سمعي - Aŭdyjo Shorten + Aŭdyjo Shorten Аудио — Shorten àudio de Shorten zvuk Shorten - Shortenlyd + Shorten-lyd Shorten-Audio Ήχος Shorten - Shorten audio + Shorten audio Shorten-sondosiero - sonido Shorten + audio Shorten Shorten audioa Shorten-ääni Shorten ljóður audio Shorten + audio Shorten fuaim Shorten son Shorten שמע של Shorten @@ -19638,7 +20289,7 @@ àudio Shorten Plik dźwiękowy Shorten áudio Shorten - Áudio Shorten + Áudio Shorten Audio Shorten Аудио Shorten Zvuk Shorten @@ -19646,35 +20297,37 @@ Audio Shorten Шортен звук Shorten-ljud - Kısaltılmış ses + Shorten sesi звук Shorten Âm thanh Shorten - Shorten 音频 - Shorten 音訊 + Shorten 音频 + Shorten 音訊 - + Siag spreadsheet + Siag-sigblad جدول Siag - Raźlikovy arkuš Siag + Raźlikovy arkuš Siag Таблица — Siag full de càlcul Siag sešit Siag Siagregneark Siag-Tabelle Λογιστικό φύλλο Siag - Siag spreadsheet + Siag spreadsheet Siag-kalkultabelo hoja de cálculo de Siag Siag kalkulu-orria Siag-taulukko Siag rokniark feuille de calcul Siag + sfuei di calcul Siag scarbhileog Siag folla de cálculo de Siag גליון נתונים של Siag @@ -19695,7 +20348,7 @@ fuèlh de calcul Siag Arkusz Siag folha de cálculo Siag - Planilha do Siag + Planilha do Siag Foaie de calcul Siag Электронная таблица Siag Zošit Siag @@ -19703,32 +20356,34 @@ Fletë llogaritjesh Siag Сјаг табела Siag-kalkylblad - Siag çalışma sayfası + Siag hesap çizelgesi ел. таблиця Siag Bảng tính Slag - Siag 电子表格 - Siag 試算表 + Siag 电子表格 + Siag 試算表 Skencil document + Skencil-dokument مستند Skencil Documentu de Skencil - Dakument Skencil + Dakument Skencil Документ — Skencil document Skencil dokument Skencil Skencildokument Skencil-Dokument Έγγραφο Skencil - Skencil document + Skencil document Skencil-dokumento documento de Skencil Skencil dokumentua Skencil-asiakirja Skencil skjal document Skencil + document Skencil cáipéis Skencil documento Skencil מסמך Skencil @@ -19747,7 +20402,7 @@ document Skencil Dokument Skencil documento Skencil - Documento do Skencil + Documento do Skencil Document Skencil Документ Skencil Dokument Skencil @@ -19758,19 +20413,20 @@ Skencil belgesi документ Skencil Tài liệu Skencil - Skencil 文档 - Skencil 文件 + Skencil 文档 + Skencil 文件 - + Stampede package + Stampede-pakket حزمة Stampede Stampede paketi - Pakunak Stampede + Pakunak Stampede Пакет — Stampede paquet Stampede balíček Stampede @@ -19778,13 +20434,14 @@ Stampedepakke Stampede-Paket Πακέτο Stampede - Stampede package + Stampede package Stampede-pakaĵo paquete Stampede Stampede paketea Stampede-paketti Stampede pakki paquet Stampede + pachet Stampede pacáiste Stampede paquete Stampede חבילה של Stampede @@ -19805,7 +20462,7 @@ paquet Stampede Pakiet Stampede pacote Stampede - Pacote Stampede + Pacote Stampede Pachet Stampede Пакет Stampede Balíček Stampede @@ -19816,21 +20473,23 @@ Stampede paketi пакунок Stampede Gói Stampede - Stampede 软件包 - Stampede 軟體包 + Stampede 软件包 + Stampede 軟體包 SG-1000 ROM + ROM — SG-1000 ROM de SG-1000 ROM pro SG-1000 - SG-1000 ROM + SG-1000-ROM SG-1000 ROM - SG-1000 ROM + SG-1000 ROM ROM de SG-1000 SG-1000 ROM SG-1000 -ROM ROM SG-1000 + ROM SG-1000 ROM SG-1000 SG-1000 ROM SG-1000 ROM @@ -19839,30 +20498,33 @@ SG-1000 ROM SG-1000 롬 Plik ROM konsoli SG-1000 - ROM de SG-1000 + ROM de SG-1000 SG-1000 ROM ROM pre SG-1000 + SG-1000 ROM СГ-1000 РОМ SG-1000-rom SG-1000 ROM ППП SG-1000 - SG-1000 ROM - SG-1000 ROM + SG-1000 ROM + SG-1000 ROM - + Master System ROM + ROM — Master System ROM de Master System ROM pro Master System - Master System ROM + Master System-ROM Master System ROM - Master System ROM + Master System ROM ROM de Master System Master System ROM Master System -ROM ROM Master System + ROM Master System ROM Master System Master System ROM Master System ROM @@ -19871,30 +20533,38 @@ Master System ROM 마스터 시스템 롬 Plik ROM konsoli SMS - ROM de Master System + ROM de Master System Master System ROM ROM pre Master System Мастер Систем РОМ Master System-rom Master System ROM ППП Master System - Master System ROM - Master System ROM + Master System ROM + Master System ROM - + Game Gear ROM + ROM — Game Gear ROM de Game Gear ROM pro Game Gear - Game Gear ROM + Game Gear-ROM Game Gear ROM - Game Gear ROM + Game Gear ROM ROM de Game Gear Game Gear ROM Game Gear -ROM ROM Game Gear + ROM Game Gear ROM Game Gear Game Gear ROM Game Gear ROM @@ -19903,36 +20573,44 @@ Game Gear ROM 게임 기어 롬 Plik ROM konsoli Game Gear - ROM de Game Gear + ROM de Game Gear Game Gear ROM ROM pre Game Gear Гејм Гир РОМ Game Gear-rom Game Gear ROM ППП Game Gear - Game Gear ROM - Game Gear ROM + Game Gear ROM + Game Gear ROM - + - + Super NES ROM Super NES ROM - Super Nintendo ROM + Super Nintendo ROM ROM — Super NES ROM de Super NES ROM pro Super Nintendo - Super NES-rom + Super NES-ROM Super NES ROM Super NES ROM - Super NES ROM + Super NES ROM ROM de Super NES Super Nintendo-ko ROMa Super Nintendo -ROM Super NES ROM ROM Super Nintendo + ROM Super Nintendo ROM Super NES ROM de Super NES ROM של Super NES @@ -19952,7 +20630,7 @@ ROM Super Nintendo Plik ROM konsoli SNES ROM Super Nintendo - ROM de Super Nintendo + ROM de Super Nintendo ROM Super Nintendo Super NES ROM ROM pre Super Nintendo @@ -19963,8 +20641,8 @@ Super NES ROM ППП Super NES ROM Super Nintendo - Super NES ROM - 超級任天堂 ROM + Super NES ROM + 超級任天堂 ROM @@ -19972,21 +20650,23 @@ StuffIt archive + StuffIt-argief أرشيف StuffIt - Archiŭ StuffIt + Archiŭ StuffIt Архив — StuffIt arxiu StuffIt archiv StuffIt StuffIt-arkiv StuffIt-Archiv Συμπιεσμένο αρχείο StuffIt - StuffIt archive + StuffIt archive StuffIt-arkivo archivador de StuffIt StuffIt artxiboa StuffIt-arkisto StuffIt skjalasavn archive StuffIt + archivi StuffIt cartlann StuffIt arquivo StuffIt ארכיון של StuffIt @@ -20006,7 +20686,7 @@ archiu StuffIt Archiwum StuffIt arquivo StuffIt - Pacote StuffIt + Pacote StuffIt Arhivă StuffIt Архив StuffIt Archív StuffIt @@ -20017,34 +20697,36 @@ StuffIt arşivi архів StuffIt Kho nén Stuffit - Macintosh StuffIt 归档文件 - StuffIt 封存檔 + Macintosh StuffIt 归档文件 + StuffIt 封存檔 - - + + SubRip subtitles + SubRip-onderskrifte ترجمات SubRip - Subtytry SubRip + Subtytry SubRip Субтитри — SubRip subtítols SubRip titulky SubRip SubRip-undertekster SubRip-Untertitel Υπότιτλοι SubRip - SubRip subtitles + SubRip subtitles SubRip-subtekstoj subtítulos SubRip SubRip azpitituluak SubRip-tekstitykset SubRip undirtekstir sous-titres SubRip + sottitui SubRip fotheidil SubRip subtítulos SubRip כתוביות של SubRip @@ -20064,7 +20746,7 @@ sostítols SubRip Napisy SubRip legendas SubRip - Legendas SubRip + Legendas SubRip Subtitrare SubRip Субтитры SubRip Titulky SubRip @@ -20072,34 +20754,36 @@ Nëntituj SubRip Суб Рип преводи SubRip-undertexter - SubRip altyazıları + SubRip alt yazıları субтитри SubRip Phụ đề SubRip - SubRip 字幕 - SubRip 字幕 + SubRip 字幕 + SubRip 字幕 - - + + WebVTT subtitles + WebVTT-onderskrifte Субтитри — WebVTT subtítols WebVTT titulky WebVTT WebVTT-undertekster WebVTT-Untertitel Υπότιτλοι WebVTT - WebVTT subtitles + WebVTT subtitles subtítulos WebVTT WebVTT azpitituluak WebVTT-tekstitykset sous-titres WebVTT + sottitui WebVTT fotheidil WebVTT subtítulos WebVTT כתוביות WebVTT @@ -20117,42 +20801,44 @@ sostítols WebVTT Napisy WebVTT legendas WebVTT - Legendas WebVTT + Legendas WebVTT Субтитры WebVTT Titulky WebVTT Podnapisi WebVTT Веб ВТТ преводи WebVTT-undertexter - WebVTT altyazıları + WebVTT alt yazıları субтитри WebVTT - WebVTT 字幕 - WebVTT 字幕 + WebVTT 字幕 + WebVTT 字幕 VTT Video Text Tracks - + SAMI subtitles + SAMI-onderskrifte ترجمات SAMI - Subtytry SAMI + Subtytry SAMI Субтитри — SAMI subtítols SAMI titulky SAMI SAMI-undertekster SAMI-Untertitel Υπότιτλοι SAMI - SAMI subtitles + SAMI subtitles SAMI-subtekstoj subtítulos SAMI SAMI azpitituluak SAMI-tekstitykset SAMI undirtekstir sous-titres SAMI + sottitui SAMI fotheidil SAMI subtítulos SAMI כתוביות SAMI @@ -20172,7 +20858,7 @@ sostítols SAMI Napisy SAMI legendas SAMI - Legendas SAMI + Legendas SAMI Subtitrări SAMI Субтитры SAMI Titulky SAMI @@ -20180,38 +20866,40 @@ Nëntituj SAMI САМИ преводи SAMI-undertexter - SAMI altyazıları + SAMI alt yazıları субтитри SAMI Phụ đề SAMI - SAMI 字幕 - SAMI 字幕 + SAMI 字幕 + SAMI 字幕 SAMI Synchronized Accessible Media Interchange - + MicroDVD subtitles + MicroDVD-onderskrifte ترجمات MicroDVD - Subtytry MicroDVD + Subtytry MicroDVD Субтитри — MicroDVD subtítols MicroDVD titulky MicroDVD MicroDVD-undertekster MicroDVD-Untertitel Υπότιτλοι MicroDVD - MicroDVD subtitles + MicroDVD subtitles MicroDVD-subtekstoj subtítulos de MicroDVD MicroDVD azpitituluak MicroDVD-tekstitykset MicroDVD undirtekstir sous-titres MicroDVD + sottitui MicroDVD fotheidil MicroDVD subtítulos de MicroDVD כתוביות של MicroDVD @@ -20232,7 +20920,7 @@ sostítols MicroDVD Napisy MicroDVD legendas MicroDVD - Legendas MicroDVD + Legendas MicroDVD Subtitrări MicroDVD Субтитры MicroDVD Titulky MicroDVD @@ -20240,36 +20928,38 @@ Nëntituj MicroDVD Микро ДВД преводи MicroDVD-undertexter - MicroDVD altyazısı + MicroDVD alt yazısı субтитри MicroDVD Phụ đề MicroDVD - MicroDVD 字幕 - MicroDVD 字幕 + MicroDVD 字幕 + MicroDVD 字幕 - - - + + + MPSub subtitles + MPSub-onderskrifte ترجمات MPSub - Subtytry MPSub + Subtytry MPSub Субтитри — MPSub subtítols MPSub titulky MPSub MPSub-undertekster MPSub-Untertitel Υπότιτλοι MPSub - MPSub subtitles + MPSub subtitles MPSub-subtekstoj subtítulos MPSub MPSub azpitituluak MPSub-tekstitykset MPSub undirtekstir sous-titres MPSub + sottitui MPSub fotheidil MPSub subtítulos MPSub כתוביות MPSub @@ -20290,7 +20980,7 @@ sostítols MPSub Napisy MPSub legendas MPSub - Legendas MPSub + Legendas MPSub Subtitrări MPSub Субтитры MPSub Titulky MPSub @@ -20298,36 +20988,38 @@ Nëntituj MPSub МПСуб преводи MPSub-undertexter - MPSub altyazıları + MPSub alt yazıları субтитри MPSub Phụ đề MPSub - MPSub 字幕 - MPSub 字幕 + MPSub 字幕 + MPSub 字幕 MPSub MPlayer Subtitle - + SSA subtitles + SSA-onderskrifte ترجمات SSA - Subtytry SSA + Subtytry SSA Субтитри — SSA subtítols SSA titulky SSA SSA-undertekster SSA-Untertitel Υπότιτλοι SSA - SSA subtitles + SSA subtitles SSA-subtekstoj subtítulos SSA SSA azpitituluak SSA-tekstitykset SSA undirtekstir sous-titres SSA + sottitui SSA fotheidil SSA Subtitulos SSA כתובית SSA @@ -20347,7 +21039,7 @@ sostítols SSA Napisy SSA legendas SSA - Legendas SSA + Legendas SSA Subtitrări SSA Субтитры SSA Titulky SSA @@ -20355,38 +21047,40 @@ Nëntituj SSA ССА преводи SSA-undertexter - SSA altyazıları + SSA alt yazıları субтитри SSA Phụ đề SSA - SSA 字幕 - SSA 字幕 + SSA 字幕 + SSA 字幕 SSA SubStation Alpha - - + + SubViewer subtitles + SubViewer-onderskrifte ترجمات SubViewer - Subtytry SubViewer + Subtytry SubViewer Субтитри — SubViewer subtítols SubViewer titulky SubViewer SubViewer-undertekster SubViewer-Untertitel Υπότιτλοι SubViewer - SubViewer subtitles + SubViewer subtitles SubViewer-subtekstoj subtítulos SubViewer SubViewer azpitituluak SubViewer-tekstitykset SubViewer undirtekstir sous-titres SubViewer + sottitui SubViewer fotheidil SubViewer subtítulos SubViewer כתוביות של SubViewer @@ -20406,7 +21100,7 @@ sostítols SubViewer Napisy SubViewer legendas SubViewer - Legendas SubViewer + Legendas SubViewer Subtitrare SubViewer Субтитры SubViewer Titulky SubViewer @@ -20414,33 +21108,35 @@ Nëntituj SubViewer Суб Вјивер преводи SubViewer-undertexter - SubViewer altyazıları + SubViewer alt yazıları субтитри SubViewer Phụ đề SubViewer - SubViewer 字幕 - SubViewer 字幕 + SubViewer 字幕 + SubViewer 字幕 - + iMelody ringtone + iMelody-luitoon نغمة iMelody - Rington iMelody + Rington iMelody Аудио — iMelody to de trucada iMelody vyzváněcí melodie iMelody iMelody-ringetone iMelody-Klingelton ringtone iMelody - iMelody ringtone + iMelody ringtone tono de llamada iMelody iMelody doinua iMelody-soittoääni iMelody ringitóni sonnerie iMelody + sunarie iMelody ton buailte iMelody Melodía de iMelody צלצול של iMelody @@ -20460,7 +21156,7 @@ sonariá iMelody Dzwonek iMelody toque iMelody - Toque de celular do iMelody + Toque de celular do iMelody Sonerie iMelody Мелодия iMelody Vyzváňacie melódie iMelody @@ -20471,33 +21167,35 @@ iMelody melodisi рінгтон iMelody tiếng réo iMelody - iMelody 铃声 - iMelody 鈴聲 + iMelody 铃声 + iMelody 鈴聲 - + - + SMAF audio + SMAF-oudio SMAF سمعي - Aŭdyjo SMAF + Aŭdyjo SMAF Аудио — SMAF àudio SMAF zvuk SMAF SMAF-lyd SMAF-Audio Ήχος SMAF - SMAF audio + SMAF audio SMAF-sondosiero - sonido SMAF + audio SMAF SMAF audioa SMAF-ääni SMAF ljóður audio SMAF + audio SMAF fuaim SMAF son SMAF שמע SMAF @@ -20517,7 +21215,7 @@ àudio SMAF Plik dźwiękowy SMAF áudio SMAF - Áudio SMAF + Áudio SMAF Audio SMAF Аудио SMAF Zvuk SMAF @@ -20528,35 +21226,37 @@ SMAF sesi звук SMAF Âm thanh SMAF - SMAF 音频 - SMAF 音訊 + SMAF 音频 + SMAF 音訊 SMAF Synthetic music Mobile Application Format - + - + MRML playlist + MRML-speellys قائمة تشغيل MRML - Śpis piesień MRML + Śpis piesień MRML Списък за изпълнение — MRML llista de reproducció MRML seznam k přehrání MRML MRML-afspilningsliste MRML-Wiedergabeliste Λίστα αναπαραγωγής MRML - MRML playlist + MRML playlist MRML-ludlisto lista de reproducción MRML MRML erreprodukzio-zerrenda MRML-soittolista MRML avspælingarlisti liste de lecture MRML + liste di riproduzion MRML seinmliosta MRML lista de reprodución MRML רשימת השמעה MRML @@ -20577,7 +21277,7 @@ lista de lectura MRML Lista odtwarzania MRML lista de reprodução MRML - Lista de reprodução do MRML + Lista de reprodução do MRML Listă redare MRML Список воспроизведения MRML Zoznam skladieb MRML @@ -20585,36 +21285,38 @@ Listë titujsh MRML МРМЛ списак нумера MRML-spellista - MRML oynatma listesi + MRML çalma listesi список відтворення MRML Danh mục nhạc MRML - MRML 播放列表 - MRML 播放清單 + MRML 播放列表 + MRML 播放清單 MRML Multimedia Retrieval Markup Language - + XMF audio + XMF-oudio XMF سمعي - Aŭdyjo XMF + Aŭdyjo XMF Аудио — XMF àudio XMF zvuk XMF XMF-lyd XMF-Audio Ήχος XMF - XMF audio + XMF audio XMF-sondosiero - sonido XMF + audio XMF XMF audioa XMF-ääni XMF ljóður audio XMF + audio XMF fuaim XMF son XMF שמע XMF @@ -20634,7 +21336,7 @@ àudio XMF Plik dźwiękowy XMF aúdio XMF - Áudio XMF + Áudio XMF Audio XMF Аудио XMF Zvuk XMF @@ -20645,13 +21347,13 @@ XMF sesi звук XMF Âm thanh XMF - XMF 音频 - XMF 音訊 + XMF 音频 + XMF 音訊 XMF eXtensible Music Format - - + + @@ -20659,23 +21361,25 @@ SV4 CPIO archive + SV4 CPIO-argief أرشيف SV4 CPIO SV4 CPIO arxivi - Archiŭ SV4 CPIO + Archiŭ SV4 CPIO Архив — SV4 CPIO - arxiu CPIO SV4 + arxiu SV4 CPIO archiv SV4 CPIO Archif CPIO SV4 SV4 CPIO-arkiv SV4-CPIO-Archiv Συμπιεσμένο αρχείο SV4 CPIO - SV4 CPIO archive + SV4 CPIO archive SV4-CPIO-arkivo archivador SV4 CPIO SV4 CPIO artxiboa SV4 CPIO -arkisto SV4 CPIO skjalasavn archive SV4 CPIO + archivi SV4 CPIO cartlann SV4 CPIO arquivo SV4 CPIO ארכיון של SV4 SPIO @@ -20696,7 +21400,7 @@ archiu SV4 CPIO Archiwum SV4 CPIO arquivo SV4 CPIO - Pacote SV4 CPIO + Pacote SV4 CPIO Arhivă SV4 CPIO Архив SV4 CPIO Archív SV4 CPIO @@ -20707,28 +21411,30 @@ SV4 CPIO arşivi архів SV4 CPIO Kho nén CPIO SV4 - SV4 CPIO 归档文件 - SV4 CPIO 封存檔 + SV4 CPIO 归档文件 + SV4 CPIO 封存檔 SV4 CPIO archive (with CRC) + SV4 CPIO-argief (met CRC) أرشيف SV4 CPIO (مع CRC) - Archiŭ SV4 CPIO (z CRC) + Archiŭ SV4 CPIO (z CRC) Архив — SV4 CPIO, проверка за грешки CRC - arxiu CPIO SV4 (amb CRC) + arxiu SV4 CPIO (amb CRC) archiv SV4 CPIO (s CRC) SV4 CPIO-arkiv (med CRC) SV4-CPIO-Archiv (mit CRC) Συμπιεσμένο αρχείο SV4 CPIO (με CRC) - SV4 CPIO archive (with CRC) + SV4 CPIO archive (with CRC) SV4-CPIO-arkivo (kun CRC) archivador SV4 CPIO (con CRC) SV4 CPIO artxiboa (CRC-rekin) SV4 CPIO -arkisto (CRC:llä) SV4 CPIO skjalasavn (við CRC) archive SV4 CPIO (avec CRC) + archivi SV4 CPIO (cun CRC) cartlann SV4 CPIO (le CRC) Arquivador SV4 CPIO (con CRC) ארכיון של SV4 SPIO (עם CRC) @@ -20747,9 +21453,9 @@ SV4 CPIO-archief (met CRC) SV4 CPIO arkiv (med CRC) archiu SV4 CPIO (avec CRC) - Archiwum SV4 CPIO (z sumą kontrolną) + Archiwum SV4 CPIO (z sumą kontrolną) arquivo SV4 CPIO (com CRC) - Pacote SV4 CPIO (com CRC) + Pacote SV4 CPIO (com CRC) Arhivă SV4 CPIO (cu CRC) Архив SV4 CPIO (с CRC) Archív SV4 CPIO (s CRC) @@ -20760,16 +21466,17 @@ SV4 CPIO arşivi (CRC ile) архів SV4 CPIO (з CRC) Kho nén CPIO SV4 (với CRC) - SV4 CPIP 归档文件(带 CRC) - SV4 CPIO 封存檔 (具有 CRC) + SV4 CPIP 归档文件(带 CRC) + SV4 CPIO 封存檔 (具有 CRC) Tar archive + Tar-argief أرشيف Tar Tar arxivi - Archiŭ tar + Archiŭ tar Архив — tar arxiu tar archiv Tar @@ -20777,12 +21484,13 @@ Tar-arkiv Tar-Archiv Συμπιεσμένο αρχείο Tar - Tar archive + Tar archive archivador Tar Tar artxiboa Tar-arkisto Tar skjalasavn archive tar + archivi Tar cartlann Tar arquivo Tar ארכיון Tar @@ -20803,10 +21511,10 @@ archiu tar Archiwum tar arquivo Tar - Pacote Tar + Pacote Tar Arhivă Tar Архив TAR - Archív tar + Archív Tar Datoteka arhiva Tar Arkiv tar Тар архива @@ -20814,13 +21522,13 @@ Tar arşivi архів tar Kho nén tar - Tar 归档文件 - Tar 封存檔 + Tar 归档文件 + Tar 封存檔 - - + + @@ -20828,20 +21536,22 @@ Tar archive (compressed) + Tar-argief (saamgepers) أرشيف Tar (مضغوط) - Archiŭ tar (skampresavany) + Archiŭ tar (skampresavany) Архив — tar, компресиран arxiu tar (amb compressió) archiv Tar (komprimovaný) Tar-arkiv (komprimeret) Tar-Archiv (komprimiert) Αρχείο Tar (συμπιεσμένο) - Tar archive (compressed) + Tar archive (compressed) archivador Tar (comprimido) Tar artxiboa (konprimitua) Tar-arkisto (pakattu) Tar skjalasavn (stappað) archive tar (compressée) + archivi Tar (comprimût) cartlann Tar (comhbhrúite) arquivo Tar (comprimido) ארכיון Tar (מכווץ) @@ -20861,10 +21571,10 @@ archiu tar (compressat) Archiwum tar (skompresowane) arquivo Tar (comprimido) - Pacote Tar (compactado) + Pacote Tar (compactado) Arhivă Tar (comprimată) Архив TAR (сжатый) - Archív tar (komprimovaný) + Archív Tar (komprimovaný) Datoteka arhiva Tar (stisnjen) Arkiv tar (i kompresuar) Тар архива (запакована) @@ -20872,8 +21582,8 @@ Tar arşivi (sıkıştırılmış) архів tar (стиснений) Kho nén tar (đã nén) - Tar 归档文件(压缩) - Tar 封存檔 (UNIX 格式壓縮) + Tar 归档文件(压缩) + Tar 封存檔 (壓縮) @@ -20881,25 +21591,27 @@ generic font file + generiese skriftipelêer ملف الخط العام - zvyčajny fajł šryftu + zvyčajny fajł šryftu Шрифт fitxer de lletra genèrica obecný soubor s fontem general skrifttypefil Allgemeine Schriftdatei Γενικό αρχείο γραμματοσειράς - generic font file + generic font file genera tipara dosiero tipo de letra genérico letra-tipo orokorra yleinen fonttitiedosto felagsstavasniðsfíla fichier de polices générique + file di caratar gjeneric comhad cló ginearálta ficheiro de tipo de fonte xenérica קובץ גופן גנרי - Izvorna datoteka slova + generička datoteka fonta általános betűkészletfájl File de typo de litteras generic berkas fonta generik @@ -20916,7 +21628,7 @@ fichièr de poliças generic Zwykły plik czcionki ficheiro genérico de letra - Arquivo de fonte genérico + Arquivo de fonte genérico fișier de font generic Обычный файл шрифта Obyčajný súbor písma @@ -20927,32 +21639,34 @@ genel yazı tipi dosyası загальний файл шрифту tập tin phông giống loài - 通用字体文件 - 通用字型檔 + 通用字体文件 + 通用字型檔 packed font file + verpakte skriftipelêer ملف الخط المرزم - zapakavany fajł šryftu + zapakavany fajł šryftu Шрифт — компресиран fitxer de lletra empaquetada komprimovaný soubor s fontem pakket skrifttypefil Gepackte Schriftdatei Αρχείο συμπιεσμένης γραμματοσειράς - packed font file + packed font file pakigita tipara dosiero tipo de letra empaquetado Letra-tipo fitxategi paketatua pakattu fonttitiedosto pakkað stavasniðsfíla fichier de polices empaquetées + file di caratar impachetât comhad cló pacáilte ficheiro de fonte empaquetada קובץ גופן ארוז - Zapakirana datoteka slova + zapakirana datoteka fonta packed font-fájl File de typos de litteras impacchettate berkas fonta terkemas @@ -20969,7 +21683,7 @@ fichièr de poliças empaquetadas Plik ze spakowaną czcionką ficheiro de letras empacotadas - Arquivo de fonte empacotado + Arquivo de fonte empacotado fișier font împachetat Сжатый файл шрифта Komprimovaný súbor písma @@ -20980,29 +21694,31 @@ paketlenmiş yazı tipi dosyası запакований файл шрифту tập tin phông chữ đã đóng gói - 打包的字体文件 - 包裝字型檔 + 打包的字体文件 + 包裝字型檔 TGIF document + TGIF-dokument مستند TGIF Documentu de TGIF - Dakument TGIF + Dakument TGIF Документ — TGIF document TGIF dokument TGIF TGIF-dokument TGIF-Dokument Έγγραφο TGIF - TGIF document + TGIF document TGIF-dokumento documento TGIF TGIF dokumentua TGIF-asiakirja TGIF skjal document TGIF + document TGIF cáipéis TGIF documento TGIF מסמך TGIF @@ -21023,7 +21739,7 @@ document TGIF Dokument TGIF documento TGIF - Documento TGIF + Documento TGIF Document TGIF Документ TGIF Dokument TGIF @@ -21034,19 +21750,20 @@ TGIF belgesi документ TGIF Tài liệu TGIF - TGIF 文档 - TGIF 文件 + TGIF 文档 + TGIF 文件 - + theme + tema سمة örtük - matyŭ + matyŭ Тема tema motiv @@ -21054,13 +21771,14 @@ tema Thema Θέμα - theme + theme etoso tema gaia teema tema thème + teme téama tema ערכת נושא @@ -21082,7 +21800,7 @@ tèma Motyw tema - Tema + Tema temă Тема Motív @@ -21093,18 +21811,19 @@ tema тема sắc thái - 主题 - 佈景主題 + 主题 + 佈景主題 ToutDoux document + ToutDoux-dokument مستند ToutDoux Documentu de ToutDoux ToutDoux sənədi - Dakument ToutDoux + Dakument ToutDoux Документ — ToutDoux document ToutDoux dokument ToutDoux @@ -21112,13 +21831,14 @@ ToutDoux-dokument ToutDoux-Dokument Έγγραφο ToutDoux - ToutDoux document + ToutDoux document ToutDoux-dokumento documento de ToutDoux ToutDoux dokumentua ToutDoux-asiakirja ToutDoux skjal document ToutDoux + document ToutDoux cáipéis ToutDoux documento de ToutDoux מסמך של ToutDoux @@ -21139,7 +21859,7 @@ document ToutDoux Dokument ToutDoux documento ToutDoux - Documento do ToutDoux + Documento do ToutDoux Document ToutDoux Документ ToutDoux Dokument ToutDoux @@ -21150,27 +21870,29 @@ ToutDoux belgesi документ ToutDoux Tài liệu ToutDoux - ToutDoux 文档 - ToutDoux 文件 + ToutDoux 文档 + ToutDoux 文件 backup file + rugsteunlêer ملف النسخ الاحتياطي - zapasny fajł + zapasny fajł Резервно копие fitxer de còpia de seguretat záložní soubor sikkerhedskopi Sicherungsdatei Αντίγραφο ασφαλείας - backup file + backup file restaŭrkopio archivo de respaldo babes-kopiako fitxategia varmuuskopio trygdarritsfíla fichier de sauvegarde + file di backup comhad cúltaca ficheiro de copia de seguridade קובץ גיבוי @@ -21191,7 +21913,7 @@ fichièr de salvament Plik zapasowy cópia de segurança - Arquivo de backup + Arquivo de backup fișier de backup Резервная копия Záložný súbor @@ -21202,8 +21924,8 @@ yedek dosyası резервна копія tập tin sao lưu - 备份文件 - 備份檔 + 备份文件 + 備份檔 @@ -21212,10 +21934,11 @@ Troff document + Troff-dokument مستند Troff Documentu de Troff Troff sənədi - Dakument Troff + Dakument Troff Документ — Troff document Troff dokument Troff @@ -21223,13 +21946,14 @@ Troffdokument Troff-Dokument Έγγραφο troff - Troff document + Troff document Troff-dokumento documento de Troff Troff dokumentua Troff-asiakirja Troff skjal document Troff + document Troff cáipéis Troff documento Troff מסמך Troff @@ -21250,7 +21974,7 @@ document Troff Dokument Troff documento Troff - Documento Troff + Documento Troff Document Troff Документ Troff Dokument troff @@ -21261,16 +21985,16 @@ Troff belgesi документ Troff Tài liệu Troff - Troff 文档 - Troff 文件 + Troff 文档 + Troff 文件 - - - - + + + + @@ -21278,15 +22002,19 @@ Manpage manual document + Manpage-handleiding + Страница от ръководството document de pàgina man manuálová stránka Manpage-manualdokument Manpage-Handbuchdokument Έγγραφο βοήθειας manpage - Manpage manual document + Manpage manual document documento de manual de Manpage Manpage eskuliburu dokumentua + Manpage manuaali dokumentit document manuel Manpage + document manuâl Manpage cáipéis lámhleabhair Man מסמך תיעוד man Manpage dokument priručnika @@ -21295,42 +22023,44 @@ Dokumen manual manpage Documento di manuale manpage Manpage нұсқаулық құжаты - 맨 페이지 설명서 문서 + man 페이지 설명서 문서 document de manual Manpage Dokument podręcznika stron pomocy documento de ajuda Manpage - Documento Manpage + Documento Manpage Документ справочной системы Manpage Dokument manuálu Manpage документ упутства странице упутства Manpage-manualdokument Man sayfası el kitabı belgesi документ підручника man - Manpage 手册文档 - Manpage 手冊說明文件 + Manpage 手册文档 + Manpage 手冊說明文件 manual page (compressed) + handleiding (saamgepers) صفحة المساعدة (مضغوطة) man səhifəsi (sıxışdırılmış) - staronka dapamohi (skampresavanaja) - Страница от справочника, компресирана + staronka dapamohi (skampresavanaja) + Страница от ръководството — компресирана pàgina de manual (amb compressió) manuálová stránka (komprimovaná) tudalen llawlyfr (wedi ei gywasgu) manualside (komprimeret) Handbuchseite (komprimiert) Σελίδα οδηγιών (συμπιεσμένη) - manual page (compressed) + manual page (compressed) manpaĝo (kunpremita) página de manual (comprimida) eskuliburu orria (konprimitua) manuaalisivu (pakattu) handbókasíða (stappað) page de manuel (compressée) + pagjine di manuâl (comprimude) leathanach lámhleabhair (comhbhrúite) páxina de manual (comprimida) דף עזר (מכווץ) @@ -21351,7 +22081,7 @@ pagina de manual (compressat) Strona podręcznika (skompresowana) página de manual (comprimida) - Página de manual (compactada) + Página de manual (compactada) pagină de manual (comprimată) Страница руководства (сжатая) Manuálová stránka (komprimovaná) @@ -21362,31 +22092,33 @@ kılavuz dosyası (sıkıştırılmış) сторінка посібника (стиснена) trang hướng dẫn (đã nén) - 手册页(压缩) - 手冊頁面 (壓縮版) + 手册页(压缩) + 手冊頁面 (壓縮版) Tar archive (LZO-compressed) + Tar-argief (LZO-saamgepers) أرشيف Tar (مضغوط-LZO) - Archiŭ tar (LZO-skampresavany) + Archiŭ tar (LZO-skampresavany) Архив — tar, компресиран с LZO arxiu tar (amb compressió LZO) archiv Tar (komprimovaný pomocí LZO) Tar-arkiv (LZO-komprimeret) Tar-Archiv (LZO-komprimiert) Αρχείο Tar (συμπιεσμένο με LZO) - Tar archive (LZO-compressed) + Tar archive (LZO-compressed) archivador Tar (comprimido con LZO) Tar artxiboa (LZO-rekin konprimitua) Tar-arkisto (LZO-pakattu) Tar skjalasavn (LZO-stappað) archive tar (compression LZO) + archivi Tar (comprimût cun LZO) cartlann Tar (comhbhrúite le LZO) arquivo Tar (comprimido con LZO) ארכיון Tar (מכווץ ע״י LZO) Tar arhiva (LZO sažeta) - Tar archívum (LZO-val tömörítve) + Tar archívum (LZO tömörítésű) Archivo Tar (comprimite con LZO) Arsip Tar (terkompresi LZO) Archivio tar (compresso con LZO) @@ -21401,10 +22133,10 @@ archiu tar (compression LZO) Archiwum tar (kompresja LZO) arquivo Tar (compressão LZO) - Pacote Tar (compactado com LZO) + Pacote Tar (compactado com LZO) Arhivă Tar (comprimată LZO) Архив TAR (сжатый lzo) - Archív tar (komprimovaný pomocou LZO) + Archív Tar (komprimovaný pomocou LZO) Datoteka arhiva Tar (stisnjen z LZO) Arkiv tar (i kompresuar me LZO) Тар архива (запакована ЛЗО-ом) @@ -21412,8 +22144,8 @@ Tar arşivi (LZO ile sıkıştırılmış) архів tar (стиснений LZO) Kho nén tar (đã nén LZO) - Tar 归档文件(LZO 压缩) - Tar 封存檔 (LZO 格式壓縮) + Tar 归档文件(LZO 压缩) + Tar 封存檔 (LZO 壓縮) @@ -21421,6 +22153,7 @@ XZ archive + XZ-argief أرشيف XZ Архив — XZ arxiu XZ @@ -21428,13 +22161,14 @@ XZ-arkiv XZ-Archiv Συμπιεσμένο αρχείο XZ - XZ archive + XZ archive XZ-arkivo archivador XZ XZ artxiboa XZ-arkisto XZ skjalasavn archive XZ + archivi XZ cartlann XZ ficheiro XZ ארכיון XZ @@ -21452,7 +22186,7 @@ archiu XZ Archiwum XZ arquivo XZ - Pacote XZ + Pacote XZ Arhivă XZ Архив XZ Archív XZ @@ -21461,16 +22195,17 @@ XZ-arkiv XZ arşivi архів XZ - XZ 归档文件 - XZ 封存檔 + XZ 归档文件 + XZ 封存檔 - + Tar archive (XZ-compressed) + Tar-argief (XZ-saamgepers) أرشيف Tar (مضغوط-XZ) Архив — tar, компресиран с XZ arxiu tar (amb compressió XZ) @@ -21478,17 +22213,18 @@ Tar-arkiv (XZ-komprimeret) Tar-Archiv (XZ-komprimiert) Αρχείο Tar (συμπιεσμένο με XZ) - Tar archive (XZ-compressed) + Tar archive (XZ-compressed) archivador Tar (comprimido con XZ) Tar artxiboa (XZ-rekin konprimitua) Tar-arkisto (XZ-pakattu) Tar skjalasavn(XZ-stappað) archive tar (compression XZ) + archivi Tar (comprimût cun XZ) cartlann Tar (comhbhrúite le XZ) arquivo Tar (comprimido con XZ) ארכיון Tar (מכווץ ע״י XZ) Tar arhiva ( XZ sažeta) - Tar archívum (XZ-vel tömörítve) + Tar archívum (XZ tömörítésű) Archivo Tar (comprimite con XZ) Arsip Tar (terkompresi XZ) Archivio tar (compresso con XZ) @@ -21501,24 +22237,91 @@ archiu tar (compression XZ) Archiwum tar (kompresja XZ) arquivo Tar (compressão XZ) - Pacote Tar (compactado com XZ) + Pacote Tar (compactado com XZ) Arhivă Tar (comprimată XZ) Архив TAR (сжатый xz) - Archív tar (komprimovaný pomocou XZ) + Archív Tar (komprimovaný pomocou XZ) Datoteka arhiva Tar (stisnjen z XZ) Тар архива (запакована ИксЗ-ом) Tar-arkiv (XZ-komprimerat) Tar arşivi (XZ ile sıkıştırılmış) архів tar (стиснений XZ) - Tar 归档文件(XZ 压缩) - Tar 封存檔 (XZ 格式壓縮) + Tar 归档文件(XZ 压缩) + Tar 封存檔 (XZ 壓縮) + + Zstandard archive + Архив — Zstandard + arxiu Zstandard + archiv Zstandard + Zstandard-arkiv + Zstandard-Archiv + Zstandard archive + archivador Zstandard + Zstandard archive + Zstandard-arkisto + archive Zstandard + archivi Zstandard + Zstandard arhiva + Zstandard archívum + Arsip Zstandard + Archivio Zstandard + Zstandard архиві + Zstandard 압축 파일 + Archiwum Zstandard + Pacote Zstandard + Архив Zstandard + Archív Zstandard + Zstandard-arkiv + Zstandard arşivi + архів Zstandard + Zstandard 归档文件 + Zstandard 封存檔 + + + + + + + + Tar archive (Zstandard-compressed) + Архив — tar, компресиран със Zstandard + arxiu tar (amb compressió Zstandard) + archiv Tar (komprimovaný pomocí Zstandard) + Tar-arkiv (Zstandard-komprimeret) + Tar-Archiv (Zstandard-komprimiert) + Tar archive (Zstandard-compressed) + archivador Tar (comprimido con Zstandard) + Tar artxiboa (Zstandard-rekin konprimitua) + Tar-arkisto (Zstandard-pakattu) + archive tar (compression Zstandard) + archivi Tar (comprimût cun Zstandard) + Tar arhiva (Zstandard-sažeta) + Tar archívum (Zstandard tömörítésű) + Arsip Tar (terkompresi Zstandard) + Archivio tar (compresso con Zstandard) + Tar архиві (Zstandard-пен сығылған) + TAR 묶음 파일(Zstandard 압축) + Archiwum tar (kompresja Zstandard) + Pacote Tar (compactado com Zstandard) + Архив TAR (сжатый zstandard) + Tar-arkiv (Zstandard-komprimerat) + Tar arşivi (Zstandard ile sıkıştırılmış) + архів tar archive (стиснений Zstandard) + Tar 归档文件(Zstandard 压缩) + Tar 封存檔 (Zstandard 壓縮) + + + + + PDF document (XZ-compressed) + PDF-dokument (XZ-saamgepers) Documentu PDF (comprimíu en XZ) Документ — PDF, компресиран с XZ document PDF (amb compressió XZ) @@ -21526,16 +22329,17 @@ PDF-dokument (XZ-komprimeret) PDF-Dokument (XZ-komprimiert) Έγγραφο PDF (συμπιεσμένο με XZ) - PDF document (XZ-compressed) + PDF document (XZ-compressed) documento PDF (comprimido con XZ) PDF dokumentua (XZ-rekin konprimitua) PDF-asiakirja (XZ-pakattu) document PDF (compressé XZ) + document PDF (comprimût cun XZ) cáipéis PDF (comhbhrúite le XZ) documento PDF (comprimido en XZ) מסמך PDF (מכווץ ע״י XZ) PDF dokument ( XZ sažet) - PDF dokumentum (XZ-vel tömörített) + PDF dokumentum (XZ tömörítésű) Documento PDF (comprimite con XZ) Dokumen PDF (terkompresi XZ) Documento PDF (compresso con XZ) @@ -21548,7 +22352,7 @@ document PDF (compressat XZ) Dokument PDF (kompresja XZ) documento PDF (compressão XZ) - Documento PDF (compactado com XZ) + Documento PDF (compactado com XZ) Документ PDF (сжатый xz) Dokument PDF (komprimovaný pomocou XZ) Dokument PDF (XZ-stisnjen) @@ -21556,29 +22360,31 @@ PDF-dokument (XZ-komprimerat) PDF belgesi (XZ ile sıkıştırılmış) документ PDF (стиснений xz) - PDF 文档(XZ) - PDF 文件 (XZ 格式壓縮) + PDF 文档(XZ) + PDF 文件 (XZ 壓縮) Ustar archive + Ustar-argief أرشيف Ustar - Archiŭ ustar + Archiŭ ustar Архив — ustar arxiu ustar archiv Ustar - Ustararkiv + Ustar-arkiv Ustar-Archiv Συμπιεσμένο αρχείο Ustar - Ustar archive + Ustar archive Ustar-arkivo archivador de Ustar Ustar artxiboa Ustar-arkisto Ustar skjalasavn archive Ustar + archivi Ustar cartlann Ustar arquivo Ustar ארכיון Ustar @@ -21598,10 +22404,10 @@ archiu Ustar Archiwum ustar arquivo Ustar - Pacote Ustar + Pacote Ustar Arhivă Ustar Архив Ustar - Archív ustar + Archív Ustar Datoteka arhiva Ustar Arkiv Ustar Устар архива @@ -21609,16 +22415,17 @@ Ustar arşivi архів ustar Kho nén ustar - Ustar 归档文件 - Ustar 封存檔 + Ustar 归档文件 + Ustar 封存檔 WAIS source code + WAIS-bronkode شفرة مصدر WAIS WAIS mənbə faylı - Kryničny kod WAIS + Kryničny kod WAIS Изходен код — WAIS codi font en WAIS zdrojový kód WAIS @@ -21626,13 +22433,14 @@ WAIS-kildekode WAIS-Quelltext Πηγαίος κώδικας WAIS - WAIS source code + WAIS source code WAIS-fontkodo código fuente en WAIS WAIS iturburu-kodea WAIS-lähdekoodi WAIS keldukota code source WAIS + codiç sorzint WAIS cód foinseach WAIS código fonte WAIS קוד מקור של WAIS @@ -21651,9 +22459,9 @@ WAIS-broncode WAIS-kjeldekode còde font WAIS - Plik źródłowy WAIS + Kod źródłowy WAIS código origem WAIS - Código-fonte WAIS + Código-fonte WAIS Cod sursă WAIS Исходный код WAIS Zdrojový kód WAIS @@ -21664,29 +22472,31 @@ WAIS kaynak kodu вихідний код мовою WAIS Mã nguồn WAIS - WAIS 源代码 - WAIS 源碼 + WAIS 源代码 + WAIS 源碼 WordPerfect/Drawperfect image + WordPerfect/Drawperfect-beeld صورة WordPerfect/Drawperfect - Vyjava WordPerfect/Drawperfect + Vyjava WordPerfect/Drawperfect Изображение — WordPerfect/Drawperfect imatge de WordPerfect/Drawperfect obrázek WordPerfect/Drawperfect WordPerfect/Drawperfect-billede WordPerfect/DrawPerfect-Bild Εικόνα WordPerfect/Drawperfect - WordPerfect/Drawperfect image + WordPerfect/Drawperfect image WordPerfect/Drawperfect-bildo imagen de WordPerfect/Drawperfect WordPerfect/Drawperfect irudia WordPerfect/Drawperfect-kuva WordPerfect/Drawperfect mynd image WordPerfect/DrawPerfect + imagjin WordPerfect/Drawperfect íomhá WordPerfect/Drawperfect imaxe de WordPerfect/DrawPerfect תמונה של WordPerfect/Drawperfect @@ -21707,7 +22517,7 @@ imatge WordPerfect/DrawPerfect Obraz WordPerfect/DrawPerfect imagem do WordPerfect/Drawperfect - Imagem do WordPerfect/Drawperfect + Imagem do WordPerfect/Drawperfect Imagine WordPerfect/Drawperfect Изображение WordPerfect/Drawperfect Obrázok WordPerfect/Drawperfect @@ -21718,18 +22528,25 @@ WordPerfect/DrawPerfect görüntüsü зображення WordPerfect/Drawperfect Ảnh WordPerfect/Drawperfect - WordPerfect/Drawperfect 图像 - WordPerfect/Drawperfect 影像 + WordPerfect/Drawperfect 图像 + WordPerfect/Drawperfect 影像 Bandai WonderSwan ROM + ROM — Bandai WonderSwan ROM de Bandai WonderSwan ROM pro Bandai WonderSwan + Bandai WonderSwan-ROM Bandai WonderSwan ROM - Bandai WonderSwan ROM + Bandai WonderSwan ROM ROM de Bandai WonderSwan + Bandai WonderSwan ROM + Bandai WonderSwan ROM + ROM Bandai WonderSwan + ROM Bandai WonderSwan + ROM Bandai WonderSwan Bandai WonderSwan ROM Bandai WonderSwan ROM ROM Bandai WonderSwan @@ -21737,23 +22554,31 @@ Bandai WonderSwan ROM 반다이 원더스완 롬 Plik ROM konsoli Bandai WonderSwan - ROM de WonderSwan da Bandai + ROM de WonderSwan da Bandai Bandai WonderSwan ROM ROM pre Bandai WonderSwan Bandai WonderSwan-rom + Bandai WonderSwan ROM ROM Bandai WonderSwan - 万代 WonderSwan ROM - Bandai WonderSwan ROM + 万代 WonderSwan ROM + 萬代 WonderSwan ROM Bandai WonderSwan Color ROM + ROM — Bandai WonderSwan Color ROM de Bandai WonderSwan Color ROM pro Bandai WonderSwan Color + Bandai WonderSwan Color-ROM Bandai WonderSwan Color ROM - Bandai WonderSwan Color ROM + Bandai WonderSwan Color ROM ROM de Bandai WonderSwan Color + Bandai WonderSwan Color ROM + Bandai WonderSwan Color ROM + ROM Bandai WonderSwan Color + ROM Bandai WonderSwan Color + ROM datha Bandai WonderSwan Bandai WonderSwan Color ROM Bandai WonderSwan Color ROM ROM Bandai WonderSwan Color @@ -21761,33 +22586,36 @@ Bandai WonderSwan Color ROM 반다이 원더스완 컬러 롬 Plik ROM konsoli Bandai WonderSwan Color - ROM de WonderSwan Color da Bandai + ROM de WonderSwan Color da Bandai Bandai WonderSwan Color ROM ROM pre Bandai WonderSwan Color Bandai WonderSwan Color-rom + Bandai WonderSwan Color ROM ROM Bandai WonderSwan Color - 万代 WonderSwan Color ROM - Bandai WonderSwan Color ROM + 万代 WonderSwan Color ROM + 萬代 WonderSwan Color ROM DER/PEM/Netscape-encoded X.509 certificate + DER/PEM/Netscape-geënkodeerde X.509-sertifikaat شهادة DER/PEM/Netscape-encoded X.509 - Sertyfikat X.509, zakadavany ŭ DER/PEM/Netscape + Sertyfikat X.509, zakadavany ŭ DER/PEM/Netscape Сертификат — DER/PEM/Netscape X.509 certificat X.509 codificat com DER/PEM/Netscape certifikát X.509 kódovaný jako DER/PEM/Netscape - DER-/PEM-/Netscapekodet X.509-certifikat + DER-/PEM-/Netscape-kodet X.509-certifikat DER/PEM/Netscape-kodiertes X.509-Zertifikat Ψηφιακό πιστοποιητικό X.509 κωδικοποιημένο κατά DER/PEM/Netscape - DER/PEM/Netscape-encoded X.509 certificate + DER/PEM/Netscape-encoded X.509 certificate DER/PEM/Netscape-kodigita X.509-atestilo certificado X.509 codificado con DER/PEM/Netscape X.509rekin kodetutako DER, PEM edo Netscape zertifikatua DER/PEM/Netscape-koodattu X.509-varmenne DER/PEM/Netscape-encoded X.509 váttan certificat X.509 codé DER/PEM/Netscape + certificât X.509 codificât cun DER/PEM/Netscape teastas X.509 ionchódaithe le DER/PEM/Netscape certificado X.509 codificado con DER/PEM/Netscape אישור מסוג X.509 של DER/PEM/Netscape-encoded @@ -21809,7 +22637,7 @@ certificat X.509 encodat DER/PEM/Netscape Zakodowany w DER/PEM/Netscape certyfikat X.509 certificado X.509 codificado com DER/PEM/Netscape - Certificado X.509 codificado com DER/PEM/Netscape + Certificado X.509 codificado com DER/PEM/Netscape Certificat DER/PEM/Netscape-codat X.509 Сертификат X.509 (DER/PEM/Netscape-закодированный) Certifikát X.509 kódovaný ako DER/PEM/Netscape @@ -21820,8 +22648,8 @@ DER/PEM/Netscape-kodlanmış X.509 sertfikası сертифікат X.509 у форматі DER/PEM/Netscape Chứng nhận X.509 mã hoá bằng Netscape/PEM/DER - DER/PEM/Netscape-encoded X.509 证书 - DER/PEM/Netscape 編碼的 X.509 憑證 + DER/PEM/Netscape-encoded X.509 证书 + DER/PEM/Netscape 編碼的 X.509 憑證 @@ -21830,22 +22658,24 @@ empty document + leë dokument مستند فارغ documentu baleru - pusty dakument + pusty dakument Празен документ document buit prázdný dokument tomt dokument Leeres Dokument Κενό έγγραφο - empty document + empty document malplena dokumento documento vacío dokumentu hutsa tyhjä asiakirja tómt skjal document vide + document vueit cáipéis fholamh documeto baleiro מסמך ריק @@ -21866,7 +22696,7 @@ document void Pusty dokument documento vazio - Documento vazio + Documento vazio document gol Пустой документ Prázdny dokument @@ -21877,28 +22707,30 @@ boş belge порожній документ tài liệu rỗng - 空文档 - 空白文件 + 空文档 + 空白文件 Zoo archive + Zoo-argief أرشيف Zoo Zoo arxivi - Archiŭ zoo + Archiŭ zoo Архив — zoo arxiu zoo archiv Zoo Archif zoo - Zooarkiv + Zoo-arkiv Zoo-Archiv Συμπιεσμένο αρχείο Zoo - Zoo archive + Zoo archive Zoo-arkivo archivador Zoo Zoo artxiboa Zoo-arkisto Zoo skjalasavn archive zoo + archivi Zoo cartlann Zoo ficheiro Zoo ארכיון Zoo @@ -21918,10 +22750,10 @@ archiu zoo Archiwum zoo arquivo Zoo - Pacote Zoo + Pacote Zoo Arhivă Zoo Архив ZOO - Archív zoo + Archív Zoo Datoteka arhiva ZOO Arkiv zoo Зoo архива @@ -21929,31 +22761,33 @@ Zoo arşivi архів zoo Kho nén zoo - Zoo 归档文件 - Zoo 封存檔 + Zoo 归档文件 + Zoo 封存檔 - + XHTML page + XHTML-bladsy صفحة XHTML - Staronka XHTML + Staronka XHTML Страница — XHTML pàgina XHTML stránka XHTML XHTML-side XHTML-Seite Σελίδα XHTML - XHTML page + XHTML page XHTML-paĝo página XHTML XHTML orria XHTML-sivu XHTML síða page XHTML + pagjine XHTML leathanach XHTML Páxina XHTML דף XHTML @@ -21974,7 +22808,7 @@ pagina XHTML Strona XHTML página XHTML - Página XHTML + Página XHTML Pagină XHTML Страница XHTML Stránka XHTML @@ -21985,41 +22819,45 @@ XHTML sayfası сторінка XHTML Trang XHTML - XHTML 页面 - XHTML 網頁 + XHTML 页面 + XHTML 網頁 XHTML Extensible HyperText Markup Language + + - - - - + + + + - + Zip archive + Zip-argief أرشيف Zip Zip arxivi - Archiŭ zip + Archiŭ zip Архив — zip arxiu zip archiv ZIP Archif ZIP - Ziparkiv + Zip-arkiv Zip-Archiv Συμπιεσμένο αρχείο Zip - Zip archive + Zip archive Zip-arkivo archivador Zip Zip artxiboa Zip-arkisto Zip skjalasavn archive zip + archivi Zip cartlann Zip ficheiro Zip ארכיון Zip @@ -22039,7 +22877,7 @@ archiu zip Archiwum ZIP arquivo Zip - Pacote Zip + Pacote Zip Arhivă zip Архив ZIP Archív ZIP @@ -22050,76 +22888,71 @@ Zip arşivi архів zip Kho nén zip - Zip 归档文件 - Zip 封存檔 + Zip 归档文件 + Zip 封存檔 - + - WIM disk Image + WIM disk image + Диск — WIM imatge de disc WIM - obraz disku WIM WIM-diskaftryk WIM-Datenträgerabbild - Εικόνα δίσκου WIM - WIM disk Image + WIM disk image imagen de disco WIM WIM disko irudia - WIM-levytiedosto + WIM-levykuva image disque WIM - íomhá diosca WIM - דמות דיסק WIM WIM slika diska WIM lemezkép - Imagine de disco WIM Image disk WIM Immagine disco WIM WIM диск бейнесі WIM 디스크 이미지 - imatge disc WIM Obraz dysku WIM - imagem de disco WIM - Imagem de disco WIM + Imagem de disco WIM Образ диска WIM Obraz disku WIM - слика диска ВИМ-а - WIM-diskavbild - WIM disk kalıbı + WIM-diskavbildning + WIM disk görüntüsü образ диска WIM - WIM 磁盘映像 - WIM 磁碟映像檔 + WIM 磁盘映像 + WIM 磁碟映像檔 WIM Windows Imaging Format - + Dolby Digital audio + Dolby Digital-oudio Dolby Digital سمعي Dolby Digital audio - Aŭdyjo Dolby Digital + Aŭdyjo Dolby Digital Аудио — Dolby Digital - àudio de Dolby Digital + àudio Dolby Digital zvuk Dolby Digital Sain Dolby Digital Dolby Ditital-lyd Dolby-Digital-Audio Ψηφιακός Ήχος Dolby - Dolby Digital audio + Dolby Digital audio Sondosiero en Dolby Digital - sonido Dolby Digital + audio Dolby Digital Dolby audio digitala Dolby Digital -ääni Dolby Digital ljóður audio Dolby Digital + audio Dolby Digital fuaim Dolby Digital son Dolby Digital שמע Dolby Digital @@ -22141,7 +22974,7 @@ àudio Dolby Digital Plik dźwiękowy Dolby Digital áudio Dolby Digital - Áudio Dolby Digital + Áudio Dolby Digital Audio Dolby Digital Аудио Dolby Digital Zvuk Dolby Digital @@ -22152,25 +22985,28 @@ Dolby Digital sesi звук Dolby Digital Âm thanh Dolby Digital - 杜比数字音频 - 杜比數位音訊 + 杜比数字音频 + 杜比數位音訊 - + DTS audio + DTS-oudio + Аудио — DTS àudio DTS zvuk DTS DTS-lyd DTS-Audio Ήχος DTS - DTS audio - sonido DTS + DTS audio + audio DTS DTS audioa DTS-ääni audio DTS + audio DTS fuaim DTS Son DTS שמע DTS @@ -22186,7 +23022,7 @@ àudio DTS Plik dźwiękowy DTS aúdio DTS - Áudio DTS + Áudio DTS Аудио DTS Zvuk DTS Zvok DTS @@ -22194,29 +23030,32 @@ DTS-ljud DTS sesi звукові дані DTS - DTS 音频 - DTS 音訊 + DTS 音频 + DTS 音訊 - - - - + + + + DTSHD audio + DTSHD-oudio + Аудио — DTSHD àudio DTSHD zvuk DTSHD DTSDH-lyd DTSHD-Audio Ήχος DTSHD - DTSHD audio - sonido DTSHD + DTSHD audio + audio DTSHD DTSHD audioa DTS-HD-ääni audio DTSHD + audio DTSHD fuaim DTSHD Son DTSHD שמע DTSHD @@ -22232,7 +23071,7 @@ àudio DTSHD Plik dźwiękowy DTSHD áudio DTSHD - Áudio DTSHD + Áudio DTSHD Аудио DTSHD Zvuk DTSHD Zvok DTSHD @@ -22240,32 +23079,34 @@ DTSHD-ljud DTSHD sesi звукові дані DTSHD - DTSHD 音频 - DTSHD 音訊 + DTSHD 音频 + DTSHD 音訊 - + AMR audio + AMR-oudio AMR سمعي - Aŭdyjo AMR + Aŭdyjo AMR Аудио — AMR àudio AMR zvuk AMR AMR-lyd AMR-Audio Ήχος AMR - AMR audio + AMR audio AMR-sondosiero - sonido AMR + audio AMR AMR audioa AMR-ääni AMR ljóður audio AMR + audio AMR fuaim AMR son AMR שמע AMR @@ -22286,7 +23127,7 @@ àudio AMR Plik dźwiękowy AMR áudio AMR - Áudio AMR + Áudio AMR Audio AMR Аудио AMR Zvuk AMR @@ -22297,34 +23138,36 @@ AMR sesi звук AMR Âm thanh AMR - AMR 音频 - AMR 音訊 + AMR 音频 + AMR 音訊 AMR Adaptive Multi-Rate - - + + AMR-WB audio + AMR-WB-oudio AMR-WB سمعي - Aŭdyjo AMR-WB + Aŭdyjo AMR-WB Аудио — AMR-WB àudio AMR-WB zvuk AMR-WB AMR-WB-lyd AMR-WB-Audio Ήχος AMR-WB - AMR-WB audio + AMR-WB audio AMR-WB-sondosiero - sonido AMR-WB + audio AMR-WB AMR-WB audioa AMR-WB-ääni AMR-WB ljóður audio AMR-WB + audio AMR-WB fuaim AMR-WB son AMR-WB שמע AMR-WN @@ -22345,7 +23188,7 @@ àudio AMR-WB Plik dźwiękowy AMR-WB áudio AMR-WB - Áudio AMR-WB + Áudio AMR-WB Audio AMR-WB Аудио AMR-WB Zvuk AMR-WB @@ -22356,22 +23199,23 @@ AMR-WB sesi звук AMR-WB Âm thanh AMR-WB - AMR-WB 音频 - AMR-WB 音訊 + AMR-WB 音频 + AMR-WB 音訊 AMR-WB Adaptive Multi-Rate Wideband - - + + ULAW (Sun) audio + ULAW- (Sun) oudio ULAW (صن) سمعي ULAW (Sun) audio faylı - Aŭdyjo ULAW (Sun) + Aŭdyjo ULAW (Sun) Аудио — ULAW, Sun àudio ULAW (Sun) zvuk ULAW (Sun) @@ -22379,13 +23223,14 @@ ULAW-lyd (Sun) ULAW-Audio (Sun) Ήχος ULAW (Sun) - ULAW (Sun) audio + ULAW (Sun) audio ULAW-sondosiero (Sun) - sonido ULAW (Sun) + audio ULAW (Sun) ULAW (sun) audioa ULAW (Sun) -ääni ULAW (Sun) ljóður audio ULAW (Sun) + audio ULAW (Sun) fuaim ULAW (Sun) son ULAW (Sun) שמע ULAW (של Sun) @@ -22406,7 +23251,7 @@ àudio ULAW (Sun) Plik dźwiękowy ULAW (Sun) áudio ULAW (Sun) - Áudio ULAW (Sun) + Áudio ULAW (Sun) Fișier audio ULAW (Sun) Аудио ULAW (Sun) Zvuk ULAW (Sun) @@ -22417,31 +23262,33 @@ ULAW (Sun) sesi звук ULAW (Sun) Âm thanh ULAW (Sun) - ULAW (Sun) 音频 - ULAW (Sun) 音訊 + ULAW (Sun) 音频 + ULAW (Sun) 音訊 - + Commodore 64 audio + Commodore 64-oudio Commodore 64 سمعي - Aŭdyjo Commodore 64 + Aŭdyjo Commodore 64 Аудио — Commodore 64 àudio de Commodore 64 zvuk Commodore 64 Commodore 64-lyd Commodore-64-Audio Ήχος Commodore 64 - Commodore 64 audio + Commodore 64 audio Sondosiero de Commodore 64 - sonido de Commodore 64 + audio de Commodore 64 Commodore 64 Audioa Commodore 64 -ääni Commodore 64 ljóð audio Commodore 64 + audio Commodore 64 fuaim Commodore 64 son de Commodore 64 שמע של Commodore 64 @@ -22463,7 +23310,7 @@ àudio Commodore 64 Plik dźwiękowy Commodore 64 áudio Commodore 64 - Áudio Commodore 64 + Áudio Commodore 64 Audio Commodore 64 Аудио Commodore 64 Zvuk Commodore 64 @@ -22474,19 +23321,20 @@ Commodore 64 sesi звук Commodore 64 Âm thanh Commodore 64 - Commodore 64 音频 - Commodore 64 音訊 + Commodore 64 音频 + Commodore 64 音訊 - + PCM audio + PCM-oudio سمعي PCM PCM audio faylı - Aŭdyjo PCM + Aŭdyjo PCM Аудио — PCM àudio PCM zvuk PCM @@ -22494,13 +23342,14 @@ PCM-lyd PCM-Audio Ήχος PCM - PCM audio + PCM audio PCM-sondosiero - sonido PCM + audio PCM PCM audioa PCM-ääni PCM ljóður audio PCM + audio PCM fuaim PCM son PCM שמע PCM @@ -22521,7 +23370,7 @@ àudio PCM Plik dźwiękowy PCM áudio PCM - Áudio PCM + Áudio PCM Audio PCM Аудио PCM Zvuk PCM @@ -22532,29 +23381,30 @@ PCM sesi звук PCM Âm thanh PCM - PCM 音频 - PCM 音訊 + PCM 音频 + PCM 音訊 - - + + - - - - - - - - - + + + + + + + + + AIFC audio + AIFC-oudio AIFC سمعي AIFC audio faylı - Aŭdyjo AIFC + Aŭdyjo AIFC Аудио — AIFC àudio AIFC zvuk AIFC @@ -22562,13 +23412,14 @@ AIFC-lyd AIFC-Audio Ήχος AIFC - AIFC audio + AIFC audio AIFC-sondosiero - sonido AIFC + audio AIFC AIFC audioa AIFC-ääni AIFC ljóður audio AIFC + audio AIFC fuaim AIFC son AIFC שמע AIFC @@ -22590,7 +23441,7 @@ àudio AIFC Plik dźwiękowy AIFC áudio AIFC - Áudio AIFC + Áudio AIFC Fișier audio AIFC Аудио AIFC Zvuk AIFC @@ -22601,13 +23452,13 @@ AIFC sesi звук AIFC Âm thanh AIFC - AIFC 音频 - AIFC 音訊 + AIFC 音频 + AIFC 音訊 AIFC Audio Interchange File format Compressed - + @@ -22615,23 +23466,25 @@ AIFF/Amiga/Mac audio + AIFF/Amiga/Mac-oudio AIFF/Amiga/Mac سمعي AIFF/Amiga/Mac audio faylı - Aŭdyjo AIFF/Amiga/Mac + Aŭdyjo AIFF/Amiga/Mac Аудио — AIFF/Amiga/Mac àudio AIFF/Amiga/Mac zvuk AIFF/Amiga/Mac Sain AIFF/Amiga/Mac - AIFF-/Amiga-/Maclyd + AIFF-/Amiga-/Mac-lyd AIFF/Amiga/Mac-Audio Ήχος AIFF/Amiga/Mac - AIFF/Amiga/Mac audio + AIFF/Amiga/Mac audio AIFF/Amiga/Mac-sondosiero - sonido AIFF/Amiga/Mac + audio AIFF/Amiga/Mac AIFF/Amiga/Mac audioa AIFF/Amiga/Mac-ääni AIFF/Amiga/Mac ljóður audio AIFF/Amiga/Mac + audio AIFF/Amiga/Mac fuaim AIFF/Amiga/Mac son AIFF/Amiga/Mac שמע AIFF/Amiga/Mac @@ -22653,7 +23506,7 @@ àudio AIFF/Amiga/Mac Plik dźwiękowy AIFF/Amiga/Mac áudio AIFF/Amiga/Mac - Áudio AIFF/Amiga/Mac + Áudio AIFF/Amiga/Mac Audio AIFF/Amiga/Mac Аудио AIFF/Amiga/Mac Zvuk AIFF/Amiga/Mac @@ -22664,14 +23517,14 @@ AIFF/Amiga/Mac sesi звук AIFF/Amiga/Mac Âm thanh AIFF/Amiga/Mac - AIFF/Amiga/Mac 音频 - AIFF/Amiga/Mac 音訊 + AIFF/Amiga/Mac 音频 + AIFF/Amiga/Mac 音訊 AIFF Audio Interchange File Format - - + + @@ -22679,19 +23532,20 @@ Monkey's audio Monkey سمعي - Aŭdyjo Monkey's + Aŭdyjo Monkey's Аудио — Monkey àudio de Monkey zvuk Monkey's - Monkeys lyd + Monkey's-lyd Monkey's-Audio Ήχος Monkey's - Monkey's audio - sonido de Monkey + Monkey's audio + audio de Monkey Monkey audioa Monkey's Audio -ääni Monkey's ljóður audio Monkey + audio Monkey's fuaim Monkey's son de Monkey שמע של Monkey's @@ -22711,7 +23565,7 @@ àudio Monkey Plik dźwiękowy Monkey's Audio áudio Monkey - Áudio Monkey's + Áudio Monkey's Audio Monkey's Аудио Monkey's Zvuk Monkey's @@ -22722,20 +23576,27 @@ Monkey's sesi звук Monkey's Âm thanh cua Monkey - Monkey's Audio 音频 - Monkey's 音訊 + Monkey's Audio 音频 + Monkey's 音訊 - + Audible.Com audio - àudio Audible.Com + Аудио — Audible.Com + àudio d'Audible.Com zvuk Audible.Com + Audible.Com-lyd Audible.Com-Audio - Audible.Com audio - sonido de Audible.com + Audible.Com audio + audio de Audible.com + Audible.Com audioa + Audible.Com-ääni + audio Audible.Com + audio Audible.Com + fuaim Audible.Com Audible.Com zvučni zapis Audible.Com hang Audio Audible.Com @@ -22743,28 +23604,46 @@ Audible.Com аудиосы Audible.Com 오디오 Plik dźwiękowy Audible.com - Áudio de audible.com + Áudio de audible.com Аудио Audible.Com Audio Audible.Com Audible.Com-ljud + Audible.Com sesi звук Audible.Com - Audible.Com 音频 - Audible.Com 音訊 + Audible.Com 音频 + Audible.Com 音訊 - - - + + - - + + + Audible Enhanced audio + àudio d'Audible Enhanced + Audible Enhanced-lyd + Audible Erweitertes Audio + Audible Enhanced audio + audio mejorado de Audible + Selvä parannettu ääni + Audible poboljšani zvučni zapis + Audio Audible Enhanced + Plik dźwiękowy Audible Enhanced + Áudio Audible Enhanced + Audible förbättrat ljud + звук Audible Enhanced + Audible 增强音频 + + + + Impulse Tracker audio Impulse Tracker سمعي Impulse Tracker audio faylı - Aŭdyjo Impulse Tracker + Aŭdyjo Impulse Tracker Аудио — Impulse Tracker àudio d'Impulse Tracker zvuk Impulse Tracker @@ -22772,13 +23651,14 @@ Impulse Tracker-lyd Impulse-Tracker-Audio Ήχος Impulse Tracker - Impulse Tracker audio + Impulse Tracker audio Sondosiero de Impulse Tracker - sonido de Impulse Tracker + audio de Impulse Tracker Impulse Tracker audioa Impulse Tracker -ääni Impulse Tracker ljóður audio Impulse Tracker + audio Impulse Tracker fuaim Impulse Tracker son de Impulse Tracker שמע של Impulse Tracker @@ -22799,7 +23679,7 @@ àudio Impulse Tracker Plik dźwiękowy Impulse Tracker áudio Impulse Tracker - Áudio Impulse Tracker + Áudio Impulse Tracker Audio Impulse Tracker Аудио Impulse Tracker Zvuk Impulse Tracker @@ -22810,30 +23690,32 @@ Impulse Tracker sesi звук Impulse Tracker Âm thanh Impulse Tracker - Impulse Tracker 音频 - Impulse Tracker 音訊 + Impulse Tracker 音频 + Impulse Tracker 音訊 - + FLAC audio + FLAC-oudio FLAC سمعي - Aŭdyjo FLAC + Aŭdyjo FLAC Аудио — FLAC àudio FLAC zvuk FLAC FLAC-lyd FLAC-Audio Ήχος FLAC - FLAC audio + FLAC audio FLAC-sondosiero - sonido FLAC + audio FLAC FLAC audioa FLAC-ääni FLAC ljóður audio FLAC + audio FLAC fuaim FLAC son FLAC קובץ שמע מסוג FLAC @@ -22855,7 +23737,7 @@ àudio FLAC Plik dźwiękowy FLAC áudio FLAC - Áudio FLAC + Áudio FLAC Audio FLAC Аудио FLAC Zvuk FLAC @@ -22866,8 +23748,8 @@ FLAC sesi звук FLAC Âm thanh FLAC - FLAC 音频 - FLAC 音訊 + FLAC 音频 + FLAC 音訊 @@ -22876,21 +23758,23 @@ WavPack audio + WavPack-oudio WavPack سمعي - Aŭdyjo WavPack + Aŭdyjo WavPack Аудио — WavPack àudio de WavPack zvuk WavPack WavPack-lyd WavPack-Audio Ήχος WavePack - WavPack audio + WavPack audio WavPack-sondosiero - sonido WavPack + audio WavPack WavPack audioa WavPack-ääni WavPack ljóður audio WavPack + audio WavPack fuaim WavPack son WavPack שמע WavPack @@ -22910,7 +23794,7 @@ àudio WavPack Plik dźwiękowy WavPack áudio WavPack - Áudio WavPack + Áudio WavPack Audio WavPack Аудио WavPack Zvuk WavPack @@ -22921,10 +23805,10 @@ WavPack sesi звук WavPack Âm thanh WavPack - WavPack 音频 - WavPack 音訊 + WavPack 音频 + WavPack 音訊 - + @@ -22932,19 +23816,20 @@ WavPack audio correction file ملف تصحيح WavPack السمعي - Fajł aŭdyjokarekcyi WavPack + Fajł aŭdyjokarekcyi WavPack Файл за корекции на аудио — WavPack fitxer de correcció d'àudio de WavPack opravný zvukový soubor WavPack WavPack-lydkorrektionsfil WavPack-Audiokorrekturdatei Αρχείο διόρθωσης ήχου WavePack - WavPack audio correction file - archivo de corrección de sonido WavPack + WavPack audio correction file + archivo de corrección de audio WavPack WavPack audio-zuzenketaren fitxategia WavPack-äänikorjaustiedosto WavPack ljóðrættingarfíla fichier de correction audio WavPack + file di corezion audio WavPack comhad ceartúchán fuaime WavPack ficheiro de corrección de son WavPack קובץ תיקון שמע של WavPack @@ -22964,7 +23849,7 @@ fichièr de correccion àudio WavPack Plik korekcji dźwięku WavPack ficheiro de correção áudio WavPack - Arquivo de correção de áudio WavPack + Arquivo de correção de áudio WavPack Fișier audio de corecție WavPack Файл коррекции аудио WavPack Opravný zvukový súbor WavPack @@ -22975,18 +23860,19 @@ WavPack ses düzeltme dosyası файл корекції звуку WavPack Tập tin sửa chữa âm thanh WavPack - WavPack 音频校正文件 - WavPack 音訊校正檔 + WavPack 音频校正文件 + WavPack 音訊校正檔 - + MIDI audio + MIDI-oudio MIDI سمعي MIDI audio faylı - Aŭdyjo MIDI + Aŭdyjo MIDI Аудио — MIDI àudio MIDI zvuk MIDI @@ -22994,13 +23880,14 @@ MIDI-lyd MIDI-Audio Ήχος MIDI - MIDI audio + MIDI audio MIDI-sondosiero - sonido MIDI + audio MIDI MIDI audioa MIDI-ääni MIDI ljóður audio MIDI + audio MIDI fuaim MIDI son MIDI שמע MIDI @@ -23021,7 +23908,7 @@ àudio MIDI Plik dźwiękowy MIDI áudio MIDI - Áudio MIDI + Áudio MIDI Audio MIDI Аудио MIDI Zvuk MIDI @@ -23032,11 +23919,11 @@ MIDI sesi звук MIDI Âm thanh MIDI - MIDI 音频 - MIDI 音訊 + MIDI 音频 + MIDI 音訊 - + @@ -23045,19 +23932,20 @@ compressed Tracker audio Tracker سمعي مضغوط - aŭdyjo skampresavanaha Trackera + aŭdyjo skampresavanaha Trackera Аудио — Tracker, компресирано àudio Tracker amb compressió komprimovaný zvuk Tracker - Trackerkomprimeret lyd + komprimeret trackerlyd Komprimiertes Tracker-Audio Συμπιεσμένος ήχος Tracker - compressed Tracker audio - sonido de Tracker comprimido + compressed Tracker audio + audio de Tracker comprimido konprimitutako Tracker audioa pakattu Tracker-ääni stappað Tracker ljóður audio Tracker compressé + audio Tracker comprimût fuaim chomhbhrúite Tracker son comprimido de Tracker שמע גשש מכווץ @@ -23076,7 +23964,7 @@ àudio Tracker compressat Skompresowany plik dźwiękowy Tracker áudio comprimido Tracker - Áudio Tracker compactado + Áudio Tracker compactado Tracker audio comprimat Сжатое аудио Tracker Komprimovaný zvuk Tracker @@ -23087,25 +23975,28 @@ sıkıştırılmış Tracker sesi стиснутий звук Tracker âm thanh Tracker đã nén - 压缩的 Tracker 音频 - 壓縮版 Tracker 音訊 + 压缩的 Tracker 音频 + 壓縮版 Tracker 音訊 - + AAC audio + AAC-oudio + Аудио — AAC àudio AAC zvuk AAC AAC-lyd AAC-Audio Ήχος AAC - AAC audio - sonido AAC + AAC audio + audio AAC AAC audioa AAC-ääni audio AAC + audio AAC fuaim AAC Son AAC שמע AAC @@ -23121,7 +24012,7 @@ àudio AAC Plik dźwiękowy AAC áudio AAC - Áudio AAC + Áudio AAC Аудио AAC Zvuk AAC Zvok AAC @@ -23129,21 +24020,49 @@ AAC-ljud AAC sesi звукові дані AAC - AAC 音频 - AAC 音訊 + AAC 音频 + AAC 音訊 AAC Advanced Audio Coding - - + + - + USAC audio + USAC-oudio + Аудио — USAC + àudio USAC + zvuk USAC + USAC-lyd + USAC-Audio + USAC audio + audio USAC + USAC audioa + USAC-ääni + audio USAC + audio USAC + fuaim USAC + USAC zvučni zapis + USAC hang + Audio USAC + Audio USAC + USAC аудиосы + USAC 오디오 + Plik dźwiękowy USAC + Áudio USAC + Аудио USAC + Zvuk USAC + USAC-ljud + USAC sesi + звукові дані USAC + USAC 音频 + USAC 音訊 USAC Unified Speech and Audio Coding @@ -23151,21 +24070,23 @@ MPEG-4 audio + MPEG-4-oudio MPEG-4 سمعي - Aŭdyjo MPEG-4 + Aŭdyjo MPEG-4 Аудио — MPEG-4 àudio MPEG-4 zvuk MPEG-4 MPEG4-lyd MPEG-4-Audio Ήχος MPEG-4 - MPEG-4 audio + MPEG-4 audio MPEG4-sondosiero - sonido MPEG-4 + audio MPEG-4 MPEG-4 audioa MPEG-4-ääni MPEG-4 ljóður audio MPEG-4 + audio MPEG-4 fuaim MPEG-4 son MPEG-4 שמע MPEG-4 @@ -23186,7 +24107,7 @@ àudio MPEG-4 Plik dźwiękowy MPEG-4 áudio MPEG-4 - Áudio MPEG-4 + Áudio MPEG-4 Audio MPEG-4 Аудио MPEG-4 Zvuk MPEG-4 @@ -23197,39 +24118,65 @@ MPEG-4 sesi звук MPEG-4 Âm thanh MPEG-4 - MPEG-4 音频 - MPEG-4 音訊 + MPEG-4 音频 + MPEG-4 音訊 - + - MPEG-4 Ringtone + MPEG-4 ringtone + Аудио — MPEG-4, звънене + to de trucada MPEG-4 + MPEG-4-ringetone + MPEG-4-Klingelton + MPEG-4 ringtone + tono de llamada MPEG-4 + MPEG-4 dei-tonua + MPEG-4-soittoääni + sonnerie MPEG-4 + MPEG-4 melodija zvona + MPEG-4 csengőhang + Nada panggil MPEG-4 + Suoneria MPEG-4 + MPEG-4 рингтоны + MPEG-4 벨소리 + Dzwonek MPEG-4 + Toque MPEG-4 + Мелодия MPEG-4 + Zvonenie MPEG-4 + MPEG-4-ringsignal + MPEG-4 zil sesi + рингтон MPEG-4 + MPEG-4 铃声 + MPEG-4 鈴聲 MPEG-4 video + MPEG-4-video MPEG-4 مرئي Videu en MPEG-4 - Videa MPEG-4 + Videa MPEG-4 Видео — MPEG-4 vídeo MPEG-4 video MPEG-4 MPEG4-video MPEG-4-Video Βίντεο MPEG-4 - MPEG-4 video + MPEG-4 video MPEG-4-video vídeo MPEG-4 MPEG-4 bideoa MPEG-4-video MPEG-4 video vidéo MPEG-4 + video MPEG-4 físeán MPEG-4 vídeo MPEG-4 וידאו MPEG-4 @@ -23250,7 +24197,7 @@ vidèo MPEG-4 Plik wideo MPEG-4 vídeo MPEG-4 - Vídeo MPEG-4 + Vídeo MPEG-4 Video MPEG-4 Видео MPEG-4 Video MPEG-4 @@ -23261,15 +24208,16 @@ MPEG-4 video відеокліп MPEG-4 Ảnh động MPEG-4 - MPEG-4 视频 - MPEG-4 視訊 + MPEG-4 视频 + MPEG-4 視訊 - - - - - + + + + + + @@ -23279,21 +24227,23 @@ MPEG-4 audio book + MPEG-4-oudioboek كتاب MPEG-4 السمعي - Aŭdyjokniha MPEG-4 + Aŭdyjokniha MPEG-4 Аудио книга — MPEG-4 llibre d'àudio MPEG-4 zvuková kniha MPEG-4 MPEG4-lydbog MPEG-4-Hörbuch Ηχητικό βιβλίο MPEG-4 - MPEG-4 audio book + MPEG-4 audio book MPEG-4-sonlibro audiolibro MPEG-4 MPEG-4 audio-liburua MPEG-4-äänikirja MPEG-4 ljóðbók livre audio MPEG-4 + audio-libri MPEG-4 closleabhar MPEG-4 sonlibro de MPEG-4 ספר דיגיטלי MPEG-4 @@ -23314,7 +24264,7 @@ libre àudio MPEG-4 Książka dźwiękowa MPEG-4 livro áudio MPEG-4 - Áudio livro MPEG-4 + Áudio livro MPEG-4 Carte audio MPEG-4 Аудиокнига MPEG-4 Zvuková kniha MPEG-4 @@ -23325,31 +24275,33 @@ MPEG-4 sesli kitabı аудіокнига MPEG-4 Sách âm thanh MPEG-4 - MPEG-4 有声书 - MPEG-4 音訊書 + MPEG-4 有声书 + MPEG-4 音訊書 - + 3GPP multimedia file + 3GPP-multimedialêer ملف وسائط متعددة 3GPP - Multymedyjny fajł 3GPP + Multymedyjny fajł 3GPP Мултимедия — 3GPP fitxer multimèdia 3GPP multimediální soubor 3GPP 3GPP multimedie-fil 3GPP-Multimediadatei Αρχείο πολυμέσων 3GPP - 3GPP multimedia file + 3GPP multimedia file archivo multimedia 3GPP 3GPP multimediako fitxategia 3GPP-multimediatiedosto 3GGP margmiðlafíla fichier multimédia 3GPP + file multimediâl 3GPP comhad ilmheán 3GPP ficheiro multimedia 3GPP קובץ מולטימדיה מסוג 3GPP @@ -23370,7 +24322,7 @@ fichièr multimèdia 3GPP Plik multimedialny 3GPP ficheiro multimédia 3GPP - Arquivo multimídia 3GPP + Arquivo multimídia 3GPP Fișier multimedia 3GPP Мультимедийный файл 3GPP Súbor multimédií 3GPP @@ -23378,19 +24330,19 @@ File multimedial 3GPP 3ГПП мултимедијална датотека 3GPP-multimediafil - 3GPP multimedya dosyası + 3GPP çoklu ortam dosyası файл мультимедійних даних 3GPP Tập tin đa phương tiện 3GPP - 3GPP 多媒体文件 - 3GPP 多媒體檔案 + 3GPP 多媒体文件 + 3GPP 多媒體檔案 3GPP 3rd Generation Partnership Project - - - - + + + + @@ -23406,6 +24358,7 @@ 3GPP2 multimedia file + 3GPP2-multimedialêer ملف وسائط متعددة 3GPP2 Мултимедия — 3GPP2 fitxer multimèdia 3GPP2 @@ -23413,12 +24366,13 @@ 3GPP2 multimedie-fil 3GPP2-Multimediadatei Αρχείο πολυμέσων 3GPP2 - 3GPP2 multimedia file + 3GPP2 multimedia file archivo multimedia 3GPP2 3GPP2 multimediako fitxategia 3GPP2-multimediatiedosto 3GGP2 margmiðlafíla fichier multimédia 3GPP2 + file multimediâl 3GPP2 comhad ilmheán 3GPP2 ficheiro multimedia 3GPP2 קובץ מולטימדיה 3GPP2 @@ -23436,22 +24390,21 @@ fichièr multimèdia 3GPP2 Plik multimedialny 3GPP2 ficheiro multimédia 3GPP2 - Arquivo multimídia 3GPP2 + Arquivo multimídia 3GPP2 Fișier multimedia 3GPP2 Мультимедийный файл 3GPP2 Súbor multimédií 3GPP2 Večpredstavnostna datoteka 3GPP2 3ГПП2 мултимедијална датотека 3GPP2-multimediafil - 3GPP2 multimedya dosyası + 3GPP2 çoklu ortam dosyası файл мультимедійних даних 3GPP2 - 3GPP2 多媒体文件 - 3GPP2 多媒體檔案 + 3GPP2 多媒体文件 + 3GPP2 多媒體檔案 3GPP2 3rd Generation Partnership Project 2 - - + @@ -23461,20 +24414,21 @@ Amiga SoundTracker audio مقتفي صوت Amiga السمعي - Aŭdyjo Amiga SoundTracker + Aŭdyjo Amiga SoundTracker Аудио — Amiga SoundTracker àudio SoundTracker d'Amiga zvuk Amiga SoundTracker Amiga SoundTracker-lyd Amiga-SoundTracker-Audio Ήχος Amiga SoundTracker - Amiga SoundTracker audio + Amiga SoundTracker audio Sondosiero de Amiga SoundTracker - sonido de Amiga SoundTracker + audio de Amiga SoundTracker Amiga soundtracker audioa Amiga SoundTracker -ääni Amiga SoundTracker ljóður audio SoundTracker Amiga + audio Amiga SoundTracker fuaim Amiga SoundTracker son de Amiga SoundTracker קובץ שמע של Amiga SoundTracker @@ -23496,7 +24450,7 @@ àudio SoundTracker Amiga Plik dźwiękowy Amiga SoundTracker áudio SoundTracker do Amiga - Áudio Amiga SoundTracker + Áudio Amiga SoundTracker Audio Amiga SoundTracker Аудио Amiga SoundTracker Zvuk Amiga SoundTracker @@ -23507,41 +24461,60 @@ Amiga SoundTracker sesi звук Amiga SoundTracker Âm thanh Amiga SoundTracker - Amiga SoundTracker 音频 - Amiga SoundTracker 音訊 + Amiga SoundTracker 音频 + Amiga SoundTracker 音訊 - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + - + @@ -23553,21 +24526,23 @@ MP2 audio + MP2-oudio MP2 سمعي - Aŭdyjo MP2 + Aŭdyjo MP2 Аудио — MP2 àudio MP2 zvuk MP2 MP2-lyd MP2-Audio Ήχος MP2 - MP2 audio + MP2 audio MP2-sondosiero - sonido MP2 + audio MP2 MP2 audioa MP2-ääni MP2 ljóður audio MP2 + audio MP2 fuaim MP2 son MP2 שמע MP2 @@ -23587,7 +24562,7 @@ àudio MP2 Plik dźwiękowy MP2 áudio MP2 - Áudio MP2 + Áudio MP2 Audio MP2 Аудио MP2 Zvuk MP2 @@ -23598,16 +24573,17 @@ MP2 sesi звук MP2 Âm thanh MP2 - MP2 音频 - MP2 音訊 + MP2 音频 + MP2 音訊 MP3 audio + MP3-oudio MP3 سمعي MP3 audio faylı - Aŭdyjo MP3 + Aŭdyjo MP3 Аудио — MP3 àudio MP3 zvuk MP3 @@ -23615,13 +24591,14 @@ MP3-lyd MP3-Audio Ήχος MP3 - MP3 audio + MP3 audio MP3-sondosiero - sonido MP3 + audio MP3 MP3 audioa MP3-ääni MP3 ljóður audio MP3 + audio MP3 fuaim MP3 son MP3 שמע MP3 @@ -23643,7 +24620,7 @@ àudio MP3 Plik dźwiękowy MP3 áudio MP3 - Áudio MP3 + Áudio MP3 Audio MP3 Аудио MP3 Zvuk MP3 @@ -23654,70 +24631,26 @@ MP3 sesi звук MP3 Âm thanh MP3 - MP3 音频 - MP3 音訊 + MP3 音频 + MP3 音訊 - - + + + + + + + - MP3 audio (streamed) - MP3 سمعي (تدفق) - Aŭdyjo MP3 (płyń) - Аудио — MP3, поточно - àudio MP3 (flux) - zvuk MP3 (proud) - MP3-lyd (strøm) - MP3-Audio (Stream) - Ήχος MP3 (εκπεμπόμενος) - MP3 audio (streamed) - MP3-sondosiero (fluigate) - sonido MP3 (en transmisión) - MP3 audioa (korrontea) - MP3-ääni (virtaus) - MP3 ljóður (streymað) - audio MP3 (flux) - fuaim MP3 (sruthaithe) - son MP3 (en stream) - שמע MP3 (מוזרם) - MP3 zvučni zapis (strujanje) - MP3 hang (sugárzott) - Audio MP3 (fluxo) - Audio MP3 (stream) - Audio MP3 (in streaming) - MP3 オーディオ (ストリーム) - MP3 აუდიო (ნაკადი) - MP3 аудиосы (ағымдық) - MP3 오디오(스트림) - MP3 garso įrašas (transliuojamas) - MP3 audio (straumēts) - Audio MP3 (aliran) - MP3-lyd (streaming) - MP3-audio (gestreamd) - Strauma MP3-lyd - àudio MP3 (flux) - Plik dźwiękowy MP3 (strumień) - áudio MP3 (em fluxo) - Áudio MP3 (em fluxo) - Audio MP3 (flux) - Аудио MP3 (потоковое) - Zvuk MP3 (streamovaný) - Zvočna datoteka MP3 (pretočna) - Audio MP3 (streamed) - МП3 звук (проточан) - MP3-ljud (flöde) - MP3 sesi (akış) - звук MP3 (потоковий) - Âm thanh MP3 (chạy luồng) - MP3 音频流媒体 - MP3 音訊 (串流) + Media playlist @@ -23728,77 +24661,38 @@ - + - HTTP Live Streaming playlist - قائمة بث HTTP حية - Списък за изпълнение — поток по HTTP - llista de reproducció en temps real HTTP - seznam k přehrání HTTP Live Streaming - Afspilningsliste til HTTP-livestrøm - HTTP Live-Streaming-Wiedergabeliste - Λίστα αναπαραγωγής ζωντανής μετάδοσης σε HTTP - HTTP Live Streaming playlist - lista de reproducción de flujo en directo HTTP - HTTP zuzeneko korrontearen erreprodukzio-zerrenda - HTTP beinleiðis streymaður avspælingarlisti - liste de lecture de flux HTTP Live - seinmliosta sruthaithe bheo HTTP - lista de reprodución de fluxo HTTP - רשימת השמעה הזרימה של HTTP - HTTP popis izvođenja emitiranja uživo - HTTP élő lejátszólista - Lista de selection HTTP Live Streaming - Daftar putar HTTP Live Streaming - Playlist Live Steaming HTTP - HTTP ライブストリーミング再生リスト - HTTP тірі ағым ойнау тізімі - HTTP 라이브 스트리밍 재생 목록 - HTTP tiesioginio transliavimo grojaraštis - HTTP dzīvās straumēšanas repertuārs - HTTP Live Streaming afspeellijst - lista de lectura de flux HTTP Live - Lista odtwarzania strumieniowego na żywo HTTP - lista de reprodução HTTP Live Streaming - Lista de Reprodução Streaming ao Vivo de HTTP - Listă de redare difuzată ca flux HTTP - Список воспроизведения HTTP-потока - Zoznam stôp HTTP Live Streaming - Seznam predvajanja živega pretoka HTTP - ХТТП списак нумера Живог Протока - HTTP Live Streaming-spellista - HTTP Canlı Akış çalma listesi - список відтворення HTTP Live Streaming - HTTP 实时流播放列表 - HTTP 即時串流播放清單 + Media playlist - - - + + + Microsoft ASX playlist قائمة تشغيل مايكروسوفت ASX - Śpis Microsoft ASX + Śpis Microsoft ASX Списък за изпълнение — Microsoft ASX llista de reproducció de Microsoft ASX seznam k přehrání Microsoft ASX Microsoft ASX-afspilningsliste Microsoft-ASX-Wiedergabeliste Λίστα αναπαραγωγής Microsoft ASX - Microsoft ASX playlist + Microsoft ASX playlist lista de reproducción ASX de Microsoft Microsoft ASX erreprodukzio-zerrenda Microsoft ASX -soittolista Microsoft ASX avspælingarlisti liste de lecture Microsoft ASX + liste di riproduzion Microsoft ASX seinmliosta Microsoft ASX lista de reprodución Microsoft ASX רשימת השמעה ASX (מיקרוסופט) @@ -23819,7 +24713,7 @@ lista de lectura Microsoft ASX Lista odtwarzania Microsoft ASX lista de reprodução Microsoft ASX - Lista de reprodução do Microsoft ASX + Lista de reprodução do Microsoft ASX Listă redare Microsoft ASX Список воспроизведения Microsoft ASX Zoznam skladieb Microsoft ASX @@ -23830,8 +24724,8 @@ Microsoft ASX çalma listesi список відтворення ASX Microsoft Danh mục nhạc Microsoft ASX - Microsoft ASX 播放列表 - 微軟 ASX 播放清單 + Microsoft ASX 播放列表 + 微軟 ASX 播放清單 @@ -23841,29 +24735,31 @@ - - - - + + + + PSF audio + PSF-oudio PSF سمعي - Aŭdyjo PSF + Aŭdyjo PSF Аудио — PSF àudio PSF zvuk PSF PSF-lyd PSF-Audio Ήχος PSF - PSF audio + PSF audio PSF-sondosiero - sonido PSF + audio PSF PSF audioa PSF-ääni PSF ljóður audio PSF + audio PSF fuaim PSF son PSF שמע PSF @@ -23883,7 +24779,7 @@ àudio PSF Plik dźwiękowy PSF áudio PSF - Áudio PSF + Áudio PSF Audio PSF Аудио PSF Zvuk PSF @@ -23894,32 +24790,34 @@ PSF sesi звук PSF Âm thanh PSF - PSF 音频 - PSF 音訊 + PSF 音频 + PSF 音訊 PSF Portable Sound Format - + MiniPSF audio + MiniPSF-oudio MiniPSF سمعي - Aŭdyjo MiniPSF + Aŭdyjo MiniPSF Аудио — MiniPSF àudio MiniPSF zvuk MiniPSF MiniPSF-lyd MiniPSF-Audio Ήχος MiniPSF - MiniPSF audio + MiniPSF audio MiniPSF-sondosiero - sonido MiniPSF + audio MiniPSF MiniPSF audioa MiniPSF-ääni MiniPSF ljóður audio MiniPSF + audio MiniPSF fuaim MiniPSF son MiniPSF שמע של MiniPSP @@ -23940,7 +24838,7 @@ àudio MiniPSF Plik dźwiękowy MiniPSF áudio MiniPSF - Áudio MiniPSF + Áudio MiniPSF Audio MiniPSF Аудио MiniPSF Zvuk MiniPSF @@ -23951,8 +24849,8 @@ MiniPSF sesi звук MiniPSF Âm thanh MiniPSF - MiniPSF 音频 - MiniPSF 音訊 + MiniPSF 音频 + MiniPSF 音訊 MiniPSF Miniature Portable Sound Format @@ -23960,20 +24858,22 @@ PSFlib audio library + PSFlib-oudiobiblioteek مكتبة PSFlib السمعية - Aŭdyjobiblijateka PSFlib + Aŭdyjobiblijateka PSFlib Аудио библиотека — PSFlib biblioteca d'àudio PSFlib zvuková knihovna PSFlib PSFlib-lydbibliotek PSFlib-Audiobibliothek Βιβλιοθήκη ήχου PSFlib - PSFlib audio library - biblioteca de sonido PSFlib + PSFlib audio library + biblioteca de audio PSFlib PSFlib audioaren liburutegia PSFlib-äänikirjasto PSFlib ljóðsavn bibliothèque audio PSFlib + librarie audio PSFlib leabharlann fhuaime PSFlib Biblioteca de son PSFlib ספריית שמע PSFlib @@ -23993,7 +24893,7 @@ bibliotèca àudio PSFlib Biblioteka dźwiękowa PSFlib biblioteca áudio PSFlib - Biblioteca de áudio PSFlib + Biblioteca de áudio PSFlib Bibliotecă audio PSFlib Фонотека PSFlib Zvuková knižnica PSFlib @@ -24004,8 +24904,8 @@ PSFlib ses kitaplığı аудіобібліотека PSFlib Thư viện âm thanh PSFlib - PSFlib 音频库 - PSFlib 音訊庫 + PSFlib 音频库 + PSFlib 音訊庫 PSFlib Portable Sound Format Library @@ -24013,20 +24913,22 @@ Windows Media audio + Windows Media-oudio Windows Media سمعي - Aŭdyjo Windows Media + Aŭdyjo Windows Media Аудио — Windows Media àudio de Windows Media zvuk Windows Media Windows Media-lyd Windows-Media-Audio Ήχος Windows Media - Windows Media audio - sonido de Windows Media + Windows Media audio + audio de Windows Media Windows Media audioa Windows Media -ääni Windows Media ljóður audio Windows Media + audio Windows Media fuaim Windows Media son de Windows Media שמע של Windows Media @@ -24046,7 +24948,7 @@ àudio Windows Media Plik dźwiękowy Windows Media áudio Windows Media - Áudio do Windows Media + Áudio do Windows Media Audio Windows Media Аудио Windows Media Zvuk Windows Media @@ -24057,28 +24959,30 @@ Windows Media sesi звук Windows Media Âm thanh Windows Media - Windows Media 音频 - Windows Media 音訊 + Windows Media 音频 + Windows Media 音訊 Musepack audio + Musepack-oudio Musepack سمعي - Aŭdyjo Musepack + Aŭdyjo Musepack Аудио — Musepack àudio de Musepack zvuk Musepack - Musepacklyd + Musepack-lyd Musepack-Audio Ήχος Musepack - Musepack audio - sonido Musepack + Musepack audio + audio Musepack Musepack audioa Musepack-ääni Musepack ljóður audio Musepack + audio Musepack fuaim Musepack son de Musepack שמע של Musepack @@ -24098,7 +25002,7 @@ àudio Musepack Plik dźwiękowy Musepack áudio Musepack - Áudio Musepack + Áudio Musepack Audio Musepack Аудио Musepack Zvuk Musepack @@ -24109,10 +25013,11 @@ Musepack sesi звук Musepack Âm thanh Musepack - Musepack 音频 - Musepack 音訊 + Musepack 音频 + Musepack 音訊 - + + @@ -24120,22 +25025,24 @@ RealAudio document + RealAudio-dokument مستند RealAudio Documentu RealAudio - Dakument RealAudio + Dakument RealAudio Документ — RealAudio document RealAudio dokument RealAudio RealAudio-dokument RealAudio-Dokument Έγγραφο RealAudio - RealAudio document + RealAudio document RealAudio-dokumento documento RealAudio RealAudio dokumentua RealAudio-asiakirja RealAudio skjal document RealAudio + document RealAudio cáipéis RealAudio documento Realson מסמך של RealAudio @@ -24155,7 +25062,7 @@ document RealAudio Dokument RealAudio documento RealAudio - Documento RealAudio + Documento RealAudio Document RealAudio Документ RealAudio Dokument RealAudio @@ -24166,81 +25073,61 @@ RealAudio belgesi документ RealAudio Tài liệu âm thanh RealAudio - RealAudio 文档 - RealAudio 文件 + RealAudio 文档 + RealAudio 文件 - RealMedia Metafile - ملف تعريف RealMedia - Metafajł RealMedia - Метафайл — RealMedia - metafitxer RealMedia - RealMedia Metafile - RealMedia-metafil - RealMedia-Metadatei - Metafile RealMedia - RealMedia Metafile - metaarchivo RealMedia - RealMedia metafitxategia - RealMedia-metatiedosto - RealMedia metafíla - métafichier RealMedia - Meiteachomhad RealMedia - Metaficheiro RealMedia - קובץ מטא של RealMedia - RealMedia meta datoteka - RealMedia metafájl - Metafile RealMedia - RealMedia Metafile - Metafile RealMedia - RealMedia メタファイル - RealMedia метафайлы - RealMedia 메타 파일 - RealMedia metafailas - RealMedia metadatne - RealMedia-metafil - RealMedia-metabestand - RealMedia-metafil - metafichièr RealMedia - Metaplik RealMedia - metaficheiro RealMedia - Meta arquivo do RealMedia - Metafișier RealMedia - Мета-файл RealMedia - RealMedia Metafile - Metadatoteka RealMedia - Metafile RealMedia - метадатотека Рил Медија - RealMedia-metafil - RealMedia Meta Dosyası - метафайл RealMedia - Siêu tập tin RealMedia - RealMedia 元文件 - RealMedia 中介檔 + RealMedia playlist + Списък за изпълнение — RealMedia + llista de reproducció RealMedia + RealMedia-afspilningsliste + RealMedia-Wiedergabeliste + RealMedia playlist + lista de reproducción de RealMedia + RealMedia erreprodukzio-zerrenda + RealMedia-soittolista + liste de lecture RealMedia + RealMedia popis izvođenja + RealMedia lejátszólista + Daftar putar RealMedia + Playlist RealMedia + RealMedia ойнау тізімі + RealMedia 재생 목록 + Lista odtwarzania RealMedia + Lista de reprodução do RealMedia + Список воспроизведения RealMedia + Zoznam skladieb RealMedia + RealMedia-spellista + RealMedia çalma listesi + список відтворення RealMedia + RealMedia 播放列表 + RealMedia 播放清單 RealVideo document + RealVideo-dokument مستند RealVideo Documentu RealVideo - Dakument RealVideo + Dakument RealVideo Документ — RealVideo document RealVideo dokument RealVideo RealAudio-dokument RealVideo-Dokument Έγγραφο RealVideo - RealVideo document + RealVideo document RealVideo-dokumento documento RealVideo RealVideo dokumentua RealVideo-asiakirja RealVideo skjal document RealVideo + document RealVideo cáipéis RealVideo documento RealVideo מסמך של RealVideo @@ -24260,7 +25147,7 @@ document RealVideo Dokument RealVideo documento RealVideo - Documento RealVideo + Documento RealVideo Document RealVideo Документ RealVideo Dokument RealVideo @@ -24268,33 +25155,35 @@ Dokument RealVideo документ Рил Видеа RealVideo-dokument - RealAudio belgesi + RealVideo belgesi документ RealVideo Tài liệu ảnh động RealVideo - RealAudio 文档 - RealVideo 文件 + RealAudio 文档 + RealVideo 文件 RealMedia document + RealMedia-dokument مستند RealMedia Documentu RealMedia - Dakument RealMedia + Dakument RealMedia Документ — RealMedia document RealMedia dokument RealMedia RealMedia-dokument RealMedia-Dokument Έγγραφο RealMedia - RealMedia document + RealMedia document RealMedia-dokumento documento RealMedia RealMedia dokumentua RealMedia-asiakirja RealMedia skjal document RealMedia + document RealMedia cáipéis RealMedia documento RealMedia מסמך של RealMedia @@ -24314,7 +25203,7 @@ document RealMedia Dokument RealMedia documento RealMedia - Documento RealMedia + Documento RealMedia Document RealMedia Документ RealMedia Dokument RealMedia @@ -24325,11 +25214,11 @@ RealMedia belgesi документ RealMedia Tài liệu RealMedia - RealMedia 文档 - RealMedia 文件 + RealMedia 文档 + RealMedia 文件 - + @@ -24341,22 +25230,24 @@ RealPix document + RealPix-dokument مستند RealPix Documentu RealPix - Dakument RealPix + Dakument RealPix Документ — RealPix document RealPix dokument RealPix RealPix-dokument RealPix-Dokument Έγγραφο RealPix - RealPix document + RealPix document RealPix-dokumento documento RealPix RealPix dokumentua RealPix-asiakirja RealPix skjal document RealPix + document RealPix cáipéis RealPix documento RealPix מסמך של RealPix @@ -24376,7 +25267,7 @@ document RealPix Dokument RealPix documento RealPix - Documento RealPix + Documento RealPix Document RealPix Документ RealPix Dokument RealPix @@ -24387,28 +25278,30 @@ RealPix belgesi документ RealPix Tài liệu ảnh RealPix - RealPix 文档 - RealPix 文件 + RealPix 文档 + RealPix 文件 RealText document + RealText-dokument مستند RealText Documentu RealText - Dakument RealText + Dakument RealText Документ — RealText document RealText dokument RealText RealText-dokument RealText-Dokument Έγγραφο RealText - RealText document + RealText document RealText-dokumento documento RealText RealText dokumentua RealText-asiakirja RealText skjal document RealText + document RealText cáipéis RealText documento RealText מסמך של RealText @@ -24428,7 +25321,7 @@ document RealText Dokument RealText documento RealText - Documento RealText + Documento RealText Document RealText Документ RealText Dokument RealText @@ -24439,15 +25332,16 @@ RealText belgesi документ RealText Tài liệu văn bản RealText - RealText 文档 - RealText 文件 + RealText 文档 + RealText 文件 RIFF audio + RIFF-oudio RIFF سمعي RIFF audio faylı - Aŭdyjo RIFF + Aŭdyjo RIFF Аудио — RIFF àudio RIFF zvuk RIFF @@ -24455,13 +25349,14 @@ RIFF-lyd RIFF-Audio Ήχος RIFF - RIFF audio + RIFF audio RIFF-sondosiero - sonido RIFF + audio RIFF RIFF audioa RIFF-ääni RIFF ljóð audio RIFF + audio RIFF fuaim RIFF son RIFF שמע RIFF @@ -24482,7 +25377,7 @@ àudio RIFF Plik dźwiękowy RIFF áudio RIFF - Áudio RIFF + Áudio RIFF Audio RIFF Аудио RIFF Zvuk RIFF @@ -24493,20 +25388,24 @@ RIFF sesi звук RIFF Âm thanh RIFF - RIFF 音频 - RIFF 音訊 + RIFF 音频 + RIFF 音訊 RIFF container + RIFF-houer + Контейнер — RIFF contenidor RIFF kontejner RIFF RIFF-container RIFF-Container Περιέκτης RIFF - RIFF container + RIFF container contenedor RIFF RIFF edukitzailea + RIFF-kontti conteneur RIFF + contignidôr RIFF coimeádán RIFF Contenedor RIFF מכולת RIFF @@ -24520,7 +25419,7 @@ contenidor RIFF Kontener RIFF contentor RIFF - Contêiner RIFF + Contêiner RIFF Контейнер RIFF Kontajner RIFF Vsebnik RIFF @@ -24528,18 +25427,18 @@ RIFF-behållare RIFF deposu контейнер RIFF - RIFF 容器 - RIFF 容器 - + RIFF 容器 + RIFF 容器 + - + Scream Tracker 3 audio Scream Tracker 3 سمعي Scream Tracker 3 audio faylı - Aŭdyjo Scream Tracker 3 + Aŭdyjo Scream Tracker 3 Аудио — Scream Tracker 3 àudio de Scream Tracker 3 skladba Scream Tracker 3 @@ -24547,13 +25446,14 @@ Scream Tracker 3-lyd Scream-Tracker-3-Audio Ήχος Scream Tracker 3 - Scream Tracker 3 audio + Scream Tracker 3 audio Sondosiero de Scream Tracker 3 - sonido Scream Tracker 3 + audio Scream Tracker 3 Scream Tracker 3 audioa Scream Tracker 3 -ääni Scream Tracker 3 ljóður audio Scream Tracker 3 + audio Scream Tracker 3 fuaim Scream Tracker 3 son Scream Tracker 3 שמע של Scream Tracker 3 @@ -24574,7 +25474,7 @@ àudio Scream Tracker 3 Plik dźwiękowy Scream Tracker 3 áudio Scream Tracker 3 - Áudio Scream Tracker 3 + Áudio Scream Tracker 3 Audio Scream Tracker 3 Аудио Scream Tracker 3 Skladba Scream Tracker 3 @@ -24585,8 +25485,8 @@ Scream Tracker 3 sesi звук Scream Tracker 3 Âm thanh Scream Tracker 3 - Scheme Tracker 3 音频 - Scream Tracker 3 音訊 + Scheme Tracker 3 音频 + Scream Tracker 3 音訊 @@ -24595,20 +25495,21 @@ MP3 ShoutCast playlist قائمة تشغيل MP3 ShoutCast - Śpis piesień dla tranślacyi MP3 + Śpis piesień dla tranślacyi MP3 Списък за изпълнение — MP3 ShoutCast llista de reproducció MP3 ShoutCast seznam k přehrání MP3 ShoutCast MP3 ShoutCast-afspilningsliste MP3-ShoutCast-Wiedergabeliste Λίστα αναπαραγωγής MP3 ShoutCast - MP3 ShoutCast playlist + MP3 ShoutCast playlist MP3-ludlisto de ShoutCast lista de reproducción MP3 ShoutCast MP3 ShoutCast erreprodukzio-zerrenda MP3 ShoutCast -soittolista MP3 ShoutCast avspælingarlisti liste de lecture MP3 ShoutCast + liste di riproduzion MP3 ShoutCast seinmliosta MP3 ShoutCast lista de reprodución MP3 de ShoutCast רשימת השמעה MP3 של ShoutCast @@ -24629,7 +25530,7 @@ lista de lectura MP3 ShoutCast Lista odtwarzania MP3 ShoutCast lista de reprodução MP3 ShoutCast - Lista de reprodução MP3 ShoutCast + Lista de reprodução MP3 ShoutCast Listă MP3 ShoutCast Список воспроизведения MP3 ShoutCast Zoznam skladieb MP3 ShoutCast @@ -24640,14 +25541,14 @@ MP3 ShoutCast çalma listesi список програвання MP3 ShoutCast Danh mục nhạc MP3 ShoutCast - MP3 ShoutCast 播放列表 - MP3 ShoutCast 播放清單 + MP3 ShoutCast 播放列表 + MP3 ShoutCast 播放清單 - - - + + + @@ -24655,7 +25556,7 @@ Scream Tracker audio Scream Tracker سمعي Scream Tracker audio faylı - Aŭdyjo Scream Tracker + Aŭdyjo Scream Tracker Аудио — Scream Tracker àudio de Scream Tracker skladba Scream Tracker @@ -24663,13 +25564,14 @@ Scream Tracker-lyd Scream-Tracker-Audio Ήχος Scream Tracker - Scream Tracker audio + Scream Tracker audio Sondosiero de Scream Tracker - sonido Scream Tracker + audio Scream Tracker Scream Tracker audioa Scream Tracker -ääni Scream Tracker ljóður audio Scream Tracker + audio Scream Tracker fuaim Scream Tracker son Scream Tracker שמע של Scream Tracker @@ -24690,7 +25592,7 @@ àudio Scream Tracker Plik dźwiękowy Scream Tracker áudio Scream Tracker - Áudio Scream Tracker + Áudio Scream Tracker Audio Scream Tracker Аудио Scream Tracker Skladba Scream Tracker @@ -24701,20 +25603,21 @@ Scream Tracker sesi звук Scream Tracker Âm thanh Scream Tracker - Scream Tracker 音频 - Scream Tracker 音訊 + Scream Tracker 音频 + Scream Tracker 音訊 - - - + + + VOC audio + VOC-oudio VOC سمعي VOC audio faylı - Aŭdyjo VOC + Aŭdyjo VOC Аудио — VOC àudio VOC zvuk VOC @@ -24722,13 +25625,14 @@ VOC-lyd VOC-Audio Ήχος VOC - VOC audio + VOC audio VOC-sondosiero - sonido VOC + audio VOC VOC audioa VOC-ääni VOC ljóður audio VOC + audio VOC fuaim VOC son VOC שמע VOC @@ -24749,7 +25653,7 @@ àudio VOC Plik dźwiękowy VOC áudio VOC - Áudio VOC + Áudio VOC Audio VOC Аудио VOC Zvuk VOC @@ -24760,15 +25664,16 @@ VOC sesi звук VOC Âm thanh VOC - VOC 音频 - VOC 音訊 + VOC 音频 + VOC 音訊 WAV audio + WAV-oudio WAV سمعي WAV audio faylı - Aŭdyjo WAV + Aŭdyjo WAV Аудио — WAV àudio WAV zvuk WAV @@ -24776,13 +25681,14 @@ WAV-lyd WAV-Audio Ήχος WAV - WAV audio + WAV audio WAV-sonkodo - sonido WAV + audio WAV WAV audioa WAV-ääni WAV ljóður audio WAV + audio WAV fuaim WAV son WAV שמע WAV @@ -24803,7 +25709,7 @@ àudio WAV Plik dźwiękowy WAV áudio WAV - Áudio WAV + Áudio WAV Audio WAV Аудио WAV Zvuk WAV @@ -24814,13 +25720,13 @@ WAV sesi звук WAV Âm thanh WAV - WAV 音频 - WAV 音訊 + WAV 音频 + WAV 音訊 - - + + @@ -24828,7 +25734,7 @@ Scream Tracker instrument آلة Scream Tracker Scream Tracker instrumenti - Instrument Scream Tracker + Instrument Scream Tracker Инструмент — Scream Tracker instrument de Scream Tracker nástroj pro Scream Tracker @@ -24836,13 +25742,14 @@ Scream Tracker-instrument Scream-Tracker-Instrument Μουσικό όργανο Scream Tracker - Scream Tracker instrument + Scream Tracker instrument instrumento de Scream Tracker instrumento Scream Tracker Scream Tracker instrumentua Scream Tracker -soitin Scream Tracker ljóðføri instrument Scream Tracker + strument Scream Tracker ionstraim Scream Tracker Instrumento Scream Tracker כלי של Scream Tracker @@ -24863,7 +25770,7 @@ instrument Scream Tracker Instrument Scream Tracker instrumento Scream Tracker - Instrumento Scream Tracker + Instrumento Scream Tracker Instrument Scream Tracker Инструмент Scream Tracker Nástroj pre Scream Tracker @@ -24874,8 +25781,8 @@ Scream Tracker çalgısı інструмент Scream Tracker Nhạc khí Scream Tracker - Scream Tracker 乐器 - Scream Tracker 樂器檔 + Scream Tracker 乐器 + Scream Tracker 樂器檔 @@ -24885,7 +25792,7 @@ FastTracker II audio FastTracker II سمعي FastTracker II audio faylı - Aŭdyjo FastTracker II + Aŭdyjo FastTracker II Аудио — FastTracker II àudio de FastTracker II zvuk FastTracker II @@ -24893,13 +25800,14 @@ FastTracker II-lyd FastTracker-II-Audio Ήχος FastTracker II - FastTracker II audio + FastTracker II audio Sondosiero de FastTracker II - sonido FastTracker II + audio FastTracker II FastTracker II.ren audioa FastTracker II -ääni FastTracker II ljóður audio FastTracker II + audio FastTracker II fuaim FastTracker II son de FastTracker II שמע FastTracker II @@ -24921,7 +25829,7 @@ àudio FastTracker II Plik dźwiękowy FastTracker II áudio FastTracker II - Áudio FastTracker II + Áudio FastTracker II Audio FastTracker II Аудио FastTracker II Zvuk FastTracker II @@ -24932,8 +25840,8 @@ FastTracker II sesi звук FastTracker II Âm thanh FastTracker II - FastTracker II 音频 - FastTracker II 音訊 + FastTracker II 音频 + FastTracker II 音訊 @@ -24941,21 +25849,23 @@ TrueAudio audio + TrueAudio-oudio TrueAudio سمعي - Aŭdyjo TrueAudio + Aŭdyjo TrueAudio Аудио — TrueAudio - àudio de TrueAudio + àudio TrueAudio zvuk TrueAudio TrueAudio-lyd TrueAudio-Audio Ήχος TrueAudio - TrueAudio audio + TrueAudio audio TrueAudio-sondosiero - sonido TrueAudio + audio TrueAudio TrueAudio audioa TrueAudio-ääni TrueAudio ljóður audio TrueAudio + audio TrueAudio fuaim TrueAudio son Trueson שמע TrueAudio @@ -24975,7 +25885,7 @@ àudio TrueAudio Plik dźwiękowy TrueAudio áudio TrueAudio - Áudio TrueAudio + Áudio TrueAudio Audio TrueAudio Аудио TrueAudio Zvuk TrueAudio @@ -24986,8 +25896,8 @@ TrueAudio sesi звук TrueAudio Âm thanh TrueAudio - TrueAudio 音频 - TrueAudio 音訊 + TrueAudio 音频 + TrueAudio 音訊 @@ -24996,9 +25906,10 @@ Windows BMP image + Windows BMP-beeld صورة Windows BMP Windows BMP rəsmi - Vyjava Windows BMP + Vyjava Windows BMP Изображение — Windows BMP imatge BMP de Windows obrázek Windows BMP @@ -25006,13 +25917,14 @@ Windows BMP-billede Windows-BMP-Bild Εικόνα Windows BMP - Windows BMP image + Windows BMP image BMP-bildo de Vindozo imagen BMP de Windows Windows BMP irudia Windows BMP -kuva Windows BMP mynd image Windows BMP + imagjin Windows BMP íomhá BMP Windows imaxe BMP de Windows תמונת BMP של Windows @@ -25033,7 +25945,7 @@ imatge Windows BMP Obraz BMP Windows imagem BMP Windows - Imagem BMP do Windows + Imagem BMP do Windows Imagine Windows BMP Изображение Windows BMP Obrázok Windows BMP @@ -25044,14 +25956,14 @@ Windows BMP görüntüsü зображення Windows BMP Ảnh BMP Windows - Windows BMP 图像 - Windows BMP 影像 - - - - - - + Windows BMP 图像 + Windows BMP 影像 + + + + + + @@ -25061,21 +25973,23 @@ WBMP image + WBMP-beeld صورة WBMP - Vyjava WBMP + Vyjava WBMP Изображение — WBMP imatge WBMP obrázek WBMP WBMP-billede WBMP-Bild Εικόνα WBMP - WBMP image + WBMP image WBMP-bildo imagen WBMP WBMP irudia WBMP-kuva WBMP mynd image WBMP + imagjin WBMP íomhá WBMP imaxe WBMP תמונת WBMP @@ -25095,7 +26009,7 @@ imatge WBMP Obraz WBMP imagem WBMP - Imagem WBMP + Imagem WBMP Imagine WBMP Изображение WBMP Obrázok WBMP @@ -25106,177 +26020,77 @@ WBMP görüntüsü зображення WBMP Ảnh WBMP - WBMP 图像 - WBMP 影像 + WBMP 图像 + WBMP 影像 WBMP WAP bitmap - Computer Graphics Metafile - ملف تعريف رسوميات الحاسوب - Kompüter Qrafikası Meta Faylı - Metafajł Computer Graphics - Метафайл — Computer Graphics - metafitxer de Computer Graphics - Computer Graphics Metafile - Delwedd ffurf CGM - Computer Graphics-metafil - CGM-Datei - Αρχείο Computer Graphics Metafile - Computer Graphics Metafile - metaarchivo de Computer Graphics - Ordenagailuko grafikoen meta-fitxategia - Computer Graphics -metatiedosto - Teldugrafikk metafíla - métafichier Computer Graphics - Meiteachomhad Grafaicí Ríomhaire - metaficheiro de Computer Graphics - קובץ-מטה מסוג Computer Graphics - Computer Graphics meta datoteka - Computer Graphics-metafájl - Metafile Computer Graphics - Computer Graphics Metafile - Computer Graphics Metafile - コンピューターグラフィックメタファイル - компьютерлік графика метафайлы - 컴퓨터 그래픽스 메타 파일 - Computer Graphics metafailas - Datorgrafikas metadatne - Failmeta Grafik Komputer - Computer Graphics Metafile - Computer Graphics-metabestand - Computer Graphics Metafile - metafichièr Computer Graphics - Metaplik grafiki komputerowej (CGM) - metaficheiro Computer Graphics - Meta-arquivo do Computer Graphics - Metafișier Computer Graphics - Метафайл компьютерной графики - Computer Graphics Metafile - Metadatoteka računalniške grafike (CGM) - Metafile Computer Graphics - Метадатотека рачунарске графике - Computer Graphics Metafil - Computer Graphics Meta dosyası - метафайл комп'ютерної графіки - Siêu tập tin đồ họa máy tính (CMF) - 计算机图形图元文件 (CGM) - CGM 影像 + CGM image + Изображение — CGM + imatge CGM + CGM-billede + CGM-Bild + CGM image + imagen CGM + CGM irudia + CGM-kuva + image CGM + CGM slika + CGM-kép + Citra CGM + Immagine CGM + CGM суреті + CGM 이미지 + Obraz CGM + Imagem CGM + Изображение CGM + Obrázok CGM + Slika CGM + CGM-bild + CGM görüntüsü + зображення CGM + CGM 图像 + CGM 影像 + CGM + Computer Graphics Metafile - - CCITT G3 fax - فاكس CCITT G3 - Faks CCITT G3 - Факс — CCITT G3 - fax CCITT G3 - fax CCITT G3 - CCITT G3-fax - CCITT-G3-Fax - φαξ σε μορφή CCITT G3 - CCITT G3 fax - G3-fakso de CCITT - fax de CCITT G3 - CCITT G3 faxa - CCITT G3 -faksi - CCITT G3 telefaks - télécopie G3 CCITT - facs CCITT G3 - fax de CCITT G3 - פקס של CCITT G3 - CCITT G3 faks - CCITT G3-fax - Fax CCITT G3 - Faks CCITT G3 - Fax CCITT G3 - CCITT G3 FAX - CCITT G3 ფაქსი - CCITT G3 факсі - CCITT G3 팩스 - CCITT G3 faksas - CCITT G3 fakss - Faks g3 CCITT - CCITT G3-faks - CCITT G3-fax - CCITT G3-fax - telecòpia G3 CCITT - Faks CCITT G3 - fax CCITT G3 - Fax do CCITT G3 - Fax CCITT G3 - Факс CCITT G3 - Fax CCITT G3 - Datoteka faksimila CCITT G3 - Fax CCITT G3 - ЦЦИТТ Г3 факс - CCITT G3-fax - CCITT G3 faksı - факс CCITT G3 - Điện thư G3 CCITT - CCITT G3 传真 - CCITT G3 傳真檔 - - - G3 fax image - صورة فاكس G3 - G3 faks rəsmi - Faksavaja vyjava G3 - Изображение — факс G3 - imatge de fax G3 - faxový obrázek G3 - Delwedd Ffacs G3 - G3-faxbillede - G3-Faxbild - Εικόνα φαξ G3 - G3 fax image - G3-faksbildo - imagen de fax G3 - G3 fax-irudia - G3-faksikuva - G3 fax mynd - image de télécopie G3 - íomhá fhacs G3 - imaxe de fax G3 - תמונת פקס של G3 - G3 slika faksa - G3-faxkép - Imagine de fax G3 - Citra faks G3 - Immagine fax G3 - G3 FAX 画像 - G3 fax გამოსახულება - G3 факс суреті - G3 팩스 그림 - G3 fax paveikslėlis - G3 faksa attēls - Imej fax G3 - G3-faksbilde - G3 faxafbeelding - G3 faksbilete - imatge de telecòpia G3 - Obraz faksowy G3 - imagem de fax G3 - Imagem de fax G3 - Imagine fax G3 - Факсовое изображение G3 - Obrázok fax G3 - Slikovna datoteka G3 fax - Figurë Fax G3 - слика Г3 факса - G3-faxbild - G3 fax görüntüsü - факс G3 - Ảnh điện thư G3 - G3 传真图像 - G3 傳真圖 + CCITT G3 fax image + Изображение — CCITT G3, факс + imatge de fax CCITT G3 + CCITT G3-faxbillede + CCITT-G3-Faxbild + CCITT G3 fax image + imagen de fax CCITT G3 + CCITT G3 fax irudia + CCITT G3 -faksikuva + image de télécopie CCITT G3 + CCITT G3 slika faksa + CCITT G3-faxkép + Citra faks CCITT G3 + Immagine fax CCIT G3 + CCITT G3 факс суреті + CCITT G3 팩스 이미지 + Obraz faksowy G3 CCITT + Imagem de fax CCITT G3 + Факсовое изображение CCITT G3 + CCITT G3 faxbild + CCITT G3 faks görüntüsü + зображення факсу G3 CCITT + CCITT G3 传真图像 + CCITT G3 傳真影像 + + GIF image + GIF-beeld صورة GIF GIF rəsmi - Vyjava GIF + Vyjava GIF Изображение — GIF imatge GIF obrázek GIF @@ -25284,13 +26098,14 @@ GIF-billede GIF-Bild Εικόνα GIF - GIF image + GIF image GIF-bildo imagen GIF GIF irudia GIF-kuva GIF mynd image GIF + imagjin GIF íomhá GIF imaxe GIF תמונת GIF @@ -25312,7 +26127,7 @@ imatge GIF Obraz GIF imagem GIF - Imagem GIF + Imagem GIF Imagine GIF Изображение GIF Obrázok GIF @@ -25323,15 +26138,44 @@ GIF görüntüsü зображення GIF Ảnh GIF - GIF 图像 - GIF 影像 + GIF 图像 + GIF 影像 - + HEIF image + HEIF-beeld + Изображение — HEIF + imatge HEIF + obrázek HEIF + HEIF-billede + HEIF-Bild + HEIF image + imagen HEIF + HEIF irudia + HEIF-kuva + image HEIF + imagjin HEIF + íomhá HEIF + HEIF slika + HEIF kép + Citra HEIF + Immagine HEIF + HEIF суреті + HEIF 그림 + Obraz HEIF + Imagem HEIF + Изображение HEIF + Obrázok HEIF + Slika HEIF + HEIF-bild + HEIF görüntüsü + зображення HEIF + HEIF 图像 + HEIF 影像 HEIF High Efficiency Image File @@ -25342,9 +26186,10 @@ IEF image + IEF-beeld صورة IEF IEF rəsmi - Vyjava IEF + Vyjava IEF Изображение — IEF imatge IEF obrázek IEF @@ -25352,13 +26197,14 @@ IEF-billede IEF-Bild Εικόνα IEF - IEF image + IEF image IEF-bildo imagen IEF IEF irudia IEF-kuva IEF mynd image IEF + imagjin IEF íomhá IEF imaxe IEF תמונת IEF @@ -25379,7 +26225,7 @@ imatge IEF Obraz IEF imagem IEF - Imagem IEF + Imagem IEF Imagine IEF Изображение IEF Obrázok IEF @@ -25390,15 +26236,16 @@ IEF görüntüsü зображення IEF Ảnh IEF - IEF 图像 - IEF 影像 + IEF 图像 + IEF 影像 JPEG image + JPEG-beeld صورة JPEG JPEG rəsmi - Vyjava JPEG + Vyjava JPEG Изображение — JPEG imatge JPEG obrázek JPEG @@ -25406,13 +26253,14 @@ JPEG-billede JPEG-Bild Εικόνα JPEG - JPEG image + JPEG image JPEG-bildo imagen JPEG JPEG irudia JPEG-kuva JPEG mynd image JPEG + imagjin JPEG íomhá JPEG imaxe JPEG תמונת JPEG @@ -25433,7 +26281,7 @@ imatge JPEG Obraz JPEG imagem JPEG - Imagem JPEG + Imagem JPEG Imagine JPEG Изображение JPEG Obrázok JPEG @@ -25444,19 +26292,47 @@ JPEG görüntüsü зображення JPEG Ảnh JPEG - JPEG 图像 - JPEG 影像 + JPEG 图像 + JPEG 影像 - - + + - + MJPEG video stream + MJPEG-videostroom + Поток — MJPEG, видео + flux de vídeo MJPEG + datový tok videa MJPEG + MJPEG-videostrøm + MJPEG-Videodatenstrom + MJPEG video stream + videotransmisión MJPEG + MJPEG bideo korrontea + MJPEG-videon suoratoisto + flux vidéo MJPEG + trasmission video MJPEG + sruth físe MJPEG + Prijenos MJPEG videa + MJPEG videofolyam + Stream video MJPEG + Stream video MJPEG + MJPEG видео ағыны + MJPEG 비디오 스트림 + Strumień wideo MJPEG + Fluxo de vídeo MPEG + Видеопоток MJPEG + Stream videa MJPEG + MJPEG-videoström + MJPEG video akışı + відеопотік MJPEG + MJPEG 视频流 + MJPEG 視訊串流 MJPEG Motion JPEG @@ -25465,27 +26341,35 @@ JPEG-2000 codestream + Поток — JPEG-2000, кодирано flux de codis JPEG-2000 datový tok JPEG-2000 + JPEG-2000-kodestrøm JPEG-2000 Codestream - JPEG-2000 codestream + JPEG-2000 codestream secuencia de código JPEG-2000 + JPEG-2000 kodekorrontea + JPEG-2000-koodivirta + flux de code JPEG-2000 + trasmission codiç JPEG-2000 + códsruth JPEG-2000 JPEG-2000 kôd strujanja JPEG-2000 kódfolyam - codestream JPEG-2000 + Codestream JPEG-2000 Codestream JPEG-2000 JPEG-2000 код ағыны JPEG-2000 코드스트림 Strumień kodu JPEG-2000 - Imagem JPEG-2000 + Imagem JPEG-2000 Кодовый поток JPEG-2000 JPEG-2000 codestream JPEG-2000-kodström + JPEG-2000 codestream потік коду JPEG-2000 - JPEG-2000 码流 - JPEG-2000 代碼串流 + JPEG-2000 码流 + JPEG-2000 代碼串流 - + @@ -25493,12 +26377,19 @@ JPEG-2000 JP2 image + JPEG-2000 JP2-beeld + Изображение — JPEG-2000 JP2 imatge JPEG-2000 JP2 obrázek JPEG-2000 JP2 + JPEG-2000 JP2-billede JPEG-2000 JP2-Bild - JPEG-2000 JP2 image + JPEG-2000 JP2 image imagen JPEG-2000 JP2 + JPEG-2000 JP2 irudia JPEG-2000 JP2 -kuva + image JPEG-2000 JP2 + imagjin JPEG-2000 JP2 + íomhá JPEG-2000 JP2 JPEG-2000 JP2 slika JPEG-2000 JP2 kép Citra JPEG-2000 JP2 @@ -25506,32 +26397,41 @@ JPEG-2000 JP2 суреті JPEG-2000 JP2 그림 Obraz JP2 JPEG-2000 - Imagem JP2 de JPEG-2000 + Imagem JP2 de JPEG-2000 Изоражение JPEG-2000 JP2 Obrázok JPEG-2000 JP2 + Slika JPEG-2000 JP2 JPEG-2000 JP2-bild + JPEG-2000 JP2 görüntüsü зображення JP2 JPEG-2000 - JPEG-2000 JP2 图像 - JPEG-2000 JP2 影像 + JPEG-2000 JP2 图像 + JPEG-2000 JP2 影像 JP2 JPEG-2000 - + JPEG-2000 JPX image + JPEG-2000 JPX-beeld + Изображение — JPEG-2000 JPX imatge JPEG-2000 JPX obrázek JPEG-2000 JPX + JPEG-2000 JPX-billede JPEG-2000 JPX-Bild - JPEG-2000 JPX image + JPEG-2000 JPX image imagen JPEG-2000 JPX + JPEG-2000 JPX irudia JPEG-2000 JPX -kuva + image JPEG-2000 JPX + imagjinJPEG-2000 JPX + íomhá JPEG-2000 JPX JPEG-2000 JPX slika JPEG-2000 JPX kép Citra JPEG-2000 JPX @@ -25539,29 +26439,38 @@ JPEG-2000 JPX суреті JPEG-2000 JPX 그림 Obraz JPX JPEG-2000 - Imagem JPX de JPEG-2000 + Imagem JPX de JPEG-2000 Изображение JPEG-2000 JPX Obrázok JPEG-2000 JPX + Slika JPEG-2000 JPX JPEG-2000 JPX-bild + JPEG-2000 JPX görüntüsü зображення JPX JPEG-2000 - JPEG-2000 JPX 图像 - JPEG-2000 JPX 影像 + JPEG-2000 JPX 图像 + JPEG-2000 JPX 影像 JPX JPEG-2000 eXtended - + JPEG-2000 JPM image + JPEG-2000 JPM-beeld + Изображение — JPEG-2000 JPM imatge JPEG-2000 JPM obrázek JPEG-2000 JPM + JPEG-2000 JPM-billede JPEG-2000 JPM-Bild - JPEG-2000 JPM image + JPEG-2000 JPM image imagen JPEG-2000 JPM + JPEG-2000 JPM irudia JPEG-2000 JPM -kuva + image JPEG-2000 JPM + imagjin JPEG-2000 JPM + íomhá JPEG-2000 JPM JPEG-2000 JPM slika JPEG-2000 JPM kép Citra JPEG-2000 JPM @@ -25569,29 +26478,38 @@ JPEG-2000 JPM суреті JPEG-2000 JPM 그림 Obraz JPM JPEG-2000 - Imagem JPM de JPEG-2000 + Imagem JPM de JPEG-2000 Изображение JPEG-2000 JPM Obrázok JPEG-2000 JPM + Slika JPEG-2000 JPM JPEG-2000 JPM-bild + JPEG-2000 JPM görüntüsü зображення JPM JPEG-2000 - JPEG-2000 JPM 图像 - JPEG-2000 JPM 影像 + JPEG-2000 JPM 图像 + JPEG-2000 JPM 影像 JPM JPEG-2000 Mixed - + JPEG-2000 MJ2 video + JPEG-2000 MJ2-video + Видео — JPEG-2000 MJ2 vídeo JPEG-2000 MJ2 video JPEG-2000 MJ2 + JPEG-2000 MJ2-video JPEG-2000 MJ2-Video - JPEG-2000 MJ2 video + JPEG-2000 MJ2 video vídeo JPEG-2000 MJ2 + JPEG-2000 MJ2 bideoa JPEG-2000 MJ2 -video + vidéo JPEG-2000 MJ2 + video JPEG-2000 MJ2 + íomhá JPEG-2000 MJ2 JPEG-2000 MJ2 video snimka JPEG-2000 MJ2 videó Video JPEG-2000 MJ2 @@ -25599,70 +26517,55 @@ JPEG-2000 MJ2 видеосы JPEG-2000 MJ2 동영상 Plik wideo MJ2 JPEG-2000 - Imagem MJ2 de JPEG-2000 + Imagem MJ2 de JPEG-2000 Видео JPEG-2000 MJ2 Video JPEG-2000 MJ2 + Video JPEG-2000 MJ2 JPEG-2000 MJ2-bild + JPEG-2000 MJ2 videosu зображення MJ2 JPEG-2000 - JPEG-2000 MJ2 视频 - JPEG-2000 MJ2 視訊 + JPEG-2000 MJ2 视频 + JPEG-2000 MJ2 視訊 MJ2 Motion JPEG-2000 - + - OpenRaster archiving image - صورة أرشيف OpenRaster + OpenRaster image Изображение — OpenRaster - imatge d'arxivat OpenRaster - archivační obraz OpenRaster - OpenRaster-arkivaftryk - OpenRaster-Archivierungsbild - Εικόνα αρχειοθέτησης OpenRaster - OpenRaster archiving image - imagen de archivado de OpenRaster - OpenRaster artxiboaren irudia - OpenRaster-arkistokuva - OpenRaster goymslumynd - image d'archive OpenRaster - íomhá chartlannaithe OpenRaster - imaxe arquivada de OpenRaster - תמונת ארכיון של OpenRaster - OpenRaster slika arhive - OpenRaster archiválási kép - Imagine de archivo OpenRaster - Gambar pengarsipan OpenRaster - Immagine archiviazione OpenRaster - OpenRaster アーカイブイメージ - OpenRaster-ის საარქივო გამოსახულება - OpenRaster архивтеу суреті - OpenRaster 압축 이미지 - OpenRaster archyvavimo paveikslėlis - OpenRaster arhivēšanas attēls - OpenRaster archiverings-image - imatge d'archiu OpenRaster - Archiwalny obraz OpenRaster - imagem arquivo OpenRaster - Imagem de arquivamento OpenRaster - Arhivă imagine OpenRaster - Архивное изображение OpenRaster - Archivačný obrázok OpenRaster - Odtis arhiva OpenRaster - слика Опен Растер архивирања - OpenRaster-arkivbild - OpenRaster arşivleme görüntüsü - архівоване зображення OpenRaster - OpenRaster 归档图像 - OpenRaster 封存影像 + imatge OpenRaster + OpenRaster-billede + OpenRaster-Bild + OpenRaster image + imagen OpenRaster + OpenRaster irudia + OpenRaster-kuva + image OpenRaster + OpenRaster slika + OpenRaster kép + Citra OpenRaster + Immagine OpenRaster + OpenRaster суреті + OpenRaster 그림 + Obraz OpenRaster + Imagem OpenRaster + Изображение OpenRaster + Obrázok OpenRaster + Slika OpenRaster + OpenRaster-bild + OpenRaster görüntüsü + зображення OpenRaster + OpenRaster 图像 + OpenRaster 影像 - - - + + + @@ -25671,19 +26574,20 @@ DirectDraw surface مساحة DirectDraw - Pavierchnia DirectDraw + Pavierchnia DirectDraw Изображение — повърхност на DirectDraw superfície DirectDraw povrch DirectDraw DirectDraw-overflade DirectDraw-Oberfläche Επιφάνεια DirectDraw - DirectDraw surface + DirectDraw surface superficie de DirectDraw DirectDraw gainazala DirectDraw-piirtoalue DirectDraw yvirflata surface DirectDraw + superficie DirectDraw dromchla DirectDraw superficie de DirectDraw משטח של DirectDraw @@ -25704,7 +26608,7 @@ surfàcia DirectDraw Powierzchnia DirectDraw superfície DirectDraw - Superfície do DirectDraw + Superfície do DirectDraw Suprafață DirectDraw Плоскость DirectDraw Plocha DirectDraw @@ -25715,8 +26619,8 @@ DirectDraw yüzeyi поверхня DirectDraw Mặt DirectDraw - DirectDraw 表面 - DirectDraw 表面 + DirectDraw 表面 + DirectDraw 表面 @@ -25724,20 +26628,22 @@ X11 cursor + X11-wyser مؤشر X11 - Kursor X11 + Kursor X11 Курсор — X11 - cursor X11 + cursor de X11 kurzor X11 X11-markør X11-Zeiger Δρομέας X11 - X11 cursor + X11 cursor cursor de X11 X11 kurtsorea X11-osoitin X11 vísi curseur X11 + cursôr X11 cúrsóir X11 Cursor X11 סמן של X11 @@ -25757,7 +26663,7 @@ cursor X11 Kursor X11 cursor X11 - Cursor do X11 + Cursor do X11 Cursor X11 Курсор X11 Kurzor X11 @@ -25768,29 +26674,31 @@ X11 imleci курсор X11 Con chạy X11 - X11 指针 - X11 滑鼠游標 + X11 指针 + X11 滑鼠游標 - + EXR image + EXR-beeld صورة EXR - Vyjava EXR + Vyjava EXR Изображение — EXR imatge EXR obrázek EXR EXR-billede EXR-Bild Εικόνα EXR - EXR image + EXR image EXR-bildo imagen EXR EXR irudia EXR-kuva EXR mynd image EXR + imagjin EXR íomhá EXR imaxe EXR תמונת EXR @@ -25811,7 +26719,7 @@ imatge EXR Obraz EXR imagem EXR - Imagem EXR + Imagem EXR Imagine EXR Изображение EXR Obrázok EXR @@ -25822,30 +26730,32 @@ EXR görüntüsü зображення EXR Ảnh EXR - EXR 图像 - EXR 影像 + EXR 图像 + EXR 影像 - + Macintosh Quickdraw/PICT drawing + Macintosh Quickdraw/PICT-tekening رسمة ماكنتوش Quickdraw/PICT - Rysunak Macintosh Quickdraw/PICT + Rysunak Macintosh Quickdraw/PICT Чертеж — Macintosh Quickdraw/PICT dibuix Quickdraw/PICT de Macintosh kresba Macintosh Quickdraw/PICT Macintosh Quickdraw/PICT-tegning Macintosh-Quickdraw/PICT-Zeichnung Σχέδιο Macintosh Quickdraw/PICT - Macintosh Quickdraw/PICT drawing + Macintosh Quickdraw/PICT drawing Quickdraw/PICT-grafikaĵo de Macintosh dibujo de Macintosh Quickdraw/PICT Macintosh Quickdraw/PICT marrazkia Macintosh Quickdraw/PICT -piirros Macintosh Quickdraw/PICT tekning dessin Macintosh Quickdraw/PICT + dissen Macintosh Quickdraw/PICT líníocht Macintosh Quickdraw/PICT debuxo de Macintosh Quickdraw/PICT ציור של Macintosh Quickdraw/PICT @@ -25866,7 +26776,7 @@ dessenh Macintosh Quickdraw/PICT Rysunek QuickDraw/PICT Macintosh desenho Quickdraw/PICT de Macintosh - Desenho do Macintosh Quickdraw/PICT + Desenho do Macintosh Quickdraw/PICT Desen Macintosh Quickdraw/PICT Рисунок Macintosh Quickdraw/PICT Kresba Macintosh QuickDraw/PICT @@ -25877,22 +26787,22 @@ Macintosh Quickdraw/PICT çizimi малюнок Macintosh Quickdraw/PICT Bản vẽ Quickdraw/PICT của Macintosh - Macintosh Quickdraw/PICT 绘图 - Macintosh Quickdraw/PICT 繪圖 + Macintosh Quickdraw/PICT 绘图 + Macintosh Quickdraw/PICT 繪圖 - - - - + + + + - - - - + + + + @@ -25904,20 +26814,22 @@ UFRaw ID image + UFRaw ID-beeld صورة UFRaw ID - Vyjava UFRaw ID + Vyjava UFRaw ID Изображение — UFRaw ID imatge ID UFRaw obrázek ID UFRaw UFRaw ID-billede UFRaw-Bildbeschreibungsdatei Εικόνα UFRaw - UFRaw ID image + UFRaw ID image imagen de identificación UFRaw UFRaw ID irudia UFRaw ID -kuva UFRaw ID mynd image ID UFRaw + imagjin UFRaw ID íomhá aitheantais UFRaw imaxe de identificación UFRaw תמונה של UFRaw ID @@ -25937,7 +26849,7 @@ imatge ID UFRaw Obraz UFRaw ID imagem UFRaw ID - Imagem ID do UFRaw + Imagem ID do UFRaw ID imagine UFRaw Изображение UFRaw ID Obrázok ID UFRaw @@ -25948,8 +26860,8 @@ UFRaw ID görüntüsü зображення UFRaw ID Ảnh ID UFRaw - UFRaw ID 图像 - UFRaw ID 影像 + UFRaw ID 图像 + UFRaw ID 影像 UFRaw Unidentified Flying Raw @@ -25958,20 +26870,22 @@ digital raw image + digitale rou beeld صورة رقمية خامة - suvoraja ličbavaja vyjava + suvoraja ličbavaja vyjava Изображение — digital raw imatge digital en cru digitální surový obrázek - digitalt råbillede + digitalt raw-billede Digitales Rohbild Ανεπεξέργαστη ψηφιακή εικόνα - digital raw image + digital raw image imagen digital en bruto irudi gordin digitala digitaalinen raakakuva talgild rámynd image brute numérique + imagjin grese digjitâl amhíomhá dhigiteach imaxe en bruto dixital תמונה דיגטלית גולמית @@ -25991,7 +26905,7 @@ imatge brut numeric Surowy obraz cyfrowy imagem digital em bruto - Imagem digital bruta + Imagem digital bruta imagine digitală brută Необработанное цифровое изображение Digitálny surový obrázok @@ -26002,25 +26916,27 @@ sayısal ham görüntü зображення цифрового негатива ảnh thô số - 数字化原始图像 - 數位原生影像 + 数字化原始图像 + 數位原始影像 Adobe DNG negative + Adobe DNG-negatief Adobe DNG negative - Adobe DNG Negative + Adobe DNG Negative Изображение — Adobe DNG negative negatiu DNG d'Adobe negativ Adobe (DNG) Adobe DNG-negativ Adobe Digitales Negativ Αρνητικό Adobe DNG - Adobe DNG negative + Adobe DNG negative negativo DNG de Adobe Adobe DNG negatiboa Adobe-DNG-negatiivi Adobe DNG negativ négatif DNG Adobe + negatîf Adobe DNG claonchló DNG Adobe negativo DNG de Adobe תשליל Adobe DNG @@ -26041,7 +26957,7 @@ négatif DNG Adobe Negatyw DNG Adobe negativo Adobe DNG - Negativo DNG da Adobe + Negativo DNG da Adobe Negativ Adobe DNG Негатив Adobe DNG Adobe Digital Negative (DNG) @@ -26052,32 +26968,34 @@ Adobe DNG negatifi цифровий негатив DNG Adobe Âm bản Adobe DNG - Adobe DNG 负片 - Adobe DNG 負片 + Adobe DNG 负片 + Adobe DNG 負片 DNG Digital Negative - - + + Canon CRW raw image + Canon CRW rou beeld صورة Canon CRW خامة - Suvoraja vyjava Canon CRW + Suvoraja vyjava Canon CRW Изображение — Canon CRW raw imatge en cru de Canon CRW surový obrázek Canon CRW - Canon CRW-råbillede + Canon CRW raw-billede Canon-CRW-Rohbild Ανεπεξέργαστη εικόνα Canon CRW - Canon CRW raw image + Canon CRW raw image imagen en bruto CRW de Canon Canon CRW irudi gordina Canon-CRW-raakakuva Canon CRW rámynd image brute CRW Canon + imagjin grese Canon CRW amhíomhá Canon CRW imaxe en bruto de Canon CRW תמונה גולמית של Canon CRW @@ -26098,7 +27016,7 @@ imatge brut CRW Canon Surowy obraz CRW Canon imagem em bruto Canon CRW - Imagem bruta CRW da Canon + Imagem bruta CRW da Canon Imagine brută Canon CRW Необработанное изображение Canon CRW Surový obrázok Canon CRW @@ -26109,8 +27027,8 @@ Canon CRW ham görüntüsü цифровий негатив CRW Canon Ảnh thô Canon CRW - 佳能 CRW 原始图像 - Canon CRW 原生影像 + 佳能 CRW 原始图像 + Canon CRW 原始影像 CRW Canon RaW @@ -26119,23 +27037,25 @@ - + Canon CR2 raw image + Canon CR2 rou beeld صورة Canon CR2 خامة - Suvoraja vyjava Canon CR2 + Suvoraja vyjava Canon CR2 Изображение — Canon CR2 raw imatge en cru de Canon CR2 surový obrázek Canon CR2 - Canon CR2-råbillede + Canon CR2 raw-billede Canon-CR2-Rohbild Ανεπεξέργαστη εικόνα Canon CR2 - Canon CR2 raw image + Canon CR2 raw image imagen en bruto CR2 de Canon Canon CR2 irudi gordina Canon-CR2-raakakuva Canon CR2 rámynd image brute CR2 Canon + imagjin grese Canon CR2 amhíomhá Canon CR2 imaxe en bruto de Canon CR2 תמונה גולמית של Canon CR2 @@ -26156,7 +27076,7 @@ imatge brut CR2 Canon Surowy obraz CR2 Canon imagem em bruto Canon CR2 - Imagem bruta CR2 da Canon + Imagem bruta CR2 da Canon Imagine brută Canon CR2 Необработанное изображение Canon CR2 Surový obrázok Canon CR2 @@ -26167,8 +27087,8 @@ Canon CR2 ham görüntüsü цифровий негатив CR2 Canon Ảnh thô Canon CR2 - 佳能 CR2 原始图像 - Canon CR2 原生影像 + 佳能 CR2 原始图像 + Canon CR2 原始影像 CR2 Canon Raw 2 @@ -26177,20 +27097,22 @@ Fuji RAF raw image + Fuji RAF rou beeld صورة Fuji RAF خامة - Suvoraja vyjava Fuji RAF + Suvoraja vyjava Fuji RAF Изображение — Fuji RAF raw imatge en cru de Fuji RAF surový obrázek Fuji RAF - Fuji RAF-råbillede + Fuji RAF raw-billede Fuji-RAF-Rohbild Ανεπεξέργαστη εικόνα Fuji RAF - Fuji RAF raw image + Fuji RAF raw image imagen en bruto RAF de Fuji Fuji RAF irudi gordina Fuji-RAF-raakakuva Fuji RAF raw mynd image brute RAF Fuji + imagjin grese Fuji RAF amhíomhá Fuji RAF imaxe en bruto de Fuji RAF תמונה גולמית של Fuji RAF @@ -26211,7 +27133,7 @@ imatge brut RAF Fuji Surowy obraz RAF Fuji imagem em bruto Fuji RAF - Imagem bruta RAF da Fuji + Imagem bruta RAF da Fuji Imagine brută Fuji RAF Необработанное изображение Fuji RAF Surový obrázok Fuji RAF @@ -26222,8 +27144,8 @@ Fuji RAF ham görüntüsü Цифровий негатив RAF Fuji Ảnh thô Fuji RAF - 富士 RAF 原始图像 - Fuji RAF 原生影像 + 富士 RAF 原始图像 + Fuji RAF 原始影像 RAF RAw Format @@ -26234,20 +27156,22 @@ Kodak DCR raw image + Kodak DCR rou beeld صورة Kodak DCR خامة - Suvoraja vyjava Kodak DCR + Suvoraja vyjava Kodak DCR Изображение — Kodak DCR raw imatge en cru de Kodak DCR surový obrázek Kodak DCR - Kodak DCR-råbillede + Kodak DCR raw-billede Kodak-DCR-Rohbild Ανεπεξέργαστη εικόνα Kodak DCR - Kodak DCR raw image + Kodak DCR raw image imagen en bruto DCR de Kodak Kodak DCR irudi gordina Kodak-DCR-raakakuva Kodak DCR rámynd image brute DCR Kodak + imagjin grese Kodak DCR amhíomhá Kodak DCR imaxe en bruto de Kodad DCR תמונה גולמית של Kodak DCR @@ -26267,7 +27191,7 @@ imatge brut DCR Kodak Surowy obraz DCR Kodak imagem em bruto Kodak DCR - Imagem bruta DCR da Kodak + Imagem bruta DCR da Kodak Imagine brută Kodak DCR Необработанное изображение Kodak DCR Surový obrázok Kodak DCR @@ -26278,8 +27202,8 @@ Kodak DCR ham görüntüsü цифровий негатив DCR Kodak Ảnh thô Kodak DCR - 柯达 DCR 原始图像 - Kodak DCR 原生影像 + 柯达 DCR 原始图像 + Kodak DCR 原始影像 DCR Digital Camera Raw @@ -26288,20 +27212,22 @@ Kodak K25 raw image + Kodak K25 rou beeld صورة Kodak K25 خامة - Suvoraja vyjava Kodak K25 + Suvoraja vyjava Kodak K25 Изображение — Kodak K25 raw imatge en cru de Kodak K25 surový obrázek Kodak K25 - Kodak K25-råbillede + Kodak K25 raw-billede Kodak-K25-Rohbild Ανεπεξέργαστη εικόνα Kodak K25 - Kodak K25 raw image + Kodak K25 raw image imagen en bruto K25 de Kodak Kodak K25 raw image Kodak-K25-raakakuva Kodak K25 rámynd image brute K25 Kodak + imagjin grese Kodak K25 amhíomhá Kodak K25 imaxe en bruto de Kodad K25 תמונה גולמית של Kodak K25 @@ -26321,7 +27247,7 @@ imatge brut K25 Kodak Surowy obraz K25 Kodak imagem em bruto Kodak K25 - Imagem bruta K25 da Kodak + Imagem bruta K25 da Kodak Imagine brută Kodak K25 Необработанное изображение Kodak K25 Surový obrázok Kodak K25 @@ -26332,8 +27258,8 @@ Kodak K25 ham görüntüsü цифровий негатив K25 Kodak Ảnh thô Kodak K25 - 柯达 K25 原始图像 - Kodak K25 原生影像 + 柯达 K25 原始图像 + Kodak K25 原始影像 K25 Kodak DC25 @@ -26342,20 +27268,22 @@ Kodak KDC raw image + Kodak KDC rou beeld صورة Kodak KDC خامة - Suvoraja vyjava Kodak KDC + Suvoraja vyjava Kodak KDC Изображение — Kodak KDC raw imatge en cru de Kodak KDC surový obrázek Kodak KDC - Kodak KDC-råbillede + Kodak KDC raw-billede Kodak-KDC-Rohbild Ανεπεξέργαστη εικόνα Kodak KDC - Kodak KDC raw image + Kodak KDC raw image imagen en bruto KDC de Kodak Kodak KDC irudi gordina Kodak-KDC-raakakuva Kodak KDC rámynd image brute KDC Kodak + imagjin grese Kodak KDC amhíomhá Kodak KDC imaxe en bruto de Kodad KDC תמונה גולמית של Kodak KDC @@ -26375,7 +27303,7 @@ imatge brut KDC Kodak Surowy obraz KDC Kodak imagem em bruto Kodak KDC - Imagem bruta KDC da Kodak + Imagem bruta KDC da Kodak Imagine brută Kodak KDC Необработанное изображение Kodak KDC Surový obrázok Kodak KDC @@ -26386,8 +27314,8 @@ Kodak KDC ham görüntüsü цифровий негатив KDC Kodak Ảnh thô Kodak KDC - 柯达 KDC 原始图像 - Kodak KDC 原生影像 + 柯达 KDC 原始图像 + Kodak KDC 原始影像 KDC Kodak Digital Camera @@ -26399,20 +27327,22 @@ Minolta MRW raw image + Minolta MRW rou beeld صورة Minolta MRW خامة - Suvoraja vyjava Minolta MRW + Suvoraja vyjava Minolta MRW Изображение — Minolta MRW raw imatge en cru de Minolta MRW surový obrázek Minolta MRW - Minolta MRW-råbillede + Minolta MRW raw-billede Minolta-MRW-Rohbild Ανεπεξέργαστη εικόνα Minolta MRW - Minolta MRW raw image + Minolta MRW raw image imagen en bruto MRW de Minolta Minolta MRW irudi gordina Minolta-MRW-raakakuva Minolta MRW rámynd image brute MRW Minolta + imagjin grese Minolta MRW amhíomhá Minolta MRW imaxe RAW de Minolta MRW תמונה גולמית של Minolta MRW @@ -26432,7 +27362,7 @@ imatge brut MRW Minolta Surowy obraz MRW Minolta imagem em bruto Minolta MRW - Imagem bruta MRW do Minolta + Imagem bruta MRW do Minolta Imagine brută Minolta MRW Необработанное изображение Minolta MRW Surový obrázok Minolta MRW @@ -26443,8 +27373,8 @@ Minolta MRW ham görüntüsü цифровий негатив MRW Minolta Ảnh thô Minolta MRW - 美能达 MRW 原始图像 - Minolta MRW 原生影像 + 美能达 MRW 原始图像 + Minolta MRW 原始影像 MRW Minolta RaW @@ -26455,20 +27385,22 @@ Nikon NEF raw image + Nikon NEF rou beeld صورة Nikon NEF خامة - Suvoraja vyjava Nikon NEF + Suvoraja vyjava Nikon NEF Изображение — Nikon NEF raw imatge en cru de Nikon NEF surový obrázek Nikon NEF - Nikon NEF-råbillede + Nikon NEF raw-billede Nikon-NEF-Rohbild Ανεπεξέργαστη εικόνα Nikon NEF - Nikon NEF raw image + Nikon NEF raw image imagen en bruto NEF de Nikon Nikon NEF irudi gordina Nikon-NEF-raakakuva Nikon NEF rámynd image brute NEF Nikon + imagjin grese Nikon NEF amhíomhá Nikon NEF imaxe RAW NEF Nikon תמונה גולמית של Nikon NEF @@ -26488,7 +27420,7 @@ imatge brut NEF Nikon Surowy obraz NEF Nikon imagem em bruto Nikon NEF - Imagem bruta NEF da Nikon + Imagem bruta NEF da Nikon Imagine brută Nikon NEF Необработанное изображение Nikon NEF Surový obrázok Nikon NEF @@ -26499,8 +27431,8 @@ Nikon NEF ham görüntüsü цифровий негатив NEF Nikon Ảnh thô Nikon NEF - 尼康 NEF 原始图像 - Nikon NEF 原生影像 + 尼康 NEF 原始图像 + Nikon NEF 原始影像 NEF Nikon Electronic Format @@ -26509,20 +27441,22 @@ Olympus ORF raw image + Olympus ORF rou beeld صورة Olympus ORF خامة - Suvoraja vyjava Olympus ORF + Suvoraja vyjava Olympus ORF Изображение — Olympus ORF raw imatge en cru d'Olympus ORF surový obrázek Olympus ORF - Olympus ORF-råbillede + Olympus ORF raw-billede Olympus-ORF-Rohbild Ανεπεξέργαστη εικόνα Olympus ORF - Olympus ORF raw image + Olympus ORF raw image imagen en bruto ORF de Olympus Olympus ORF irudi gordina Olympus-ORF-raakakuva Olympus ORF rámynd image brute ORF Olympus + imagjin grese Olympus ORF amhíomhá Olympus ORF imaxe en bruto de Olympus ORF תמונה גולמית של Olympus ORF @@ -26543,7 +27477,7 @@ imatge brut ORF Olympus Surowy obraz Olympus ORF imagem em bruto Olympus ORF - Imagem bruta ORF da Olympus + Imagem bruta ORF da Olympus Imagine brută Olympus ORF Необработанное изображение Olympus ORF Surový obrázok Olympus ORF @@ -26554,37 +27488,39 @@ Olympus ORF ham görüntüsü цифровий негатив ORF Olympus Ảnh thô Olympus ORF - 奥林巴斯 ORF 原始图像 - Olympus ORF 原生影像 + 奥林巴斯 ORF 原始图像 + Olympus ORF 原始影像 ORF Olympus Raw Format - - - - - + + + + + Panasonic raw image + Panasonic rou beeld صورة Panasonic خامة - Suvoraja vyjava Panasonic + Suvoraja vyjava Panasonic Изображение — Panasonic raw imatge en cru de Panasonic surový obrázek Panasonic - Panasonicråbillede (raw) + Panasonic raw-billede Panasonic-Rohbild Ανεπεξέργαστη εικόνα Panasonic - Panasonic raw image + Panasonic raw image imagen en bruto de Panasonic Panasonic irudi gordina Panasonic-raakakuva Panasonic rámynd image brute Panasonic + imagjin grese Panasonic amhíomhá Panasonic imaxe en bruto de Panasonic תמונה גולמית של Panasonic @@ -26604,7 +27540,7 @@ imatge brut Panasonic Obraz raw Panasonic imagem em bruto Panasonic - Imagem bruta da Panasonic + Imagem bruta da Panasonic Imagine brută Panasonic Необработанное изображение Panasonic Surový obrázok Panasonic @@ -26615,58 +27551,69 @@ Panasonic ham görüntüsü цифровий негатив Panasonic Ảnh thô Panasonic - 松下原始图像 - Panasonic 原生影像 + 松下原始图像 + Panasonic 原始影像 - + - Panasonic raw2 image - Изображение — Panasonic raw2 - imatge «RAW2» de Panasonic - surový obrázek Panasonic raw2 - Panasonic-rå2-billede (raw) - Panasonic raw2-Bild - Ανεπεξέργαστη εικόνα Panasonic (raw2) - Panasonic raw2 image - imagen en bruto raw2 de Panasonic - Panasonic raw2 irudia - Panasonic raw2 -kuva - image raw2 Panasonic - íomhá raw2 Panasonic - imaxe en bruto raw2 de Panasonic - תמונת raw2 של Panasonic - Panasonic raw2 image - Panasonic raw2 kép - Imagine raw2 Panasonic - Image Panasonic raw2 - Immagine raw2 Panasonic - Panasonic raw2 画像 - Panasonic raw2 суреті - 파나소닉 RAW2 사진 - Panasonic raw2 jēlattēls - Panasonic raw2 image - imatge raw2 Panasonic - Obraz raw2 Panasonic + Panasonic raw image + Panasonic rou beeld + صورة Panasonic خامة + Suvoraja vyjava Panasonic + Изображение — Panasonic raw + imatge en cru de Panasonic + surový obrázek Panasonic + Panasonic raw-billede + Panasonic-Rohbild + Ανεπεξέργαστη εικόνα Panasonic + Panasonic raw image + imagen en bruto de Panasonic + Panasonic irudi gordina + Panasonic-raakakuva + Panasonic rámynd + image brute Panasonic + imagjin grese Panasonic + amhíomhá Panasonic + imaxe en bruto de Panasonic + תמונה גולמית של Panasonic + Panasonic osnovna slika + Panasonic nyers kép + Imagine brute Panasonic + Citra mentah Panasonic + Immagine raw Panasonic + Panasonic raw 画像 + Panasonic өңделмеген суреті + 파나소닉 RAW 사진 + Panasonic neapdorotas paveikslėlis + Panasonic jēlattēls + Panasonic raw-bilde + onbewerkt Panasonic-beeld + Panasonic råbilete + imatge brut Panasonic + Obraz raw Panasonic imagem em bruto Panasonic - Imagem raw2 da Panasonic - Необработанное изображение Panasonic raw2 - Surový obrázok Panasonic raw2 - Slikovna datoteka Panasonic raw2 - Панасоник сирова2 слика - Panasonic raw2-bild - Panasonic raw2 görüntüsü - зображення формату raw2 Panasonic - 松下 raw2 图像 - Panasonic raw2 影像 + Imagem bruta da Panasonic + Imagine brută Panasonic + Необработанное изображение Panasonic + Surový obrázok Panasonic + Surova slikovna datoteka Panasonic + Figurë raw Panasonic + Панасоник сирова слика + Panasonic-råbild + Panasonic ham görüntüsü + цифровий негатив Panasonic + Ảnh thô Panasonic + 松下原始图像 + Panasonic 原始影像 - + @@ -26674,20 +27621,22 @@ Pentax PEF raw image + Pentax PEF rou beeld صورة Pentax PEF خامة - Suvoraja vyjava Pentax PEF + Suvoraja vyjava Pentax PEF Изображение — Pentax PEF raw imatge en cru de Pentax PEF surový obrázek Pentax PEF - Pentax PEF-råbillede + Pentax PEF raw-billede Pentax-PEF-Rohbild Ανεπεξέργαστη εικόνα Pentax PEF - Pentax PEF raw image + Pentax PEF raw image imagen en bruto PEF de Pentax Pentax PEF irudi gordina Pentax-PEF-raakakuva Pentax PEF rámynd image brute PEF Pentax + imagjin grese Pentax PEF amhíomhá Pentax PEF imaxe en bruto PEF de Pentax תמונה גולמית של Pentax PEF @@ -26707,7 +27656,7 @@ imatge brut PEF Pentax Surowy obraz Pentax PEF imagem em bruto Pentax PEF - Imagem bruta PEF da Pentax + Imagem bruta PEF da Pentax Imagine brută Pentax PEF Необработанное изображение Pentax PEF Surový obrázok Pentax PEF @@ -26718,8 +27667,8 @@ Pentax PEF ham görüntüsü цифровий негатив PEF Pentax Ảnh thô Pentax PEF - 宾得 PEF 原始图像 - Pentax PEF 原生影像 + 宾得 PEF 原始图像 + Pentax PEF 原始影像 PEF Pentax Electronic Format @@ -26728,20 +27677,22 @@ Sigma X3F raw image + Sigma X3F rou beeld صورة Sigma X3F خامة - Suvoraja vyjava Sigma X3F + Suvoraja vyjava Sigma X3F Изображение — Sigma X3F raw imatge en cru de Sigma X3F surový obrázek Sigma X3F - Sigma X3F-råbillede + Sigma X3F raw-billede Sigma-X3F-Rohbild Ανεπεξέργαστη εικόνα Sigma X3F - Sigma X3F raw image + Sigma X3F raw image imagen en bruto X3F de Sigma Sigma X3F irudi gordina Sigma-X3F-raakakuva Sigma X3F rámynd image brute X3F Sigma + imagjin grese Sigma X3F amhíomhá Sigma X3F imaxe en bruto X3F de Sigma תמונה גולמית של Sigma X3F @@ -26761,7 +27712,7 @@ imatge brut X3F Sigma Surowy obraz X3F Sigma imagem em bruto Sigma X3F - Imagem bruta X3F da Sigma + Imagem bruta X3F da Sigma Imagine brută Sigma X3F Необработанное изображение Sigma X3F Surový obrázok Sigma X3F @@ -26772,15 +27723,15 @@ Sigma X3F ham görüntüsü цифровий негатив X3F Sigma Ảnh thô Sigma X3F - 适马 X3F 原始图像 - Sigma X3F 原生影像 + 适马 X3F 原始图像 + Sigma X3F 原始影像 X3F X3 Foveon - + - + @@ -26788,20 +27739,22 @@ Sony SRF raw image + Sony SRF rou beeld صورة Sony SRF خامة - Suvoraja vyjava Sony SRF + Suvoraja vyjava Sony SRF Изображение — Sony SRF raw imatge en cru de Sony SRF surový obrázek Sony SRF - Sony SRF-råbillede + Sony SRF raw-billede Sony-SRF-Rohbild Ανεπεξέργαστη εικόνα Sony SRF - Sony SRF raw image + Sony SRF raw image imagen en bruto SRF de Sony Sony SRF irudi gordina Sony-SRF-raakakuva Sony SRF rámynd image brute SRF Sony + imagjin grese Sony SRF amhíomhá Sony SRF imaxe en bruto SRF de sony תמונה גולמית של Sony SRF @@ -26821,7 +27774,7 @@ imatge brut SRF Sony Surowy obraz SRF Sony imagem em bruto Sony SRF - Imagem bruta SRF da Sony + Imagem bruta SRF da Sony Imagine brută Sony SRF Необработанное изображение Sony SRF Surový obrázok Sony SRF @@ -26832,8 +27785,8 @@ Sony SRF ham görüntüsü цифровий негатив SRF Sony Ảnh thô Sony SRF - 索尼 SRF 原始映像 - Sony SRF 原生影像 + 索尼 SRF 原始映像 + Sony SRF 原始影像 SRF Sony Raw Format @@ -26842,20 +27795,22 @@ Sony SR2 raw image + Sony SR2 rou beeld صورة Sony SR2 خامة - Suvoraja vyjava Sony SR2 + Suvoraja vyjava Sony SR2 Изображение — Sony SR2 raw imatge en cru de Sony SR2 surový obrázek Sony SR2 - Sony SR2-råbillede + Sony SR2 raw-billede Sony-SR2-Rohbild Ανεπεξέργαστη εικόνα Sony SR2 - Sony SR2 raw image + Sony SR2 raw image imagen en bruto SR2 de Sony Sony SR2 irudi gordina Sony-SR2-raakakuva Sony SR2 rámynd image brute SR2 Sony + imagjin grese Sony SR2 amhíomhá Sony SR2 imaxe en bruto SR2 de sony תמונה גולמית של Sony SR2 @@ -26875,7 +27830,7 @@ imatge brut SR2 Sony Surowy obraz SR2 Sony imagem em bruto Sony SR2 - Imagem bruta SR2 da Sony + Imagem bruta SR2 da Sony Imagine brută Sony SR2 Необработанное изображение Sony SR2 Surový obrázok Sony SR2 @@ -26886,8 +27841,8 @@ Sony SR2 ham görüntüsü цифровий негатив SR2 Sony Ảnh thô Sony SR2 - 索尼 SR2 原始映像 - Sony SR2 原生影像 + 索尼 SR2 原始映像 + Sony SR2 原始影像 SR2 Sony Raw format 2 @@ -26896,20 +27851,22 @@ Sony ARW raw image + Sony ARW rou beeld صورة Sony ARW خامة - Suvoraja vyjava Sony ARW + Suvoraja vyjava Sony ARW Изображение — Sony ARW raw imatge en cru de Sony ARW surový obrázek Sony ARW - Sony ARW-råbillede + Sony ARW raw-billede Sony-ARW-Rohbild Ανεπεξέργαστη εικόνα Sony ARW - Sony ARW raw image + Sony ARW raw image imagen en bruto ARW de Sony Sony ARW irudi gordina Sony-ARW-raakakuva Sony ARW rámynd image brute ARW Sony + imagjin grese Sony ARW amhíomhá Sony ARW imaxe en bruto ARW de sony תמונה גולמית של Sony ARW @@ -26929,7 +27886,7 @@ imatge brut ARW Sony Surowy obraz ARW Sony imagem em bruto Sony ARW - Imagem bruta ARW da Sony + Imagem bruta ARW da Sony Imagine brută Sony ARW Необработанное изображение Sony ARW Surový obrázok Sony ARW @@ -26940,8 +27897,8 @@ Sony ARW ham görüntüsü цифровий негатив ARW Sony Ảnh thô Sony ARW - 索尼 ARW 原始映像 - Sony ARW 原生影像 + 索尼 ARW 原始映像 + Sony ARW 原始影像 ARW Alpha Raw format @@ -26950,9 +27907,10 @@ PNG image + PNG-beeld صورة PNG PNG rəsmi - Vyjava PNG + Vyjava PNG Изображение — PNG imatge PNG obrázek PNG @@ -26960,13 +27918,14 @@ PNG-billede PNG-Bild Εικόνα PNG - PNG image + PNG image PNG-bildo imagen PNG PNG irudia PNG-kuva PNG mynd image PNG + imagjin PNG íomhá PNG imaxe PNG תמונת PNG @@ -26987,7 +27946,7 @@ imatge PNG Obraz PNG imagem PNG - Imagem PNG + Imagem PNG Imagine PNG Изображение PNG Obrázok PNG @@ -26998,79 +27957,62 @@ PNG görüntüsü зображення PNG Ảnh PNG - PNG 图像 - PNG 影像 + PNG 图像 + PNG 影像 - + - Run Length Encoded bitmap image - تشغيل صورة نقطية طولية الترميز - Bitmapnaja vyjava, zakadavanaja ŭ Run Length - Изображение — RLE Bitmap - imatge de mapa de bits «Run Lenght Encoded» - obrázek bitové mapy Run Length Encoded - Run Length Encoded-bitmapbillede + RLE bitmap image + Изображение — RLE bitmap + imatge de mapa de bits RLE + RLE bitmap-billede Lauflängenkodiertes Bitmap-Bild - Εικόνα bitmap κωδικοποιημένου μήκος εκτέλεσης - Run Length Encoded bitmap image - mapa de bits con codificación del tamaño durante la ejecución - 'Run Lenght Encoded' bitmap irudia - RLE-koodattu bittikartta - image matricielle Run Length Encoded - íomhá ghiotánmhapach ionchódaithe fad reatha - mapa de bits con codificación do tamaño durante a execución - מקודד מפת סיביות של Run Length - Run Length Encoded bitmap slika - Run Length Encoded bitkép - Imagine raster in codification Run-Length - Citra peta bit Run Length Encoded - Immagine bitmap RLE (Run Length Encoded) - ランレングス符号化ビットマップ画像 - RLE сығылған растрлік суреті - RLE 인코딩된 비트맵 그림 - Run Length Encoded rastrinis paveikslėlis - Secīgo atkārtojumu kodēts bitkartes attēls - Run Length Encoded bitmap bilde - RLE-gecodeerde bitmap-afbeelding - Run Length Encoded punktgrafikk - imatge matriciala Run Length Encoded + RLE bitmap image + imagen de mapa de bits RLE + RLE bitmap irudia + RLE-bittikarttakuva + image matricielle RLE + RLE bitmap slika + RLE bitkép + Citra bitmap RLE + Immagine bitmap RLE + RLE растрлық суреті + RLE 비트맵 그림 Obraz bitmapy RLE - mapa de bitas Run Length Encoded - Classe de comprimento imagem bitmap codificada - Imagine bitmap codată RLE - Растровое изображение, сжатое RLE - Bitmapový obrázok Run Length Encoded - Zaporedno kodirana bitna slika (RLE) - Figurë bitmap RLE (Run Length Encoded) - битмап слика кодирана дужином скупине - Körlängdskodad bitmappbild - Run Length Encoded bit eşlem görüntüsü + Imagem bitmap RLE + Растровое изображение RLE + Bitna slika RLE + RLE bitmappsbild + RLE bit eşlem görüntüsü растрове зображення RLE - Ảnh mảng mã hóa chiều dài chạy (RLE) - 游程编码位图 - Run Length Encoded 點陣影像 + RLE 位图图像 + RLE 點陣影像 + RLE + Run Length Encoded SVG image + SVG-beeld صورة SVG - Vyjava SVG + Vyjava SVG Изображение — SVG imatge SVG obrázek SVG SVG-billede SVG-Bild Εικόνα SVG - SVG image + SVG image SVG-bildo imagen SVG SVG irudia SVG-kuva SVG mynd image SVG + imagjin SVG íomhá SVG imaxe SVG תמונת SVG @@ -27090,7 +28032,7 @@ imatge SVG Obraz SVG imagem SVG - Imagem SVG + Imagem SVG Imagine SVG Изображение SVG Obrázok SVG @@ -27101,41 +28043,49 @@ SVG görüntüsü зображення SVG Ảnh SVG - SVG 图像 - SVG 影像 + SVG 图像 + SVG 影像 SVG Scalable Vector Graphics - - + + + + + + + + compressed SVG image + saamgepersde SVG-beeld صورة SVG مضغوطة - skampresavanaja vyjava SVG + skampresavanaja vyjava SVG Изображение — SVG, компресирано imatge SVG amb compressió komprimovaný obrázek SVG SVG-komprimeret billede Komprimiertes SVG-Bild Συμπιεσμένη εικόνα SVG - compressed SVG image + compressed SVG image imagen SVG comprimida konprimitutako SVG irudia pakattu SVG-kuva stappað SVG mynd image SVG compressée + imagjin SVG comprimude íomhá SVG comhbhrúite imaxe SVG comprimida תמונת SVG מכווצת Sažeta SVG slika tömörített SVG kép Imagine SVG comprimite - Citra SVG terkompresi + citra SVG terkompresi Immagine SVG compressa 圧縮 SVG 画像 сығылған SVG суреті @@ -27148,7 +28098,7 @@ imatge SVG compressat Skompresowany obraz SVG imagem SVG comprimida - Imagem SVG compactada + Imagem SVG compactada imagine comprimată SVG Сжатое изображение SVG Komprimovaný obrázok SVG @@ -27159,8 +28109,8 @@ sıkıştırılmış SVG görüntüsü стиснене зображення SVG ảnh SVG đã nén - 压缩的 SVG 图像 - 壓縮版 SVG 影像 + 压缩的 SVG 图像 + 壓縮版 SVG 影像 SVG Scalable Vector Graphics @@ -27168,21 +28118,23 @@ TIFF image + TIFF-beeld صورة TIFF - Vyjava TIFF + Vyjava TIFF Изображение — TIFF imatge TIFF obrázek TIFF TIFF-billede TIFF-Bild Εικόνα TIFF - TIFF image + TIFF image TIFF-bildo imagen TIFF TIFF irudia TIFF-kuva TIFF mynd image TIFF + imagjin TIFF íomhá TIFF imaxe TIFF תמונת TIFF @@ -27203,7 +28155,7 @@ imatge TIFF Obraz TIFF imagem TIFF - Imagem TIFF + Imagem TIFF Imagine TIFF Изображение TIFF Obrázok TIFF @@ -27214,28 +28166,32 @@ TIFF görüntüsü зображення TIFF Ảnh TIFF - TIFF 图像 - TIFF 影像 + TIFF 图像 + TIFF 影像 TIFF Tagged Image File Format - - + + Multi-page TIFF image + Multibladsy TIFF-beeld + Изображение — TIFF, много страници imatge TIFF multipàgina vícestránkový obrázek TIFF Flersidet TIFF-billede Mehrseitiges TIFF-Bild Πολυσέλιδη εικόνα TIFF - Multi-page TIFF image + Multi-page TIFF image imagen TIFF de varias páginas + Multi-page TIFF irudia Monisivuinen TIFF-kuva Image TIFF multi-page + imagjin a plui pagjinis TIFF íomhá il-leathanach TIFF Imaxe TIFF multipáxina תמונת TIFF עם ריבוי עמודים @@ -27249,7 +28205,7 @@ Imatge TIFF multipagina Wielostronnicowy obraz TIFF imagem TIFF multipágina - Imagem TIFF multipágina + Imagem TIFF multipágina Многостраничное изображение TIFF Viacstránkový obrázok TIFF Večstranska slika TIFF @@ -27257,17 +28213,18 @@ Flersidig TIFF-bild Çok sayfalı TIFF görüntüsü багатосторінкове зображення TIFF - 多页 TIFF 图像 - 多頁 TIFF 影像 + 多页 TIFF 图像 + 多頁 TIFF 影像 TIFF Tagged Image File Format AutoCAD image + AutoCAD-beeld صورة AutoCAD AutoCAD rəsmi - Vyjava AutoCAD + Vyjava AutoCAD Изображение — AutoCAD imatge d'AutoCAD výkres AutoCAD @@ -27275,13 +28232,14 @@ AutoCAD-billede AutoCAD-Bild Εικόνα AutoCAD - AutoCAD image + AutoCAD image AutoCAD-bildo imagen de AutoCAD AutoCAD-eko irudia AutoCAD-kuva AutoCAD mynd image AutoCAD + imagjin AutoCAD íomhá AutoCAD imaxe de AutoCAD תמונה של AutoCAD @@ -27303,7 +28261,7 @@ imatge AutoCAD Obraz AutoCAD imagem AutoCAD - Imagem do AutoCAD + Imagem do AutoCAD Imagine AutoCAD Изображение AutoCAD Obrázok AutoCAD @@ -27314,27 +28272,29 @@ AutoCAD görüntüsü зображення AutoCAD Ảnh AutoCAD - AutoCAD 图像 - AutoCAD 影像 + AutoCAD 图像 + AutoCAD 影像 DXF vector image + DXF-vektorbeeld صورة DXF نقطية - Vektarnaja vyjava DXF + Vektarnaja vyjava DXF Изображение — DXF imatge vectorial DXF vektorový obrázek DXF DXF-vektorbillede DXF-Vektorbild Διανυσματική εικόνα DXF - DXF vector image + DXF vector image vektora DXF-bildo imagen vectorial DXF DXF bektore-grafikoa DXF-vektorikuva DXF vektormynd image vectorielle DXF + imagjin vetoriâl DXF íomhá veicteoireach DXF imaxe de vector DXF תמונת DXF וקטורית @@ -27356,7 +28316,7 @@ imatge vectorial DXF Obraz wektorowy DXF imagem de vectores DXF - Imagem vetorial DXF + Imagem vetorial DXF Imagine vectorială DXF Векторное изображение DXF Vektorový obrázok DXF @@ -27367,78 +28327,63 @@ DXF vektör görüntüsü векторне зображення DXF Ảnh véc-tơ DXF - DXF 矢量图像 - DXF 向量圖 + DXF 矢量图像 + DXF 向量圖 - - + + - Microsoft Document Imaging format - صيغة مستند تصوير مايكروسوفت - Formatu d'imáxenes de Microsoft Document - Изображение — Microsoft Document Imaging - format Microsoft Document Imaging - formát Microsoft Document Imaging - Microsofts dokumentbilledformat - Microsoft-Document-Imaging-Bildformat - Μορφή Microsoft Document Imaging - Microsoft Document Imaging format - formato de imagen para documentos de Microsoft - Microsoft Document Imaging formatua - Microsoft Document Imaging -muoto - Microsoft Document Imaging snið - format Document Imaging Microsoft - formáid Microsoft Document Imaging - formato de Microsoft Document Imaging - תבנית של Microsoft Document Imaging - Microsoft Document Imaging format - Microsoft Document Imaging formátum - File in formato Microsoft Document Imaging - Format Microsoft Document Imaging - Formato MDI (Microsoft Document Imaging) - Microsoft ドキュメントイメージフォーマット - Microsoft Document Imaging пішімі - Microsoft 문서 이미지 형식 - Microsoft Document Imaging formatas - Microsoft dokumentu attēlošanas formāts - Microsoft Document Imaging - format Document Imaging Microsoft - Format Microsoft Document Imaging - formato Microsoft Document Imaging - Formato do Microsoft Document Imaging - Format Microsoft Document Imaging - Формат Microsoft Document Imaging - Formát Microsoft Document Imaging - Zapis Microsoft Document Imaging - запис слика Мајкрософтовог документа - Microsoft Document Imaging-format - Microsoft Belge Görüntüleme biçimi - формат Microsoft Document Imaging - Định dạng tạo ảnh tài liệu Microsoft - Microsoft Document Imaging 格式 - 微軟文件影像格式 + MDI image + Изображение — MDI + imatge MDI + MDI-billede + MDI-Bild + MDI image + imagen MDI + MDI irudia + MDI-kuva + image MDI + MDI slika + MDI-kép + Citra MDI + Immagine MDI + MDI суреті + MDI 그림 + Obraz MDI + Imagem MDI + Изображение MDI + Obrázok MDI + Slika MDI + MDI-bild + MDI görüntüsü + зображення MDI + MDI 图像 + MDI 影像 MDI Microsoft Document Imaging - + WebP image + WebP-beeld + Изображение — WebP imatge WebP obrázek WebP WebP-billede WebP-Bild Εικόνα WebP - WebP image + WebP image imagen WebP WebP irudia WebP-kuva image WebP + imagjin WebP íomhá WebP Imaxe WebP תמונת WebP @@ -27452,7 +28397,7 @@ imatge WebP Obraz WebP imagem WebP - Imagem WebP + Imagem WebP Изображение WebP Obrázok WebP Slika WebP @@ -27460,20 +28405,21 @@ WebP-bild WebP görüntüsü зображення WebP - WebP 图像 - WebP 影像 + WebP 图像 + WebP 影像 - - + + 3D Studio image + 3D Studio-beeld صورة استديو ثلاثية الأبعاد 3D Studio rəsmi - Vyjava 3D Studio + Vyjava 3D Studio Изображение — 3D Studio imatge de 3D Studio obrázek 3D Studio @@ -27481,13 +28427,14 @@ 3D Studio-billede 3D-Studio-Bild Εικόνα 3D Studio - 3D Studio image + 3D Studio image bildo de 3D Studio imagen de 3D Studio 3D Studio-ko irudia 3D Studio -kuva 3D Studio mynd image 3D Studio + imagjin 3D Studio íomhá 3D Studio Imaxe de 3D Studio תמונת 3D Studio @@ -27509,7 +28456,7 @@ imatge 3D Studio Obraz 3D Studio imagem 3D Studio - Imagem do 3D Studio + Imagem do 3D Studio Imagine 3D Studio Сцена 3D Studio Obrázok 3D Studio @@ -27520,27 +28467,32 @@ 3D Studio görüntüsü зображення 3D Studio Ảnh xuởng vẽ 3D - 3D Studio 图像 - 3D Studio 影像 + 3D Studio 图像 + 3D Studio 影像 + + + Applix Graphics image + Applix Graphics-beeld صورة رسوميات Applix - Vyjava Applix Graphics + Vyjava Applix Graphics Изображение — Applix Graphics imatge d'Applix Graphics obrázek Applix Graphics Applix Graphics-billede Applix-Graphics-Bild Εικόνα Applix Graphics - Applix Graphics image + Applix Graphics image bildo de Applix Graphics imagen de Applix Graphics Applix Graphics irudia Applix Graphics -kuva Applix Graphics mynd image Applix Graphics + imagjin Applix Graphics íomhá Applix Graphics imaxe de Applix Graphics תמונה של Applix Graphics @@ -27562,7 +28514,7 @@ imatge Applix Graphics Obraz Applix Graphics imagem Applix Graphics - Imagem do Applix Graphics + Imagem do Applix Graphics Imagine Applix Graphics Изображение Applix Graphics Obrázok Applix Graphics @@ -27573,36 +28525,38 @@ Applix Graphics görüntüsü зображення Applix Graphics Ảnh Applix Graphics - Applix Graphics 图像 - Applix Graphics 影像 + Applix Graphics 图像 + Applix Graphics 影像 - - + + EPS image (bzip-compressed) + EPS-beeld (bzip-saamgepers) صورة EPS (مضغوط-bzip) - Vyjava EPS (bzip-skampresavanaja) + Vyjava EPS (bzip-skampresavanaja) Изображение — EPS, компресирано с bzip imatge EPS (amb compressió bzip) obrázek EPS (komprimovaný pomocí bzip) EPS-billede (bzip-komprimeret) EPS-Bild (bzip-komprimiert) Εικόνα EPS (συμπιεσμένη bzip) - EPS image (bzip-compressed) + EPS image (bzip-compressed) imagen EPS (comprimida con bzip) EPS irudia (bzip-ekin konprimitua) EPS-kuva (bzip-pakattu) EPS mynd (bzip-stappað) image EPS (compressée bzip) + imagjin EPS (comprimude cun bzip) íomhá EPS (comhbhrúite le bzip) imaxe EPS (comprimida con bzip) תמונת EPS (מכווץ בbzip) EPS slika (bzip sažeta) - EPS kép (bzip-tömörítésű) + EPS kép (bzip tömörítésű) Imagine EPS (comprimite con bzip) Citra EPS (terkompresi bzip) Immagine EPS (compressa con bzip) @@ -27618,7 +28572,7 @@ imatge EPS (compressat bzip) Obraz EPS (kompresja bzip) imagem EPS (compressão bzip) - Imagem EPS (compactada com bzip) + Imagem EPS (compactada com bzip) Imagine EPS (compresie bzip) Изображение EPS (сжатое bzip) Obrázok EPS (komprimovaný pomocou bzip) @@ -27629,8 +28583,8 @@ EPS görüntüsü (bzip ile sıkıştırılmış) зображення EPS (стиснене bzip) Ảnh EPS (đã nén bzip) - EPS 图像(bzip 压缩) - EPS 影像 (bzip 格式壓縮) + EPS 图像(bzip 压缩) + EPS 影像 (bzip 壓縮) @@ -27638,9 +28592,10 @@ CMU raster image + CMU-roosterbeeld صورة CMU نقطية CMU raster rəsmi - Rastravaja vyjava CMU + Rastravaja vyjava CMU Изображение — CMU raster imatge ràster CMU rastrový obrázek CMU @@ -27648,13 +28603,14 @@ CMU-rasterbillede CMU-Rasterbild Εικόνα ράστερ CMU - CMU raster image + CMU raster image rastruma bildo de CMU imagen ráster CMU CMU bilbe-irudia CMU-rasterikuva CMU raster mynd image raster CMU + imagjin raster CMU íomhá rastar CMU imaxe raster CMU תמונת סריקה CMU @@ -27676,7 +28632,7 @@ imatge raster CMU Obraz rastrowy CMU imagem raster CMU - Imagem raster CMU + Imagem raster CMU Imagine raster CMU Растровое изображение CMU Rastrový obrázok CMU @@ -27687,33 +28643,35 @@ CMU tarama görüntüsü растрове зображення CMU Ảnh mành CMU - CMU 光栅图像 - CMU raster 影像 + CMU 光栅图像 + CMU raster 影像 compressed GIMP image + saamgepersde GIMP-beeld صورة GIMP مضغوطة - skampresavanaja vyjava GIMP + skampresavanaja vyjava GIMP Изображение — GIMP, компресирано imatge GIMP amb compressió komprimovaný obrázek GIMP komprimeret GIMP-billede Komprimiertes GIMP-Bild Συμπιεσμένη εικόνα GIMP - compressed GIMP image + compressed GIMP image imagen GIMP comprimida konprimitutako GIMP irudia pakattu GIMP-kuva stappað GIMP mynd image GIMP compressée + imagjin GIMP comprimude íomhá GIMP comhbhrúite imaxe de GIMP comprimida תמונת GIMP מכווצת Sažeta GIMP slika tömörített GIMP kép Imagine GIMP comprimite - Citra GIMP terkompresi + citra GIMP terkompresi Immagine GIMP compressa 圧縮 GIMP 画像 сығылған GIMP суреті @@ -27726,7 +28684,7 @@ imatge GIMP compressat Skompresowany obraz GIMP imagem GIMP comprimida - Imagem do GIMP compactada + Imagem do GIMP compactada imagine comprimată GIMP Сжатое изображение GIMP Komprimovaný obrázok GIMP @@ -27737,28 +28695,30 @@ sıkıştırılmış GIMP görüntüsü стиснене зображення GIMP ảnh GIMP đã nén - 压缩的 GIMP 图像 - 壓縮版 GIMP 影像 + 压缩的 GIMP 图像 + 壓縮版 GIMP 影像 DICOM image + DICOM-beeld صورة DICOM - Vyjava DICOM + Vyjava DICOM Изображение — DICOM imatge DICOM obrázek DICOM DICOM-billede DICOM-Bild Εικόνα DICOM - DICOM image + DICOM image DICOM-bildo imagen DICOM DICOM irudia DICOM-kuva DICOM mynd image DICOM + imagjin DICOM íomhá DICOM imaxe DICOM תמונת DICOM @@ -27779,7 +28739,7 @@ imatge DICOM Obraz DICOM imagem DICOM - Imagem DICOM + Imagem DICOM Imagine DICOM Изображение DICOM Obrázok DICOM @@ -27790,35 +28750,37 @@ DICOM görüntüsü зображення DICOM Ảnh DICOM - DICOM 图像 - DICOM 影像 + DICOM 图像 + DICOM 影像 DICOM Digital Imaging and Communications in Medicine - + DocBook document + DocBook-dokument مستند DocBook Documentu DocBook - Dakument DocBook + Dakument DocBook Документ — DocBook document DocBook dokument DocBook DocBook-dokument DocBook-Dokument Έγγραφο DocBook - DocBook document + DocBook document DocBook-dokumento documento DocBook DocBook dokumentua DocBook-asiakirja DocBook skjal document DocBook + document DocBook cáipéis DocBook documento de DocBook מסמך DocBook @@ -27839,7 +28801,7 @@ document DocBook Dokument DocBook documento DocBook - Documento DocBook + Documento DocBook Document DocBook Документ DocBook Dokument DocBook @@ -27850,8 +28812,8 @@ DocBook belgesi документ DocBook Tài liệu DocBook - DocBook 文档 - DocBook 文件 + DocBook 文档 + DocBook 文件 @@ -27867,21 +28829,23 @@ DIB image + DIB-beeld صورة DIB - Vyjava DIB + Vyjava DIB Изображение — DIB imatge DIB obrázek DIB DIB-billede DIB-Bild Εικόνα DIB - DIB image + DIB image DIB-bildo imagen DIB DIB irudia DIB-kuva DIB mynd image DIB + imagjin DIB íomhá DIB imaxe DIB תמונת DIB @@ -27902,7 +28866,7 @@ imatge DIB Obraz DIB imagem DIB - Imagem DIB + Imagem DIB Imagine DIB Изображение DIB Obrázok DIB @@ -27913,31 +28877,33 @@ DIB görüntüsü зображення DIB Ảnh DIB - DIB 图像 - DIB 影像 + DIB 图像 + DIB 影像 DIB Device Independent Bitmap - + DjVu image + DjVu-beeld صورة DjVu - Vyjava DjVu + Vyjava DjVu Изображение — DjVu imatge DjVu obrázek DjVu DjVu-billede DjVu-Bild Εικόνα DjVu - DjVu image + DjVu image DjVu-bildo imagen DjVu DjVU-ko irudia DjVu-kuva DjVu mynd image DjVu + imagjin DjVu íomhá DjVu imaxe de DjVu תמונת DjVu @@ -27959,7 +28925,7 @@ imatge DjVu Obraz DjVu imagem DjVu - Imagem DjVu + Imagem DjVu Imagine DjVu Изображение DjVu Obrázok DjVu @@ -27970,16 +28936,16 @@ DjVu görüntüsü зображення DjVu Ảnh DjVu - DjVu 图像 - DjVu 影像 + DjVu 图像 + DjVu 影像 - - + + - - + + @@ -27987,17 +28953,20 @@ DjVu document + DjVu-dokument Documentu DjVu + Документ — DjVu document DjVu dokument DjVu DjVu-dokument DjVu-Dokument Έγγραφο DjVu - DjVu document + DjVu document documento DjVu DjVu dokumentua DjVu-asiakirja document DjVu + document DjVu cáipéis DjVu מסמך DjVu DjVu dokument @@ -28010,22 +28979,23 @@ document DjVu Dokument DjVu documento DjVu - Documento DjVu + Documento DjVu Документ DjVu Dokument DjVu + Dokument DjVu ДјВу документ DjVu-dokument DjVu belgesi документ DjVu - DjVu 文档 - DjVu 文件 + DjVu 文档 + DjVu 文件 - - + + - - + + @@ -28034,21 +29004,23 @@ DPX image + DPX-beeld صورة DPX - Vyjava DPX + Vyjava DPX Изображение — DPX imatge DPX obrázek DPX DPX-billede DPX-Bild Εικόνα DPX - DPX image + DPX image DPX-bildo imagen DPX DPX irudia DPX-kuva DPX mynd image DPX + imagjin DPX íomhá DPX imaxe DPX תמונת DPX @@ -28069,7 +29041,7 @@ imatge DPX Obraz DPX imagem DPX - Imagem DPX + Imagem DPX Imagine DPX Изображение DPX Obrázok DPX @@ -28080,31 +29052,33 @@ DPX görüntüsü зображення DPX Ảnh DPX - DPX 图像 - DPX 影像 + DPX 图像 + DPX 影像 DPX Digital Moving Picture Exchange - + EPS image + EPS-beeld صورة EPS - Vyjava EPS + Vyjava EPS Изображение — EPS imatge EPS obrázek EPS EPS-billede EPS-Bild Εικόνα EPS - EPS image + EPS image EPS-bildo imagen EPS EPS irudia EPS-kuva EPS mynd image EPS + imagjin EPS íomhá EPS imaxe EPS תמונת EPS @@ -28125,7 +29099,7 @@ imatge EPS Obraz EPS imagem EPS - Imagem EPS + Imagem EPS Imagine EPS Изображение EPS Obrázok EPS @@ -28136,19 +29110,19 @@ EPS görüntüsü зображення EPS Ảnh EPS - EPS 图像 - EPS 影像 + EPS 图像 + EPS 影像 EPS Encapsulated PostScript - - + + - - + + - + @@ -28156,22 +29130,24 @@ FITS document + FITS-dokument مستند FITS Documentu FITS - Dakument FITS + Dakument FITS Документ — FITS document FITS dokument FITS FITS-dokument FITS-Dokument Έγγραφο FITS - FITS document + FITS document FITS-dokumento documento FITS FITS dokumentua FITS-asiakirja FITS skjal document FITS + document FITS cáipéis FITS documento FICT מסמך FITS @@ -28192,7 +29168,7 @@ document FITS Dokument FITS documento FITS - Documento FITS + Documento FITS Document FITS Документ FITS Dokument FITS @@ -28203,33 +29179,35 @@ FITS belgesi документ FITS Tài liệu FITS - FITS 文档 - FITS 文件 + FITS 文档 + FITS 文件 FITS Flexible Image Transport System - + FPX image + FPX-beeld صورة FPX - Vyjava FPX + Vyjava FPX Изображение — FPX imatge FPX obrázek FPX FPX-billede FPX-Bild Εικόνα FPX - FPX image + FPX image FPX-bildo imagen FPX FPX irudia FPX-kuva FPX mynd image FPX + imagjin FPX íomhá FPX imaxe FPX תמונת FPX @@ -28250,7 +29228,7 @@ imatge FPX Obraz FPX imagem FPX - Imagem FPX + Imagem FPX Imagine FPX Изображение FPX Obrázok FPX @@ -28261,35 +29239,37 @@ FPX görüntüsü зображення FPX Ảnh FPX - FPX 图像 - FPX 影像 + FPX 图像 + FPX 影像 FPX FlashPiX - + EPS image (gzip-compressed) + EPS-beeld (gzip-saamgepers) صورة EPS (مضغوط-gzip) - Vyjava EPS (gzip-skampresavanaja) + Vyjava EPS (gzip-skampresavanaja) Изображение — EPS, компресирано с gzip imatge EPS (amb compressió gzip) obrázek EPS (komprimovaný pomocí gzip) EPS-billede (gzip-komprimeret) EPS-Bild (gzip-komprimiert) Εικόνα EPS (συμπιεσμένη gzip) - EPS image (gzip-compressed) + EPS image (gzip-compressed) imagen EPS (comprimida con gzip) EPS irudia (gzip-ekin konprimitua) EPS-kuva (gzip-pakattu) EPS mynd (gzip-stappað) image EPS (compressée gzip) + imagjin EPS (comprimude cun gzip) íomhá EPS (comhbhrúite le gzip) imaxe EPS (comprimida con gzip) תמונת EPS (מכווץ ע״י gzip) EPS slika (gzip sažeta) - EPS kép (gzip-tömörítésű) + EPS kép (gzip tömörítésű) Imagine EPS (comprimite con gzip) Citra EPS (terkompresi gzip) Immagine EPS (compressa con gzip) @@ -28305,7 +29285,7 @@ imatge EPS (compressat gzip) Obraz EPS (kompresja gzip) imagem EPS (compressão gzip) - Imagem EPS (compactada com gzip) + Imagem EPS (compactada com gzip) Imagine EPS (compresie gzip) Изображение EPS (сжатое gzip) Obrázok EPS (komprimovaný pomocou gzip) @@ -28316,8 +29296,8 @@ EPS görüntüsü (gzip ile sıkıştırılmış) зображення EPS (стиснене gzip) Ảnh EPS (đã nén gzip) - EPS 图像(gzip 压缩) - EPS 影像 (gzip 格式壓縮) + EPS 图像(gzip 压缩) + EPS 影像 (gzip 壓縮) @@ -28325,16 +29305,19 @@ Windows icon + Windows-ikoon + Икона — Windows icona de Windows ikona Windows Windows-ikon Windows-Symbol Εικονίδιο Windows - Windows icon + Windows icon icono de Windows Windows ikonoa Windows-kuvake icône Windows + icone Windows deilbhín Windows סמל של Windows Windows ikona @@ -28343,11 +29326,11 @@ Ikon Windows Icona Windows Windows таңбашасы - 윈도우 아이콘 + Windows 아이콘 icòna Windows Ikona Windows ícone Windows - Ícone do Windows + Ícone do Windows Значок Windows Ikona Windows Ikona Windows @@ -28355,11 +29338,11 @@ Windows-ikon Windows simgesi піктограма Windows - Windows 图标 - Windows 圖示 + Windows 图标 + Windows 圖示 - - + + @@ -28372,21 +29355,23 @@ MacOS X icon + MacOS X-ikoon أيقونة MacOS X - Ikona MacOS X + Ikona MacOS X Икона — MacOS X icona MacOS X ikona MacOS X MacOS X-ikon MacOS-X-Symbol Εικονίδιο MacOS X - MacOS X icon + MacOS X icon MacOS-X-piktogramo icono de OS X MacOS X ikonoa MacOS X -kuvake MacOS X ímynd icône MacOS X + icone MacOS X deilbhín MacOS X Icona de MacOS X סמל בתקן MacOS X @@ -28407,7 +29392,7 @@ icòna MacOS X Ikona Mac OS X ćone MacOS X - Ícone do MacOS X + Ícone do MacOS X Iconiță MacOS X Значок MacOS X Ikona MacOS X @@ -28418,18 +29403,19 @@ MacOS X simgesi піктограма MacOS X Biểu tượng MacOS X - MacOS X 图标 - MacOS X 圖示 + MacOS X 图标 + MacOS X 圖示 - + ILBM image + ILBM-beeld صورة ILBM ILBM rəsmi - Vyjava ILBM + Vyjava ILBM Изображение — ILBM imatge ILBM obrázek ILMB @@ -28437,13 +29423,14 @@ ILBM-billede ILBM-Bild Εικόνα ILBM - ILBM image + ILBM image ILBM-bildo imagen ILBM ILBM irudia ILBM-kuva ILBM mynd image ILBM + imagjin ILBM íomhá ILBM imaxe ILBM תמונת ILBM @@ -28464,7 +29451,7 @@ imatge ILBM Obraz ILBM imagem ILBM - Imagem ILBM + Imagem ILBM Imagine ILBM Изображение ILBM Obrázok ILMB @@ -28475,8 +29462,8 @@ ILBM görüntüsü зображення ILBM Ảnh ILBM - ILBM 图像 - ILBM 影像 + ILBM 图像 + ILBM 影像 ILBM InterLeaved BitMap @@ -28491,9 +29478,10 @@ JNG image + JNG-beeld صورة JNG JNG rəsmi - Vyjava JNG + Vyjava JNG Изображение — JNG imatge JNG obrázek JNG @@ -28501,13 +29489,14 @@ JNG-billede JNG-Bild Εικόνα JNG - JNG image + JNG image JNG-bildo imagen JNG JNG irudia JNG-kuva JNG mynd image JNG + imagjin JNG íomhá JNG imaxe JNG תמונת JNG @@ -28528,7 +29517,7 @@ imatge JNG Obraz JNG imagem JNG - Imagem JNG + Imagem JNG Imagine JNG Изображение JNG Obrázok JNG @@ -28539,17 +29528,18 @@ JNG görüntüsü зображення JNG Ảnh JNG - JNG 图像 - JNG 影像 + JNG 图像 + JNG 影像 JNG JPEG Network Graphics LightWave object + LightWave-objek كائن LightWave LightWave cismi - Abjekt LightWave + Abjekt LightWave Обект — LightWave objecte de LightWave objekt LightWave @@ -28557,13 +29547,14 @@ LightWave-objekt LightWave-Objekt Αντικείμενο LightWave - LightWave object + LightWave object LightWave-objekto objeto de LightWave LightWave objektua LightWave-esine LightWave lutur objet LightWave + ogjet LightWave réad LightWave obxecto de LightWave עצם LightWave @@ -28584,7 +29575,7 @@ objècte LightWave Obiekt LightWave Objecto LightWave - Objeto LightWave + Objeto LightWave Obiect LightWave Объект LightWave Objekt LightWave @@ -28595,16 +29586,17 @@ LightWave nesnesi об'єкт LightWave Đối tượng LightWave - LightWave 对象 - LightWave 物件 + LightWave 对象 + LightWave 物件 LightWave scene + LightWave-toneel مشهد LightWave LightWave səhnəsi - Scena LightWave + Scena LightWave Сцена — LightWave escena de LightWave scéna LightWave @@ -28612,13 +29604,14 @@ LightWave-scene LightWave-Szene Σκηνή LightWave - LightWave scene + LightWave scene LightWave-sceno escena de LightWave LightWave eszena LightWave-maisema LightWave leikmynd scène LightWave + sene LightWave radharc LightWave escena de LightWave סצנה של LightWave @@ -28639,7 +29632,7 @@ scèna LightWave Scena Lightwave cenário LightWave - Cena LightWave + Cena LightWave Scenă LightWave Сцена LightWave Scéna LightWave @@ -28650,26 +29643,28 @@ LightWave sahnesi сцена LightWave Cảnh LightWave - LightWave 场景 - LightWave 場景 + LightWave 场景 + LightWave 場景 MacPaint Bitmap image + MacPaint-roosterbeeld صورة MacPaint Bitmap - Bitmapnaja vyjava MacPaint + Bitmapnaja vyjava MacPaint Изображение — MacPaint Bitmap imatge de mapa de bits MacPaint obrázek MacPaint Bitmap MacPaint BitMap-billede MacPaint-Bitmap-Datei Εικόνα Bitmap MacPaint - MacPaint Bitmap image + MacPaint Bitmap image imagen de mapa de bits de MacPaint MacPaint Bitmap irudia MacPaint-bittikartta MacPaint Bitmap mynd image matricielle MacPaint + imagjin bitmap MacPaint íomhá ghiotánmhapach MacPaint imaxe de mapa de bits MacPaint תמונת מפת-סיביות של MacPaint @@ -28689,7 +29684,7 @@ imatge matricial MacPaint Obraz bitmapowy MacPaint imagem MacPaint Bitmap - Imagem de bitmap do MacPaint + Imagem de bitmap do MacPaint Imagine MacPaint Bitmap Растровое изображение MacPaint Obrázok MacPaint Bitmap @@ -28700,26 +29695,28 @@ MacPaint bit eşlem görüntüsü растрове зображення MacPaint Ảnh mảng MacPaint - MacPaint 位图 - MacPaint 點陣影像 + MacPaint 位图 + MacPaint 點陣影像 Office drawing + Office-tekening تصميم أوفيس - Ofisny rysunak + Ofisny rysunak Чертеж — Office dibuix d'Office kresba Office Officetegning Office-Zeichnung Σχέδιο Office - Office drawing + Office drawing dibujo de Office Office marrazkia Office-piirros Office tekning dessin Office + dissen di Office líníocht Office debuxo de Office ציור של Office @@ -28739,7 +29736,7 @@ dessenh Office Rysunek Office desenho Office - Desenho do Office + Desenho do Office Desen Office Рисунок Office Kresba Office @@ -28750,27 +29747,29 @@ Ofis çizimi малюнок Office Bản vẽ Office - Office 绘图 - Office 繪圖 + Office 绘图 + Office 繪圖 NIFF image + NIFF-beeld صورة NIFF - Vyjava NIFF + Vyjava NIFF Изображение — NIFF imatge NIFF obrázek NIFF NIFF-billede NIFF-Bild Εικόνα NIFF - NIFF image + NIFF image NIFF-bildo imagen NIFF NIFF irudia NIFF-kuva NIFF mynd image NIFF + imagjin NIFF íomhá NIFF imaxe NIFF תמונת NIFF @@ -28790,7 +29789,7 @@ imatge NIFF Obraz NIFF imagem NIFF - Imagem NIFF + Imagem NIFF Imagine NIF Изображение NIFF Obrázok NIFF @@ -28801,29 +29800,31 @@ NIFF görüntüsü зображення NIFF Ảnh NIFF - NIFF 图像 - NIFF 影像 + NIFF 图像 + NIFF 影像 - + PCX image + PCX-beeld صورة PCX - Vyjava PCX + Vyjava PCX Изображение — PCX imatge PCX obrázek PCX PCX-billede PCX-Bild Εικόνα PCX - PCX image + PCX image PCX-bildo imagen PCX PCX irudia PCX-kuva PCX mynd image PCX + imagjin PCX íomhá PCX imaxe PCX תמונת PCX @@ -28843,7 +29844,7 @@ imatge PCX Obraz PCX imagem PCX - Imagem PCX + Imagem PCX Imagine PCX Изображение PCX Obrázok PCX @@ -28854,16 +29855,16 @@ PCX görüntüsü зображення PCX Ảnh PCX - PCX 图像 - PCX 影像 + PCX 图像 + PCX 影像 PCX PiCture eXchange - - - - - + + + + + @@ -28871,21 +29872,23 @@ PCD image + PCD-beeld صورة PCD - Vyjava PCD + Vyjava PCD Изображение — PCD imatge PCD obrázek PCD PCD-billede PCD-Bild Εικόνα PCD - PCD image + PCD image PCD-bildo imagen PCD PCD irudia PCD-kuva PCD mynd image PCD + imagjin PCD íomhá PCD imaxe PCD תמונת PCD @@ -28906,7 +29909,7 @@ imatge PCD Obraz PCD imagem PCD - Imagem PCD + Imagem PCD Imagine PCD Изображение PCD Obrázok PCD @@ -28917,17 +29920,18 @@ PCD görüntüsü зображення PCD Ảnh PCD - PCD 图像 - PCD 影像 + PCD 图像 + PCD 影像 PCD PhotoCD PNM image + PNM-beeld صورة PNM PNM rəsmi - Vyjava PNM + Vyjava PNM Изображение — PNM imatge PNM obrázek PNM @@ -28935,13 +29939,14 @@ PNM-billede PNM-Bild Εικόνα PNM - PNM image + PNM image PNM-bildo imagen PNM PNM irudia PNM-kuva PNM mynd image PNM + imagjin PNM íomhá PNM imaxe PNM תמונת PNM @@ -28962,7 +29967,7 @@ imatge PNM Obraz PNM imagem PNM - Imagem PNM + Imagem PNM Imagine PNM Изображение PNM Obrázok PNM @@ -28973,14 +29978,15 @@ PNM görüntüsü зображення PNM Ảnh PNM - PNM 图像 - PNM 影像 + PNM 图像 + PNM 影像 PBM image + PBM-beeld صورة PBM - Vyjava PBM + Vyjava PBM Изображение — PBM imatge PBM obrázek PBM @@ -28988,13 +29994,14 @@ PBM-billede PBM-Bild Εικόνα PBM - PBM image + PBM image PBM-bildo imagen PBM PBM irudia PBM-kuva PBM mynd image PBM + imagjin PBM íomhá PBM imaxe PBM תמונת PBM @@ -29015,7 +30022,7 @@ imatge PBM Obraz PBM imagem PBM - Imagem PBM + Imagem PBM Imagine PBM Изображение PBM Obrázok PBM @@ -29026,31 +30033,32 @@ PBM görüntüsü зображення PBM Ảnh PBM - PBM 图像 - PBM 影像 + PBM 图像 + PBM 影像 PBM Portable BitMap - - - - - + + + + + - - - - - + + + + + PGM image + PGM-beeld صورة PGM - Vyjava PGM + Vyjava PGM Изображение — PGM imatge PGM obrázek PGM @@ -29058,13 +30066,14 @@ PGM-billede PGM-Bild Εικόνα PGM - PGM image + PGM image PGM-bildo imagen PGM PGM irudia PGM-kuva PGM mynd image PGM + imagjin PGM íomhá PGM imaxe PGM תמונת PGM @@ -29084,7 +30093,7 @@ imatge PGM Obraz PGM imagem PGM - Imagem PGM + Imagem PGM Imagine PGM Изображение PGM Obrázok PGM @@ -29095,31 +30104,32 @@ PGM görüntüsü зображення PGM Ảnh PGM - PGM 图像 - PGM 影像 + PGM 图像 + PGM 影像 PGM Portable GrayMap - - - - - + + + + + - - - - - + + + + + PPM image + PPM-beeld صورة PPM - Vyjava PPM + Vyjava PPM Изображение — PPM imatge PPM obrázek PPM @@ -29127,13 +30137,14 @@ PPM-billede PPM-Bild Εικόνα PPM - PPM image + PPM image PPM-bildo imagen PPM PPM irudia PPM-kuva PPM mynd image PPM + imagjin PPM íomhá PPM imaxe PPM תמונת PPM @@ -29153,7 +30164,7 @@ imatge PPM Obraz PPM imagem PPM - Imagem PPM + Imagem PPM Imagine PPM Изображение PPM Obrázok PPM @@ -29164,29 +30175,30 @@ PPM görüntüsü зображення PPM Ảnh PPM - PPM 图像 - PPM 影像 + PPM 图像 + PPM 影像 PPM Portable PixMap - - - - - + + + + + - - - - - + + + + + Photoshop image + Photoshop-beeld صورة فوتوشوب Изображение — Photoshop imatge de Photoshop @@ -29194,13 +30206,14 @@ Photoshop-billede Photoshop-Bild Εικόνα Photoshop - Photoshop image + Photoshop image Photoshop-bildo imagen de Photoshop Photoshop irudia Photoshop-kuva Photoshop mynd image Photoshop + imagjin Photoshop íomhá Photoshop imaxe de Photoshop תמונת Photoshop @@ -29219,7 +30232,7 @@ imatge Photoshop Obraz Photoshop imagem Photoshop - Imagem do Photoshop + Imagem do Photoshop Imagine Photoshop Изображение Photoshop Obrázok Photoshop @@ -29229,10 +30242,10 @@ Photoshop görüntüsü зображення Photoshop Ảnh Photoshop - Photoshop 图像 - Photoshop 影像 + Photoshop 图像 + Photoshop 影像 - + @@ -29244,9 +30257,10 @@ RGB image + RGB-beeld صورة RGB RGB rəsmi - Vyjava RGB + Vyjava RGB Изображение — RGB imatge RGB obrázek RGB @@ -29254,13 +30268,14 @@ RGB-billede RGB-Bild Εικόνα RGB - RGB image + RGB image RGB-bildo imagen RGB RGB irudia RGB-kuva RGB mynd image RGB + imagjin RGB íomhá RGB imaxe RGB תמונת RGB @@ -29281,7 +30296,7 @@ imatge RGB Obraz RGB imagem RGB - Imagem RGB + Imagem RGB Imagine RGB Изображение RGB Obrázok RGB @@ -29292,27 +30307,29 @@ RGB görüntüsü зображення RGB Ảnh kiểu RGB - RGB 图像 - RGB 影像 + RGB 图像 + RGB 影像 SGI image + SGI-beeld صورة SGI - Vyjava SGI + Vyjava SGI Изображение — SGI imatge SGI obrázek SGI SGI-billede SGI-Bild Εικόνα SGI - SGI image + SGI image SGI-bildo imagen SGI SGI irudia SGI-kuva SGI mynd image SGI + imagjin SGI íomhá SGI imaxe SGI תמונת SGI @@ -29332,7 +30349,7 @@ imatge SGI Obraz SGI imagem SGI - Imagem SGI + Imagem SGI Imagine SGI Изображение SGI Obrázok SGI @@ -29343,26 +30360,28 @@ SGI görüntüsü зображення SGI Ảnh SGI - SGI 图像 - SGI 影像 + SGI 图像 + SGI 影像 Sun raster image + Sun-roosterbeeld صورة Sun raster - Rastravaja vyjava Sun + Rastravaja vyjava Sun Изображение — Sun raster imatge ràster Sun rastrový obrázek Sun Sun rasterbillede Sun-Rasterbild Εικόνα Sun raster - Sun raster image + Sun raster image imagen rasterizada de Sun Sun raster irudia Sun-rasterikuva Sun raster mynd image raster Sun + imagjin raster Sun íomhá rastar Sun imaxe ráster de Sun תמונה סרוקה של Sun @@ -29382,7 +30401,7 @@ imatge raster Sun Obraz rastrowy Sun imagem raster Sun - Imagem raster da Sun + Imagem raster da Sun Imagine rasterizată Sun Растровое изображение Sun Rastrový obrázok Sun @@ -29393,30 +30412,32 @@ Sun raster görüntüsü растрове зображення Sun Ảnh mành Sun - Sun 光栅图像 - Sun raster 影像 + Sun 光栅图像 + Sun raster 影像 - + TGA image + TGA-beeld صورة TGA - Vyjava TGA + Vyjava TGA Изображение — TGA imatge TGA obrázek TGA TGA-billede TGA-Bild Εικόνα TGA - TGA image + TGA image TGA-bildo imagen TGA TGA irudia TGA-kuva TGA mynd image TGA + imagjin TGA íomhá TGA imaxe TGA תמונת TGA @@ -29436,7 +30457,7 @@ imatge TGA Obraz TGA imagem TGA - Imagem TGA + Imagem TGA Imagine TGA Изображение TGA Obrázok TGA @@ -29447,23 +30468,23 @@ TGA görüntüsü зображення TGA Ảnh TGA - TGA 图像 - TGA 影像 + TGA 图像 + TGA 影像 TGA Truevision Graphics Adapter - - - - - - - - - - - - + + + + + + + + + + + + @@ -29471,25 +30492,33 @@ + + + + + + Windows cursor + Windows-wyser مؤشر ويندوز - Kursor Windows + Kursor Windows Курсор — Windows cursor de Windows kurzor Windows Windowsmarkør Windows-Cursor Δρομέας Windows - Windows cursor + Windows cursor Windows-kursoro cursor de Windows Windows kurtsorea Windows-osoitin Windows vísi curseur Windows + cursôr di Windows cúrsóir Windows Cursor de Windows סמן של Windows @@ -29510,7 +30539,7 @@ cursor Windows Kursor Windows cursor Windows - Cursor do Windows + Cursor do Windows Cursor Windows Курсор Windows Kurzor Windows @@ -29521,31 +30550,33 @@ Windows imleci курсор Windows Con chạy Windows - Windows 光标 - Windows 滑鼠游標 + Windows 光标 + Windows 滑鼠游標 - - + + Windows animated cursor + Windows geanimeerde wyser مؤشر ويندوز المتحرك - Animavany kursor Windows + Animavany kursor Windows Курсор — Windows, анимиран cursor animat de Windows animovaný kurzor Windows Windowsanimeret markør Animierter Windows-Cursor Κινούμενος δρομέας Windows - Windows animated cursor + Windows animated cursor cursor animado de Windows Windows-eko kurtsore animatua animoitu Windows-osoitin Windows livindaigjørdur vísi curseur animé Windows + cursôr animât di Windows cúrsóir beoite Windows Cursor animado de Windows סמן מונפש של Windows @@ -29564,7 +30595,7 @@ cursor animat Windows Animowany kursor Windows cursor animado Windows - Cursor animado do Windows + Cursor animado do Windows Cursor animat Windows Анимированный курсор Windows Animovaný kurzor Windows @@ -29575,32 +30606,34 @@ Windows canlandırmalı imleci анімований курсор Windows Con chạy hoạt họa Windows - Windows 动态光标 - Windows 滑鼠動畫游標 + Windows 动态光标 + Windows 滑鼠動畫游標 - - + + EMF image + EMF-beeld صورة EMF - Vyjava EMF + Vyjava EMF Изображение — EMF imatge EMF obrázek EMF EMF-billede EMF-Bild Εικόνα EMF - EMF image + EMF image EMF-bildo imagen EMF EMF irudia EMF-kuva EMF mynd image EMF + imagjin EMF íomhá EMF imaxe EMF תמונת EMF @@ -29621,7 +30654,7 @@ imatge EMF Obraz EMF imagem EMF - Imagem EMF + Imagem EMF Imagine EMF Изображение EMF Obrázok EMF @@ -29632,8 +30665,8 @@ EMF görüntüsü зображення EMF Ảnh EMF - EMF 图像 - EMF 影像 + EMF 图像 + EMF 影像 EMF Enhanced MetaFile @@ -29641,10 +30674,10 @@ - - - - + + + + @@ -29652,21 +30685,23 @@ WMF image + WMF-beeld صورة WMF - Vyjava WMF + Vyjava WMF Изображение — WMF imatge WMF obrázek WMF WMF-billede WMF-Bild Εικόνα WML - WMF image + WMF image WMF-bildo imagen WMF WMF irudia WMF-kuva WMF mynd image WMF + imagjin WMF íomhá WMF imaxe WMF תמונת WMF @@ -29686,7 +30721,7 @@ imatge WMF Obraz WMF imagem WMF - Imagem WMF + Imagem WMF Imagine WMF Изображение WMF Obrázok WMF @@ -29697,21 +30732,21 @@ WMF görüntüsü зображення WMF Ảnh WMF - WMF 图像 - WMF 影像 + WMF 图像 + WMF 影像 WMF Windows Metafile - - - - - + + + + + - - - + + + @@ -29723,21 +30758,23 @@ XBM image + XBM-beeld صورة XBM - Vyjava XBM + Vyjava XBM Изображение — XBM imatge XBM obrázek XBM XBM-billede XBM-Bild Εικόνα XBM - XBM image + XBM image XBM-bildo imagen XBM XBM irudia XBM-kuva XBM mynd image XBM + imagjin XBM íomhá XBM imaxe XBM תמונת XBM @@ -29757,7 +30794,7 @@ imatge XBM Obraz XBM imagem XBM - Imagem XBM + Imagem XBM Imagine XBM Изображение XBM Obrázok XBM @@ -29768,29 +30805,31 @@ XBM görüntüsü зображення XBM Ảnh XBM - XBM 图像 - XBM 影像 + XBM 图像 + XBM 影像 XBM X BitMap GIMP image + GIMP-beeld صورة GIMP - Vyjava GIMP + Vyjava GIMP Изображение — GIMP imatge de GIMP obrázek GIMP GIMP-billede GIMP-Bild Εικόνα GIMP - GIMP image + GIMP image GIMP-bildo imagen del GIMP GIMP irudia GIMP-kuva GIMP mynd image GIMP + imagjin GIMP íomhá GIMP imaxe de GIMP תמונת GIMP @@ -29812,7 +30851,7 @@ imatge GIMP Obraz GIMP imagem GIMP - Imagem do GIMP + Imagem do GIMP Imagine GIMP Изображение GIMP Obrázok GIMP @@ -29823,21 +30862,29 @@ GIMP görüntüsü зображення GIMP Ảnh GIMP - GIMP 图像 - GIMP 影像 + GIMP 图像 + GIMP 影像 - - + + GIMP brush + GIMP-kwas + Четка — GIMP pinzell de GIMP štětec GIMP + GIMP-pensel GIMP-Pinsel - GIMP brush + GIMP brush pincel del GIMP + GIMP pintzela + GIMP-sivellin + brosse GIMP + pinel GIMP + scuab GIMP GIMP kist GIMP ecset Kuas GIMP @@ -29845,47 +30892,65 @@ GIMP бояу жаққышы GIMP 붓 Pędzel programu GIMP - Pincel do GIMP + Pincel do GIMP Кисть GIMP Štetec aplikácie GIMP + Čopič GIMP GIMP-pensel + GIMP fırçası пензель GIMP - GIMP 笔刷 - GIMP 筆刷 + GIMP 笔刷 + GIMP 筆刷 - + GIMP brush pipe + Конвейер с четки — GIMP conducte del pinzell de GIMP zřetězení štětců GIMP + GIMP-penselrør GIMP-Pinselanimation - GIMP brush pipe + GIMP brush pipe pincel animado del GIMP - GIMP valjkasti kist + GIMP pintzel hodia pipe + GIMP-sivellinputki + brosse animée GIMP + condot pinel GIMP + píopa scuaba GIMP + Proces GIMP kista GIMP ecsetcsatorna Pipa kuas GIMP Pipe pennello GIMP GIMP бояу жаққыш түтігі GIMP 붓 파이프 Potok pędzla programu GIMP - Tubo de pincel do GIMP + Tubo de pincel do GIMP Анимированная кисть GIMP GIMP-penselrör + GIMP fırça borusu канал пензлів GIMP - GIMP 管刷 - GIMP 筆刷導管 + GIMP 管刷 + GIMP 筆刷導管 GIMP pattern + GIMP-patroon + Шарка — GIMP patró de GIMP vzorek GIMP + GIMP-mønster GIMP-Muster - GIMP pattern + GIMP pattern patrón del GIMP + GIMP eredua + GIMP-kuvio + motif GIMP + motîf GIMP + patrún GIMP GIMP uzorak GIMP minta Pola GIMP @@ -29893,35 +30958,39 @@ GIMP оюы GIMP 패턴 Deseń programu GIMP - Textura do GIMP + Textura do GIMP Шаблон GIMP Vzor aplikácie GIMP + Vzorec GIMP GIMP-mönster + GIMP deseni візерунок GIMP - GIMP 图案 - GIMP 樣式 + GIMP 图案 + GIMP 樣式 - + XFig image + XFig-beeld صورة XFig - Vyjava XFig + Vyjava XFig Изображение — XFig imatge de XFig obrázek XFig XFig-billede XFig-Bild Εικόνα XFig - XFig image + XFig image XFig-bildo imagen de XFig XFig irudia XFig-kuva XFig mynd image XFig + imagjin XFig íomhá XFig imaxe de XFig תמונת XFig @@ -29942,7 +31011,7 @@ imatge XFig Obraz XFig imagem XFig - Imagem do XFig + Imagem do XFig Imagine XFig Изображение XFig Obrázok XFig @@ -29953,17 +31022,18 @@ XFig görüntüsü зображення XFig Ảnh XFig - XFig 图像 - XFig 影像 + XFig 图像 + XFig 影像 - + XPM image + XPM-beeld صورة XPM - Vyjava XPM + Vyjava XPM Изображение — XPM imatge XPM obrázek XPM @@ -29971,13 +31041,14 @@ XPM-billede XPM-Bild Εικόνα XPM - XPM image + XPM image XPM-bildo imagen XPM XPM irudia XPM-kuva XPM mynd image XPM + imagjin XPM íomhá XPM imaxe XPM תמונת XPM @@ -29997,7 +31068,7 @@ imatge XPM Obraz XPM imagem XPM - Imagem XPM + Imagem XPM Imagine XPM Изображение XPM Obrázok XPM @@ -30008,21 +31079,22 @@ XPM görüntüsü зображення XPM Ảnh XPM - XPM 图像 - XPM 影像 + XPM 图像 + XPM 影像 XPM X PixMap - + X window image + X window-beeld صورة X window X window rəsmi - Vyjava vakna X + Vyjava vakna X Изображение — X Window imatge de X window obrázek X window @@ -30030,13 +31102,14 @@ X-billede X-Window-Bild Εικόνα περιβάλλοντος X - X window image + X window image bildo de X window imagen de ventana de X X window irudia X-ikkunakuva X vindeyga mynd image X window + imagjin X window íomhá X-windows imaxe de X Window תמונת חלון של X @@ -30057,7 +31130,7 @@ imatge X window Obraz X Window imagem de janela X - Imagem de janela do X + Imagem de janela do X Imagine X window Изображение X window Obrázok X window @@ -30068,28 +31141,30 @@ X pencere görüntüsü зображення X window Ảnh cửa sổ X - X Window 图像 - X window 影像 + X Window 图像 + X window 影像 block device + bloktoestel جهاز كتلي preséu de bloques - blokavaja pryłada + blokavaja pryłada Блоково устройство dispositiu de blocs blokové zařízení blokenhed Blockorientiertes Gerät Συσκευή block - block device + block device bloka disponaĵo dispositivo de bloques bloke-gailua laitetiedosto blokka tóleind périphérique de blocs + dispositîf a blocs gléas bloc dispositivo de bloque התקן בלוק @@ -30110,7 +31185,7 @@ periferic de blòts Urządzenie blokowe dispositivo de bloco - Dispositivo de bloco + Dispositivo de bloco dispozitiv bloc Блочное устройство Blokové zariadenie @@ -30121,27 +31196,29 @@ blok aygıtı блоковий пристрій thiết bị khối - 块设备 - 區塊裝置 + 块设备 + 區塊裝置 character device + karaktertoestel جهاز حرفي preséu de caráuteres - znakavaja pryłada + znakavaja pryłada Символно устройство dispositiu de caràcters znakové zařízení tegnenhed Zeichenorientiertes Gerät Συσκευή χαρακτήρων - character device + character device signa disponaĵo dispositivo de caracteres karaktereen gailua merkkilaite stavatóleind périphérique de caractères + dispositîf a caratars gléas carachtar dispositivo de caracter התקן תכונה @@ -30162,7 +31239,7 @@ periferic de caractèrs Urządzenie znakowe dispositivo de caracteres - Dispositivo de caractere + Dispositivo de caractere dispozitiv caracter Символьное устройство Znakové zariadenie @@ -30173,27 +31250,29 @@ karakter aygıtı символьний пристрій thiết bị ký tự - 字符设备 - 字元裝置 + 字符设备 + 字元裝置 folder + gids مجلّد carpeta - kataloh + kataloh Папка carpeta složka mappe Ordner Φάκελος - folder + folder dosierujo carpeta karpeta kansio mappa dossier + cartele fillteán cartafol תיקייה @@ -30214,7 +31293,7 @@ dorsièr Katalog pasta - Pasta + Pasta dosar Папка Priečinok @@ -30225,28 +31304,30 @@ dizin тека thư mục - 文件夹 - 資料夾 + 文件夹 + 資料夾 pipe + pyp إنبوب - kanvejer + kanvejer Конвейер conducte roura datakanal Pipe Διοχέτευση - pipe + pipe dukto - tubería + canalización kanalizazioa putki rør tube + condot píopa tubería צינור @@ -30267,7 +31348,7 @@ tub Potok canal - Pipe + Pipe canal pipe Канал Rúra @@ -30278,27 +31359,29 @@ boru канал ống dẫn - 管道 - 管線 + 管道 + 管線 mount point + hegpunt نقطة الوصْل puntu de montaxe - punkt mantavańnia + punkt mantavańnia Точка на монтиране punt de muntatge přípojné místo monteringspunkt Einhängepunkt Σημείο προσάρτησης - mount point + mount point surmetingo punto de montaje muntatze-puntua liitospiste ísetingarpunkt point d'accès + pont di montaç pointe feistithe punto de montaxe נקודת עיגון @@ -30319,7 +31402,7 @@ punt d'accès Punkt montowania ponto de montagem - Ponto de montagem + Ponto de montagem loc montare Точка монтирования Miesto pripojenia @@ -30330,27 +31413,29 @@ bağlama noktası точка монтування điểm lắp - 挂载点 - 掛載點 + 挂载点 + 掛載點 socket + sok مقبس - sokiet + sokiet Гнездо sòcol socket sokkel Socket Υποδοχή - socket + socket kontaktoskatolo socket socketa pistoke sokkul connecteur réseau + socket soicéad socket נקודת חיבור @@ -30371,7 +31456,7 @@ connector ret Gniazdo tomada - Socket + Socket socket Сокет Soket @@ -30382,15 +31467,16 @@ soket сокет ổ cắm - 套接字 - socket + 套接字 + socket symbolic link + simboliese skakel وصلة رمزية enllaz simbólicu simvolik körpü - symbalnaja spasyłka + symbalnaja spasyłka Символна връзка enllaç simbòlic symbolický odkaz @@ -30398,13 +31484,14 @@ symbolsk henvisning Symbolische Verknüpfung Συμβολικός σύνδεσμος - symbolic link + symbolic link simbola ligilo enlace simbólico esteka sinbolikoa symbolinen linkki tykislig leinkja lien symbolique + colegament simbolic nasc siombalach ligazón simbólica קישור סימבולי @@ -30426,7 +31513,7 @@ ligam simbolic Dowiązanie symboliczne ligação simbólica - Ligação simbólica + Ligação simbólica legătură simbolică Символьная ссылка Symbolický odkaz @@ -30434,17 +31521,18 @@ Lidhje simbolike симболичка веза symbolisk länk - sembolik bağlantı + simgesel bağlantı символічне посилання liên kết tượng trưng - 符号链接 - 符號鏈結 + 符号链接 + 符號連結 mail delivery report + posafleweringverslag تقرير تسليم البريد poçt yollama raportu - rapart ab dastaŭcy pošty + rapart ab dastaŭcy pošty Отчет за пристигналата поща informe de lliurament de correu zpráva o doručení pošty @@ -30452,13 +31540,14 @@ postleveringsrapport E-Mail-Zustellungsbericht Αναφορά παράδοσης μηνύματος - mail delivery report + mail delivery report raporto pri transdono de retpoŝto informe de entrega de correo posta banaketako txostena viestin jakeluilmoitus post útberingarfrásøgn rapport de livraison de courriels + rapuart di consegne pueste tuairisc sheachadta r-phoist informe de entrega de correo דוח העברת דואר @@ -30479,7 +31568,7 @@ rapòrt de liurason de corrièrs electronics Raport z dostarczenia poczty relatório de entrega de email - Relatório de entrega de correspondência + Relatório de entrega de correspondência raport de trimitere email Отчёт о доставке сообщения Správa o doručení pošty @@ -30490,8 +31579,8 @@ posta iletim raporu звіт про доставку пошти thông báo phát thư - 邮件投递报告 - 郵件寄送回報 + 邮件投递报告 + 郵件寄送回報 @@ -30499,7 +31588,7 @@ mail disposition report تقرير ترتيب البريد poçt qayıtma raportu - rapart ab raźmiaščeńni pošty + rapart ab raźmiaščeńni pošty Отчет за състоянието на пощата informe de disposició de correu zpráva o předání pošty @@ -30507,13 +31596,14 @@ postdisponeringsrapport E-Mail-Übertragungsbericht Αναφορά διάθεσης μηνύματος - mail disposition report + mail disposition report raporto pri dispono de retpoŝto informe de disposición de correo posta joerako txostena viestin kuittausilmoitus post avhendingarfrásøgn rapport de disposition de courriels + rapuart di disposizion pueste tuairisc chóirithe r-phoist informe de disposición de correo דוח אספקת דואר @@ -30534,7 +31624,7 @@ rapòrt de disposicion de corrièrs electronics Raport z wysyłania poczty relatório de disposição de email - Relatório de disposição de correspondência + Relatório de disposição de correspondência confirmare primire email Отчёт о перемещении почты Správa o odovzdaní pošty @@ -30545,16 +31635,17 @@ posta silinme raporu звіт про розташування пошти thông báo chuyển nhượng thư - 邮件接收报告 - 郵件處置回報 + 邮件接收报告 + 郵件處置回報 reference to remote file + verwysing na afgeleë lêer مرجع إلى ملف بعيد uzaq fayla göstəriş - spasyłka da addalenaha fajłu + spasyłka da addalenaha fajłu Препратка към отдалечен файл referència a fitxer remot odkaz na vzdálený soubor @@ -30562,13 +31653,14 @@ reference til fjern fil Verweis auf entfernte Datei Αναφορά σε απομακρυσμένο αρχείο - reference to remote file + reference to remote file referenco al fora dosiero referencia a un archivo remoto erreferentzia urruneko fitxategiari viittaus etätiedostoon tilvísing til fjarfílu référence au fichier distant + riferiment a file rimot tagairt do chomhad cianda referencia a un ficheiro remoto התיחסות לקובץ מרוחק @@ -30589,7 +31681,7 @@ referéncia al fichièr distant Odwołanie do pliku zdalnego referência a um ficheiro remoto - Referência para arquivo remoto + Referência para arquivo remoto referință fișier la distanță Ссылка на удалённый файл Odkaz na vzdialený súbor @@ -30597,32 +31689,34 @@ Referim për tek file në distancë упута на удаљену датотеку referens till fjärrfil - uzaktaki dosyaya başvuru + uzaktaki dosyaya atıf посилання на віддалений файл tham chiếu đến tập tin ở xa - 到远程文件的引用 - 遠端檔案的參照 + 到远程文件的引用 + 遠端檔案的參照 Usenet news message + Usenet-nuusboodskap رسالة أخبار Usenet Usenet xəbərlər ismarışı - Navina Usenet + Navina Usenet Съобщение — Usenet missatge de notícies Usenet příspěvek do diskusních skupin Usenet Neges newyddion Usenet - Usenetnyhedsmeddelelse + Usenet-nyhedsmeddelelse Usenet-News-Nachricht Μήνυμα ομάδων συζητήσεων Usenet - Usenet news message + Usenet news message novaĵmesaĝo de Usenet mensaje de noticias de Usenet Usenet berrien mezua nyyssiviesti Usenet news boð message de groupe d'échange Usenet + messaç gnovis Usenet teachtaireacht nuachta Usenet mensaxes de noticias de Usenet הודעת חדשות של Usenet @@ -30643,7 +31737,7 @@ messatge de grop d'escambi Usenet Wiadomość grupy dyskusyjnej mensagem de notícias Usenet - Mensagem de notícias da Usenet + Mensagem de notícias da Usenet Mesaj Usenet de știri Новостное сообщение Usenet Príspevok do diskusných skupín Usenet @@ -30654,21 +31748,22 @@ Usenet haber iletisi повідомлення новин Usenet Thông điệp tin tức USENET - Usenet 新闻信 - Usenet 新聞訊息 + Usenet 新闻信 + Usenet 新聞訊息 - - - + + + partial email message + gedeeltelike e-posboodskap رسالة البريد الإلكتروني الجزئية qismi poçt ismarışı - niapoŭny list email + niapoŭny list email Част от електронно писмо missatge de correu electrònic parcial částečná e-mailová zpráva @@ -30676,12 +31771,13 @@ delvis postmeddelelse E-Mail-Nachrichtenfragment Τμηματικό ηλ. μήνυμα - partial email message + partial email message parta retpoŝta mesaĝo mensaje de correo electrónico parcial posta mezu partziala osittainen sähköpostiviesti message partiel de courriel + messaç e-mail parziâl teachtaireacht ríomhphoist neamhiomlán mensaxe de correo electrónico parcial מסר דוא״ל חלקי @@ -30702,7 +31798,7 @@ messatge parcial de corrièr electronic Częściowa wiadomość e-mail mensagem parcial de email - Mensagem de e-mail parcial + Mensagem de e-mail parcial mesaj de email parțial Фрагмент сообщения электронной почты Čiastočná e-mailová správa @@ -30713,28 +31809,30 @@ kısmi eposta iletisi часткове поштове повідомлення thư điện tử riêng phần - 部分电子邮件 - 部份電子郵件訊息 + 部分电子邮件 + 部份電子郵件訊息 email message + e-posboodskap رسالة البريد الإلكتروني - list email + list email Съобщение по електронната поща missatge de correu electrònic e-mailová zpráva postmeddelelse E-Mail-Nachricht Ηλ. μήνυμα - email message + email message retpoŝta mesaĝo mensaje de correo electrónico helbide elektronikoen mezua sähköpostiviesti t-post boð message de courriel + messaç e-mail teachtaireacht ríomhphoist mensaxe de correo electrónico הודעת דואר אלקטרוני @@ -30755,7 +31853,7 @@ messatge de corrièr electronic Wiadomość e-mail mensagem de email - Mensagem de e-mail + Mensagem de e-mail mesaj email Почтовое сообщение E-mailová správa @@ -30766,29 +31864,30 @@ eposta iletisi повідомлення email thư điện tử - 电子邮件 - 電子郵件內容 + 电子邮件 + 電子郵件內容 - - - - - - - - - - + + + + + + + + + + GNU mail message + GNU-posboodskap رسالة بريد جنو GNU poçt ismarışı - List GNU + List GNU Съобщение — GNU mail missatge de GNU mail zpráva GNU mail @@ -30796,13 +31895,14 @@ GNU-postmeddelelse GNU-Mail-Nachricht Μήνυμα αλληλογραφίας GNU - GNU mail message + GNU mail message mesaĝo de GNU mail mensaje de correo de GNU GNU posta mezua GNU-postiviesti GNU mail boð message de courriel GNU + messaç di pueste GNU teachtaireacht r-phoist GNU mensaxe de correo electrónico de GNU הודעת דואר של GNU @@ -30824,7 +31924,7 @@ messatge de corrièr electronic GNU Wiadomość pocztowa GNU mensagem de email GNU - Mensagem de e-mail GNU + Mensagem de e-mail GNU Mesaj GNU mail Почтовое сообщение GNU Správa GNU mail @@ -30835,58 +31935,63 @@ GNU posta iletisi поштове повідомлення GNU Thư điện tử của GNU - GNU mail 信件 - GNU 郵件訊息 + GNU mail 信件 + GNU 郵件訊息 IGES document + IGES-dokument Documentu IGES + Документ — IGES document IGES dokument IGES IGES-dokument IGES-Dokument - IGES document + IGES document documento IGES IGES dokumentua IGES-asiakirja document IGES + document IGES cáipéis IGES מסמך IGES IGES dokument IGES dokumentum - dokumen IGES + Dokumen IGES Documento IGES IGES құжаты IGES 문서 Dokument IGES - Documento IGES + Documento IGES Документ IGES Dokument IGES + Dokument IGES ИГЕС документ IGES-dokument IGES belgesi документ IGES - IGES 文档 - IGES 文件 + IGES 文档 + IGES 文件 IGES Initial Graphics Exchange Specification - - + + VRML document + VRML-dokument مستند VRML Documentu VRML VRML sənədi - Dakument VRML + Dakument VRML Документ — VRML document VRML dokument VRML @@ -30894,13 +31999,14 @@ VRML-dokument VRML-Dokument Έγγραφο VRML - VRML document + VRML document VRML-dokumento documento VRML VRML dokumentua VRML-asiakirja VRML skjal document VRML + document VRML cáipéis VRML documento VRML מסמך VRML @@ -30921,7 +32027,7 @@ document VRML Dokument VRML documento VRML - Documento VRML + Documento VRML Document VRML Документ VRML Dokument VRML @@ -30932,14 +32038,14 @@ VRML belgesi документ VRML Tài liệu VRML - VRML 文档 - VRML 文件 + VRML 文档 + VRML 文件 VRML Virtual Reality Modeling Language - + @@ -30947,9 +32053,10 @@ message in several formats + boodskap in verskeie formate رسالة في عدة صيغ verici formatlarında ismarış - paviedamleńnie ŭ niekalkich farmatach + paviedamleńnie ŭ niekalkich farmatach Съобщение в няколко формата missatge en diversos formats zpráva v několika formátech @@ -30957,13 +32064,14 @@ meddelelse i flere formater Nachricht in mehreren Formaten Μήνυμα σε διάφορες μορφές - message in several formats + message in several formats mesaĝo en pluraj formatoj mensaje en varios formatos hainbat formatuko mezua viesti useissa muodoissa boð í fleiri sniðum message en formats divers + messaç in diviers formâts teachtaireacht i bhformáidí éagsúla mensaxe en varios formatos הודעה במספר תבניות @@ -30974,7 +32082,7 @@ Messaggio in diversi formati いくつかの形式でのメッセージ бірнеше пішімдегі мәлімдеме - 여러가지 형식의 메시지 + 여러 가지 형식의 메시지 laiškas keletu formatų ziņojums dažādos formātos Mesej dalam beberapa format @@ -30984,7 +32092,7 @@ messatge en formats divèrses Wiadomość w wielu formatach mensagem em vários formatos - Mensagem em vários formatos + Mensagem em vários formatos mesaj în diferite formate Сообщение в нескольких форматах Správa v niekoľkých formátoch @@ -30995,14 +32103,15 @@ farklı biçimlerde ileti повідомлення у кількох форматах thông điệp có vài định dạng - 各种格式的信件 - 多種格式的訊息 + 各种格式的信件 + 多種格式的訊息 Macintosh AppleDouble-encoded file + Macintosh AppleDouble-geënkodeerde lêer ملف Macintosh AppleDouble مشفر Macintosh AppleDouble-kodlanmış fayl - Fajł Macintosh, AppleDouble-zakadavany + Fajł Macintosh, AppleDouble-zakadavany Файл — кодиран с Macintosh AppleDouble fitxer codificat AppleDouble de Macintosh soubor kódovaný pomocí Macintosh AppleDouble @@ -31010,17 +32119,18 @@ Macintosh AppleDouble-kodet fil Macintosh-Datei (AppleDouble-kodiert) Αρχείο Macintosh κωδικοποίησης AppleDouble - Macintosh AppleDouble-encoded file + Macintosh AppleDouble-encoded file dosiero kodigita laŭ Macintosh AppleDouble archivo Macintosh codificado con AppleDouble Macintosh AppleDouble-rekin kodetutako fitxategia Macintosh AppleDouble -koodattu tiedosto Macintosh AppleDouble-bronglað fíla fichier codé Macintosh AppleDouble + file codificât in Macintosh AppleDouble comhad ionchódaithe le Macintosh AppleDouble ficheiro de Macintosh codificado con AppleDouble קובץ מסוג Macintosh AppleDouble-encoded - Macintosh AppleDouble-kodirana datoteka + Macintosh AppleDouble-kôdirana datoteka Macintosh AppleDouble kódolású fájl File codificate in AppleDouble de Macintosh Berkas tersandi Macintosh AppleDouble @@ -31037,7 +32147,7 @@ fichièr encodat Macintosh AppleDouble Zakodowany w AppleDouble plik Macintosh ficheiro codificado em AppleDouble de Macintosh - Arquivo do Macintosh codificado com AppleDouble + Arquivo do Macintosh codificado com AppleDouble Fișier codat Macintosh AppleDouble Файл, закодированный Macintosh AppleDouble Súbor kódovaný pomocou Macintosh AppleDouble @@ -31048,14 +32158,14 @@ Macintosh AppleDouble-şifreli dosyası файл закодований Macintosh AppleDouble Tập tin đã mã hoá Apple-Double của Macintosh - Macintosh AppleDouble 编码的文件 - Macintosh AppleDouble 編碼檔 + Macintosh AppleDouble 编码的文件 + Macintosh AppleDouble 編碼檔 message digest خلاصة الرسالة ismarış daycesti - digest paviedamleńniaŭ + digest paviedamleńniaŭ Извадка от съобщение recopilació de missatges přehled zpráv @@ -31063,13 +32173,14 @@ meddelelsessammendrag Nachrichtensammlung Περίληψη μηνύματος - message digest + message digest mesaĝaro recopilación de mensajes mezu laburra viestikokoelma boð samandráttur condensé de message + sunt di messaç achoimre theachtaireachtaí recompilación de mensaxe תקציר ההודעה @@ -31090,7 +32201,7 @@ condensé de messatge Wiadomość przetwarzania grupo de mensagens - Resumo de mensagem + Resumo de mensagem colecție mesaje email Дайджест сообщения Prehľad správ @@ -31098,17 +32209,18 @@ Shpërndarje mesazhesh гомила порука meddelandesamling - mesaj özeti + ileti özeti збірка повідомлень bản tóm tắt thông điệp - 信件摘要 - 訊息摘要 + 信件摘要 + 訊息摘要 encrypted message + geënkripteerde boodskap رسالة مشفرة şifrələnmiş ismarış - zašyfravanaje paviedamleńnie + zašyfravanaje paviedamleńnie Шифрирано съобщение missatge xifrat zašifrovaná zpráva @@ -31116,13 +32228,14 @@ krypteret meddelelse Verschlüsselte Nachricht Κρυπτογραφημένο μήνυμα - encrypted message + encrypted message ĉifrita mesaĝo mensaje cifrado - mezu enkriptatua + zifratutako mezua salattu viesti bronglað boð message chiffré + messaç cifrât teachtaireacht chriptithe mensaxe cifrado הודעה מוצפנת @@ -31143,7 +32256,7 @@ messatge chifrat Wiadomość zaszyfrowana mensagem encriptada - Mensagem criptografada + Mensagem criptografada mesaj criptat Зашифрованное сообщение Zašifrovaná správa @@ -31151,30 +32264,32 @@ Mesazh i kriptuar шифрована порука krypterat meddelande - şifrelenmiş mesaj + şifrelenmiş ileti шифроване повідомлення thông điệp đã mật mã - 加密信件 - 加密訊息 + 加密信件 + 加密訊息 compound documents + saamgestelde dokumente مستندات مركبة documentos compuestos - składanyja dakumenty + składanyja dakumenty Съставни документи documents compostos složené dokumenty sammensatte dokumenter Verbunddokumente Σύνθετα έγγραφα - compound documents + compound documents parentezaj dokumentoj documentos compuestos konposatutako dokumentuak yhdisteasiakirjat samansett skjøl documents composés + documents composcj cáipéisí comhshuite documentos compostos מסמכים מורכבים @@ -31195,7 +32310,7 @@ documents compausats Dokumenty złożone documentos compostos - Documentos compostos + Documentos compostos documente compuse Составные документы Zložené dokumenty @@ -31203,18 +32318,19 @@ dokumente të përbërë сједињени документи sammansatta dokument - birleşik belgeleri + bileşik belgeler складні документи tài liệu ghép - 组合文档 - 複合文件 + 组合文档 + 複合文件 compound document + saamgestelde dokument مستند مركب documentu compuestu birləşik sənəd - składany dakument + składany dakument Съставен документ document compost složený dokument @@ -31222,13 +32338,14 @@ sammensat dokument Verbunddokument Σύνθετο έγγραφο - compound document + compound document parenteza dokumento documento compuesto konposatutako dokumentua yhdisteasiakirja samansett skjal document composé + document compost cáipéis comhshuite documento composto מסמך מורכב @@ -31249,7 +32366,7 @@ document compausat Dokument złożony documento composto - Documento composto + Documento composto document compus Составной документ Zložený dokument @@ -31260,14 +32377,14 @@ bileşik belge складний документ tài liệu ghép - 组合文档 - 複合文件 + 组合文档 + 複合文件 mail system report تقرير نظام البريد poçt sistemi raportu - rapart paštovaj systemy + rapart paštovaj systemy Отчет за пощенската система informe de sistema de correu zpráva poštovního systému @@ -31275,13 +32392,14 @@ postsystemrapport E-Mail-Systembericht Αναφορά συστήματος ηλ. ταχυδρομείου - mail system report + mail system report raporto de retpoŝta sistemo informe del sistema de correo posta sistemako txostena viestijärjestelmän ilmoitus postkervisfrásøgn rapport système de courriels + rapuart di sisteme de pueste tuairisc chórais r-phoist informe do sistema de correo דו״ח של מערכת הדואר @@ -31302,7 +32420,7 @@ rapòrt sistèma de corrièrs electronics Raport systemu pocztowego relatório de sistema de email - Relatório do sistema de correspondência + Relatório do sistema de correspondência raport sistem email Отчёт почтовой системы Správa poštového systému @@ -31313,14 +32431,15 @@ posta sistem raporu звіт поштової системи thông báo hệ thống thư - 邮件系统报告 - 郵件系統回報 + 邮件系统报告 + 郵件系統回報 signed message + getekende boodskap رسالة موقّعة imzalanmış ismarış - padpisanaje paviedamleńnie + padpisanaje paviedamleńnie Подписано съобщение missatge signat podepsaná zpráva @@ -31328,13 +32447,14 @@ signeret meddelelse Signierte Nachricht Υπογεγραμμένο μήνυμα - signed message + signed message pruvita mesaĝo mensaje firmado sinatutako mezua allekirjoitettu viesti undirskrivað boð message signé + messaç firmât teachtaireacht sínithe mensaxe firmado הודעה חתומה @@ -31355,7 +32475,7 @@ messatge signat Podpisana wiadomość mensagem assinada - Mensagem assinada + Mensagem assinada mesaj semnat Подписанное сообщение Podpísaná správa @@ -31366,26 +32486,27 @@ imzalı ileti підписане повідомлення thông điệp đã ký - 签名信件 - 簽署的訊息 + 签名信件 + 已簽署的訊息 stream of data (server push) دفق بيانات (دفع خادم) - płyń źviestak (ad servera) - Поток от данни, от страна на сървър + płyń źviestak (ad servera) + Поток от данни — пратени от сървър flux de dades (enviat pel servidor) proud dat (posílaný serverem) datastrøm (serverskubbet) Datenstrom (Server-Push) Ροή δεδομένων (στελλόμενα από διακομιστή) - stream of data (server push) + stream of data (server push) datumstrio (puŝata per servilo) flujo de datos (por iniciativa del servidor) datu-korrontea (zerbitzari igortzailea) tietovirta (palvelin työntää) streymur av dáta (ambætara skump) flux de données (émis par le serveur) + flus di dâts (pe iniziative dal servidôr) sruth sonraí (brú freastalaí) fluxo de datos (por iniciativa do servidor) מידע בזרימה (דחיפה ע״י השרת) @@ -31406,7 +32527,7 @@ flux de donadas (emés pel servidor) Strumień danych (wymuszenie serwera) fluxo de dados (empurrados pelo servidor) - Fluxo de dados (por iniciativa do servidor) + Fluxo de dados (por iniciativa do servidor) flux de date (de la server) Поток данных (server push) Prúd dát (posielaný serverom) @@ -31417,26 +32538,28 @@ veri akışı (sunucudan gönderilen) потік даних (від сервера) luồng dữ liệu (trình phục vụ đẩy) - 数据流(服务器推送) - 資料串流 (server push) + 数据流(服务器推送) + 資料串流 (server push) VCS/ICS calendar + VCS/ICS-kalender سجل VCS/ICS - Kalandar VCS/ICS + Kalandar VCS/ICS Календар — VCS/ICS calendari VCS/ICS kalendář VCS/ICS VCS/ICS-kalender VCS/ICS-Kalender Ημερολόγιο VCS/ICS - VCS/ICS calendar + VCS/ICS calendar VCS/ICS-kalendaro calendario VCS/ICS VCS/ICS egutegia VCS/ICS-kalenteri VCS/ICS kalendari calendrier VCS/ICS + calendari VCS/ICS féilire VCS/ICS Calendario VCS/ICS לוח שנה VCS/ICS @@ -31456,7 +32579,7 @@ calendièr VCS/ICS Kalendarz VCS/ICS calendário VCS/ICS - Calendário VCS/ICS + Calendário VCS/ICS Calendar VCS/ICS Календарь VCS/ICS Kalendár VCS/ICS @@ -31467,37 +32590,39 @@ VCS/ICS takvimi календар VCS/ICS Lịch VCS/ICS - VCS/ICS 日历 - VCS/ICS 行事曆 + VCS/ICS 日历 + VCS/ICS 行事曆 VCS/ICS vCalendar/iCalendar - - + + CSS stylesheet + CSS-stylblad نمط CSS - Arkuš stylaŭ CSS + Arkuš stylaŭ CSS Стилове — CSS llista d'estil CSS stylopis CSS CSS-stilark CSS-Stilvorlage Φύλλο στυλ CSS - CSS stylesheet + CSS stylesheet CSS-stilfolio hoja de estilos CSS CSS estilo-orria CSS-tyylitiedosto CSS sniðark feuille de style CSS + sfuei di stîl CSS stílbhileog CSS folla de estilos CSS גליון עיצוב CSS @@ -31518,7 +32643,7 @@ fuèlh d'estil CSS Arkusz stylów CSS folha de estilos CSS - Folha de estilo CSS + Folha de estilo CSS Pagină de stil CSS Таблица стилей CSS Štýly CSS @@ -31529,8 +32654,8 @@ CSS stil kağıdı таблиця стилів CSS Tờ kiểu dáng CSS - CSS 样式表 - CSS 樣式表 + CSS 样式表 + CSS 樣式表 CSS Cascading Style Sheets @@ -31538,21 +32663,23 @@ electronic business card + elektroniese beskigheidskaartjie بطاقة أعمال إلكترونية - elektronnaja biznes-kartka + elektronnaja biznes-kartka Електронна визитна картичка targeta de visita electrònica elektronická navštívenka elektronisk visitkort Elektronische Visitenkarte Ηλεκτρονική επαγγελματική κάρτα - electronic business card + electronic business card elektronika vizitkarto tarjeta de visita electrónica enpresako txartel elektronikoa sähköinen käyntikortti elektroniskt handilskort carte de visite électronique + biliet di visite eletronic cárta gnó leictreonach tarxeta de negocio electrónica כרטיס ביקור אלקטרוני @@ -31571,7 +32698,7 @@ carta de visita electronica Wizytówka elektroniczna cartão de visita eletrónico - Cartão de visitas eletrônico + Cartão de visitas eletrônico carte de vizită electronică Электронная визитная карточка Elektronická vizitka @@ -31582,14 +32709,14 @@ elektronik iş kartı електронна бізнес-картка danh thiếp điện tử - 电子商务卡 - 電子商務名片 + 电子商务卡 + 電子商務名片 - - + + @@ -31598,17 +32725,20 @@ Turtle document + Turtle-dokument Documentu Turtle + Документ — Turtle document Turtle dokument Turtle Turtle-dokument Turtle-Dokument Έγγραφο Turtle - Turtle document + Turtle document documento de Turtle Turtle dokumentua Turtle-asiakirja document Turtle + document Turtle cáipéis Turtle מסמך Turtle Turtle dokument @@ -31621,43 +32751,46 @@ document Turtle Dokument Turtle documento Turtle - Documento Turtle + Documento Turtle Документ Turtle Dokument Turtle + Dokument Turtle Тартл документ Turtle-dokument Turtle belgesi документ Turtle - Turtle 文档 - Turtle 文件 + Turtle 文档 + Turtle 文件 txt2tags document + txt2tags-dokument مستند txt2tags Documentu txt2tags - dakument txt2tags + dakument txt2tags Документ — txt2tags document txt2tags dokument txt2tags txt2tags-dokument txt2tags-Dokument Έγγραφο txt2tags - txt2tags document + txt2tags document txt2tags-dokumento documento txt2tags txt2tags dokumentua txt2tags-asiakirja txt2tags skjal document txt2tags + document txt2tags cáipéis txt2tags documento txt2tags מסמך txt2tags txt2tags dokument txt2tags dokumentum Documento txt2tags - Dokumen txt2tags + dokumen txt2tags Documento txt2tags txt2tags ドキュメント txt2tags დოკუმენტი @@ -31671,7 +32804,7 @@ document txt2tags Dokument txt2tags documento txt2tags - Documento do txt2tags + Documento do txt2tags document txt2tags Документ txt2tags Dokument txt2tags @@ -31682,29 +32815,31 @@ txt2tags belgesi документ txt2tags tài liệu txt2tags - txt2tags 文档 - txt2tags 文件 + txt2tags 文档 + txt2tags 文件 - - + + Verilog source code + Verilog-bronkode Изходен код — Verilog codi font en Verilog zdrojový kód v jazyce Verilog Verilog-kildekode Verilog-Quelltext Πηγαίος κώδικας Verilog - Verilog source code + Verilog source code Verilog-fontkodo código fuente en Verilog Verilog iturburu-kodea Verilog-lähdekoodi code source Verilog + codiç sorzint Verilog cód foinseach Verilog código fonte en Verilog קוד מקור של @@ -31721,7 +32856,7 @@ còde font Verilog Kod źródłowy Verilog código origem Verilog - Código-fonte Verilog + Código-fonte Verilog Исходный код Verilog Zdrojový kód Verilog Datoteka izvorne kode Verilog @@ -31729,24 +32864,25 @@ Verilog-källkod Verilog kaynak kodu вихідний код мовою Verilog - Verilog 源代码 - Verilog 源碼 + Verilog 源代码 + Verilog 源碼 SystemVerilog header Заглавен файл — SystemVerilog - capçalera de SystemVerilog + capçalera en SystemVerilog záhlaví SystemVerilog SystemVerilog-teksthoved SystemVerilog-Header Κεφαλίδα SystemVerilog - SystemVerilog header + SystemVerilog header cabeceras de SystemVerilog SystemVerilog goiburua SystemVerilog-otsake en-tête + intestazion SystemVerilog ceanntásc SystemVerilog Cabeceiras de SystemVerilog כותרת SystemVerilog @@ -31763,7 +32899,7 @@ entèsta SystemVerilog Nagłówek SystemVerilog cabeçalho SystemVerilog - Cabeçalho de SystemVerilog + Cabeçalho de SystemVerilog Заголовочный файл SystemVerilog Hlavičky SystemVerilog Datoteka glave SystemVerilog @@ -31771,24 +32907,26 @@ SystemVerilog-headerfil SystemVerilog başlığı заголовки SystemVerilog - SystemVerilog 头文件 - SystemVerilog 標頭 + SystemVerilog 头文件 + SystemVerilog 標頭 SystemVerilog source code + SystemVerilog-bronkode Изходен код — SystemVerilog codi font en SystemVerilog zdrojový kód SystemVerilog SystemVerilog-kildekode SystemVerilog-Quelltext Πηγαίος κώδικας SystemVerilog - SystemVerilog source code + SystemVerilog source code código fuente en SystemVerilog SystemVerilog iturburu-kodea SystemVerilog-lähdekoodi code source + codiç sorzint SystemVerilog cód foinseach SystemVerilog código fonte en SystemVerilog קוד מקור של SystemVerilog @@ -31805,7 +32943,7 @@ còde font SystemVerilog Kod źródłowy SystemVerilog código origem SystemVerilog - Código-fonte de SystemVerilog + Código-fonte de SystemVerilog Исходный код SystemVerilog Zdrojový kód SystemVerilog Datoteka izvorne kode SystemVerilog @@ -31813,25 +32951,27 @@ SystemVerilog-källkod SystemVerilog kaynak kodu вихідний файл мовою SystemVerilog - SystemVerilog 源代码 - SystemVerilog 源碼 + SystemVerilog 源代码 + SystemVerilog 源碼 VHDL source code + VHDL-bronkode Изходен код — VHDL codi font en VHDL zdrojový kód v jazyce VHDL VHDL-kildekode VHDL-Quelltext Πηγαίος κώδικας VHDL - VHDL source code + VHDL source code VHDL-fontkodo código fuente en VHDL VHDL iturburu-kodea VHDL-lähdekoodi code source VHDL + codiç sorzint VHDL cód foinseach VHDL código fonte en VHDL קוד מקור של VHDL @@ -31848,7 +32988,7 @@ còde font VHDL Kod źródłowy VHDL código origem VHDL - Código-fonte VHDL + Código-fonte VHDL Исходный код VHDL Zdrojový kód VHDL Datoteka izvorne kode VHDL @@ -31856,8 +32996,8 @@ VHDL-källkod VHDL kaynak kodu вихідний код мовою VHDL - VHDL 源代码 - VHDL 源碼 + VHDL 源代码 + VHDL 源碼 VHDL Very-High-Speed Integrated Circuit Hardware Description Language @@ -31866,10 +33006,11 @@ enriched text document + verrykte teksdokument مستند نصي مغنى documentu de testu arriquecíu zəngin mətn sənədi - azdobleny tekstavy dakument + azdobleny tekstavy dakument Документ с обогатен текст document de text enriquit rozšířený textový dokument @@ -31877,13 +33018,14 @@ beriget tekstdokument Angereichertes Textdokument Έγγραφο εμπλουτισμένου κειμένου - enriched text document + enriched text document riĉigita teksta dokumento documento de texto enriquecido aberastutako testu dokumentua rikastettu tekstiasiakirja ríkað tekstskjal document texte enrichi + document di test inricjît cáipéis téacs saibhrithe documento de texto enriquecido מסמך טקסט מועשר @@ -31904,7 +33046,7 @@ document tèxte enriquit Wzbogacony dokument tekstowy documento de texto rico - Documento de texto enriquecido + Documento de texto enriquecido document text îmbogățit Форматированный текстовый документ Rozšírený textový dokument @@ -31915,15 +33057,16 @@ zenginleştirilmiş metin belgesi форматований текстовий документ tài liệu văn bản có kiểu dáng - 浓缩文本文档 (ETF) - 豐富化文字文件 + 浓缩文本文档 (ETF) + 豐富化文字文件 help page + hulpbladsy صفحة المساعدة yardım səhifəsi - staronka dapamohi + staronka dapamohi Страница от помощта pàgina d'ajuda stránka nápovědy @@ -31931,13 +33074,14 @@ hjælpeside Hilfeseite Σελίδα βοήθειας - help page + help page help-paĝo página de ayuda laguntzako orria ohjesivu hjálparsíða page d'aide + pagjine di jutori leathanach cabhrach páxina de axuda דף עזרה @@ -31958,7 +33102,7 @@ pagina d'ajuda Strona pomocy página de ajuda - Página de ajuda + Página de ajuda pagină de ajutor Страница справки Stránka Pomocníka @@ -31969,27 +33113,29 @@ yardım sayfası сторінка довідки trang trợ giúp - 帮助页面 - 求助頁面 + 帮助页面 + 求助頁面 plain text document + skoonteksdokument مستند نصي مجرد documentu de testu planu - prosty tekstavy dakument + prosty tekstavy dakument Документ с неформатиран текст document de text pla prostý textový dokument rent tekstdokument Einfaches Textdokument Έγγραφο απλού κειμένου - plain text document + plain text document plata teksta dokumento documento de texto sencillo testu soileko dokumentua perustekstiasiakirja document texte brut + document di test sempliç cáipéis ghnáth-théacs documento de texto sinxelo מסמך טקסט פשוט @@ -32010,7 +33156,7 @@ document tèxte brut Zwykły dokument tekstowy documento em texto simples - Documento de Texto + Documento de Texto document text simplu Текстовый документ Obyčajný textový dokument @@ -32021,11 +33167,11 @@ düz metin belgesi звичайний текстовий документ tài liệu nhập thô - 纯文本文档 - 純文字文件 + 纯文本文档 + 純文字文件 - - + + @@ -32033,21 +33179,23 @@ RDF file + RDF-lêer ملف RDF - Fajł RDF + Fajł RDF Файл — RDF fitxer RDF soubor RDF RDF-fil RDF-Datei Αρχείο RDF - RDF file + RDF file RDF-dosiero archivo RDF RDF fitxategia RDF-tiedosto RDF fíla fichier RDF + file RDF comhad RDF ficheiro RDF קובץ RDF @@ -32067,7 +33215,7 @@ fichièr RDF Plik RDF ficheiro RDF - Arquivo RDF + Arquivo RDF Fișier RDF Файл RDF Súbor RDF @@ -32078,8 +33226,8 @@ RDF dosyası файл RDF Tập tin RDF - RDF 文件 - RDF 檔 + RDF 文件 + RDF 檔 RDF Resource Description Framework @@ -32089,17 +33237,55 @@ + + reStructuredText document + reStructuredText-dokument + Документ — reStructuredText + document reStructuredText + dokument reStructuredText + reStructuredText-dokument + reStructuredText-Dokument + reStructuredText document + documento en reStructuredText + reStructuredText document + reStructuredText-asiakirja + document reStructuredText + document reStructuredText + cáipéis reStructuredText + reStructuredText dokument + reStructuredText dokumentum + dokumen reStructuredText + Documento reStructuredText + reStructuredText құжаты + reStructuredText 문서 + Dokument reStructuredText + Documento reStructuredText + Документ reStructuredText + Dokument reStructuredText + Dokument reStructuredText + reStructuredText-dokument + reStructuredText belgesi + документ reStructuredText + reStructuredText 文档 + reStructuredText 文件 + + + OWL XML file + OWL XML-lêer + Файл — OWL XML fitxer XML OWL soubor OWL XML OWL XML-fil OWL-XML-Datei Αρχείο OWL XML - OWL XML file + OWL XML file archivo en XML OWL OWL XML fitxategia + OWL XML -tiedosto fichier XML OWL + file OWL XML comhad XML OWL OWL XML datoteka OWL XML-fájl @@ -32111,21 +33297,22 @@ fichièr OWL XML Plik XML OWL ficheiro OWL XML - Arquivo OWL XML + Arquivo OWL XML Файл XML OWL Súbor XML OWL + Datoteka OWL XML ОВЛ ИксМЛ датотека OWL XML-fil OWL XML dosyası файл XML OWL - OWL XML 文件 - OWL XML 檔案 + OWL XML 文件 + OWL XML 檔案 OWL Web Ontology Language - + @@ -32133,7 +33320,7 @@ email headers ترويسة البريد الإلكتروني epoçt başlıqları - paštovyja zahałoŭki + paštovyja zahałoŭki Заглавни части на електронни писма capçaleres de correu electrònic záhlaví e-mailu @@ -32141,13 +33328,14 @@ posthoveder E-Mail-Kopfzeilen Κεφαλίδες ηλ. μηνυμάτων - email headers + email headers retpoŝtaj ĉapoj cabeceras de correo electrónico helbide elektronikoen goiburuak sähköpostiotsakkeet t-post tekshøvd en-têtes de courriel + intestazions e-mail ceanntásca ríomhphoist cabeceiras de correo electrónico כותרת דוא״ל @@ -32168,7 +33356,7 @@ entèstas de corrièr electronic Nagłówki wiadomości e-mail cabeçalhos de email - Cabeçalhos de e-mail + Cabeçalhos de e-mail antete email Почтовые заголовки Hlavičky e-mailu @@ -32179,16 +33367,17 @@ eposta başlığı заголовки email dòng đầu thư điện tử - 电子邮件头 - 電子郵件標頭 + 电子邮件头 + 電子郵件標頭 rich text document + rykteksdokument مستند نصي غني documentu de testu ricu zəngin mətn sənədi - azdobleny tekstavy dakument + azdobleny tekstavy dakument Документ — rich text document de text enriquit textový dokument RTF @@ -32196,12 +33385,13 @@ richtekstdokument RTF-Textdokument Έγγραφο εμπλουτισμένου κειμένου (RTF) - rich text document + rich text document riĉteksta dokumento documento de texto enriquecido aberastutako testu formatua RTF-asiakirja document « rich text » + document rich text cáipéis mhéith-théacs documento do texto enriquecido מסמך טקסט עשיר @@ -32222,7 +33412,7 @@ document « rich text » Dokument Rich Text documento em texto rico - Documento rich text + Documento rich text document text îmbogățit Документ с форматированным текстом Textový dokument RTF @@ -32233,27 +33423,29 @@ zengin metin belgesi форматований текстовий документ tài liệu văn bản có kiểu dáng (RTF) - 富文本文档 (RTF) - 豐富文字文件 + 富文本文档 (RTF) + 豐富文字文件 (RTF) RSS summary + RSS-opsomming ملخص RSS - Karotki ahlad RSS + Karotki ahlad RSS Обобщение за сайтове — RSS resum RSS souhrn RSS RSS-sammendrag RSS-Zusammenfassung Σύνοψη RSS - RSS summary - resumen de RSS + RSS summary + suministro RSS RSS laburpena RSS-tiivistelmä RSS samandráttur résumé RSS + somari RSS achoimre RSS Resumo RSS תקציר RSS @@ -32273,7 +33465,7 @@ resumit RSS Podsumowanie RSS resumo RSS - Resumo RSS + Resumo RSS Rezumat RSS Сводка RSS Súhrn RSS @@ -32284,8 +33476,8 @@ RSS özeti зведення сайту RSS Bản tóm tắt RSS - RSS 摘要 - RSS 摘要 + RSS 摘要 + RSS 摘要 RSS RDF Site Summary @@ -32293,25 +33485,26 @@ - - + + Atom syndication feed مروج تغذية Atom - Syndykacyjny kanał navinaŭ Atom + Syndykacyjny kanał navinaŭ Atom Емисия — Atom canal de sindicació Atom kanál Atom - Atom syndication-feed + Atom-syndikeringsfeed Atom-Nachrichtenquelle Τροφοδοσία διανομής Atom - Atom syndication feed - canal de noticias Atom + Atom syndication feed + suministro de sindicación Atom Atom harpidetze-iturria Atom-yhdistevirta fil de syndication Atom + canâl di notiziis Atom fotha sindeacáitithe Atom fonte de sindicación Atom הזנה דרך הרשת של Atom @@ -32331,7 +33524,7 @@ fial de sindicacion Atom Kanał Atom feed Atom - Fonte de notícias Atom + Fonte de notícias Atom Flux agregare Atom Лента новостей Atom Kanál Atom @@ -32342,31 +33535,32 @@ Atom besleme kaynağı трансляція подач Atom Nguồn tin tức Atom - Atom 聚合种子 - Atom 聯合供稿饋流 + Atom 聚合种子 + Atom 聯合供稿饋流 - + OPML syndication feed مروج تغذية OPML - Syndykacyjny kanał OPML + Syndykacyjny kanał OPML Емисия — OPML canal de sindicació OPML kanál OPML OPML-syndikeringsfeed OPML-Nachrichtenquelle Τροφοδοσία OPML - OPML syndication feed - canal de noticias OPML + OPML syndication feed + suministro de sindicación OPML OPML harpidetze-iturria OPML-yhdistevirta fil de syndication OPML + canâl di notiziis OPML fotha sindeacáitithe OPML fonte de sindicación OPML הזנה דרך הרשת OPML @@ -32386,7 +33580,7 @@ fial de sindicacion OPML Kanał OPML feed OPML - Fonte de notícias OPML + Fonte de notícias OPML Flux OPML syndication Лента новостей OPML Kanál OPML @@ -32397,21 +33591,22 @@ OPML besleme kaynağı трансляція подач OPML Nguồn tin tức OPML - OPML 聚合种子 - OPML 聯合供稿饋流 + OPML 聚合种子 + OPML 聯合供稿饋流 - + SGML document + SGML-dokument مستند SGML Documentu SGML - Dakument SGML + Dakument SGML Документ — SGML document SGML dokument SGML @@ -32419,13 +33614,14 @@ SGML-dokument SGML-Dokument Έγγραφο SGML - SGML document + SGML document SGML-dokumento documento SGML SGML dokumentua SGML-asiakirja SGML skjal document SGML + document SGML cáipéis SGML documento SGML מסמך SGML @@ -32446,7 +33642,7 @@ document SGML Dokument SGML documento SGML - Documento SGML + Documento SGML Document SGML Документ SGML Dokument SGML @@ -32457,8 +33653,8 @@ SGML belgesi документ SGML Tài liệu SGML - SGML 文档 - SGML 文件 + SGML 文档 + SGML 文件 SGML Standard Generalized Markup Language @@ -32469,19 +33665,20 @@ spreadsheet interchange document مستند تبادل الجدول documentu d'intercambéu de fueyes de cálculu - dakument dla abmienu raźlikovymi arkušami - Документ за обмяна между програми за електронни таблици + dakument dla abmienu raźlikovymi arkušami + Документ — обмяна между електронни таблици document d'intercanvi de full de càlcul sešitový výměnný dokument regnearksudvekslingsdokument Tabellenkalkulations-Austauschdokument Έγγραφο ανταλλαγής λογιστικού φύλλου - spreadsheet interchange document - documento de intercambio de hojas de cálculo + spreadsheet interchange document + documento de intercambio de hoja de cálculo kalkulu-orriak trukatzeko dokumentua taulukkovälitysasiakirja rokniarks umbýtisskjal document d'échange de feuilles de calcul + document di interscambi par sfuei di calcul cáipéis idirmhalartaithe scarbhileog documento de intercambio de follas de cálculo מסמך גליון נתונים מתחלף @@ -32501,7 +33698,7 @@ document d'escambi de fuèlhs de calcul Dokument wymiany arkuszy kalkulacyjnych documento de troca interna de folhas de cálculo - Documento de intercâmbio de planilhas + Documento de intercâmbio de planilhas document schimb filă de calcul Документ Spreadsheet Interchange Zošitový prenosový dokument @@ -32509,35 +33706,37 @@ Dokument shkëmbimi për fletë llogaritje документ размене табеле spreadsheet interchange-dokument - hesap tablosu değişim belgesi + hesap çizelgesi değişim belgesi документ обміну ел. таблицями tài liệu hoán đổi bảng tính - 电子表格交换文档 - 試算表交換文件 + 电子表格交换文档 + 試算表交換文件 - + TSV document + TSV-dokument مستند TSV Documentu TSV - Dakument TSV + Dakument TSV Документ — TSV document TSV dokument TSV TSV-dokument TSV-Dokument Έγγραφο TSV - TSV document + TSV document documento TSV TSV dokumentua TSV-asiakirja TSV skjal document TSV + document TSV cáipéis TSV documento TSV מסמך TSV @@ -32557,7 +33756,7 @@ document TSV Dokument TSV documento TSV - Documento TSV + Documento TSV Document TSV Документ TSV Dokument TSV @@ -32568,8 +33767,8 @@ TSV belgesi документ TSV Tài liệu TSV - TSV 文档 - TSV 文件 + TSV 文档 + TSV 文件 TSV Tab Separated Values @@ -32577,6 +33776,7 @@ Graphviz DOT graph + Graphviz DOT-grafiek مبيان Graphviz DOT Граф — Graphviz DOT gràfic Graphviz DOT @@ -32584,12 +33784,13 @@ Graphviz DOT-graf Graphviz-DOT-Graph Γράφημα Graphviz DOT - Graphviz DOT graph + Graphviz DOT graph gráfico de Graphviz DOT Graphviz DOT grafikoa Graphviz DOT -graafi Graphviz DOT ritmynd graphe Graphviz DOT + grafic Graphviz DOT graf DOT Graphviz gráfica DOT de Graphviz תרשים של Graphviz DOT @@ -32607,7 +33808,7 @@ graf Graphviz DOT Wykres DOT Graphviz gráfico Graphviz DOT - Gráfico do Graphviz DOT + Gráfico do Graphviz DOT Grafic Graphviz DOT Диаграмма Graphviz DOT Graf Graphviz DOT @@ -32617,36 +33818,38 @@ Graphviz DOT grafiği граф DOT Graphviz Biểu đồ DOT Graphviz - Graphviz DOT 图形 - Graphviz DOT 圖 + Graphviz DOT 图形 + Graphviz DOT 圖表 - - - - + + + + JAD document + JAD-dokument مستند JAD Documentu JAD - Dakument JAD + Dakument JAD Документ — JAD document JAD dokument JAD JAD-dokument JAD-Dokument Έγγραφο JAD - JAD document + JAD document JAD-dokumento documento JAD JAD dokumentua JAD-asiakirja JAD skjal document JAD + document JAD cáipéis JAD documento JAD מסמך JAD @@ -32666,7 +33869,7 @@ document JAD Dokument JAD documento JAD - Documento JAD + Documento JAD Document JAD Документ JAD Dokument JAD @@ -32677,21 +33880,22 @@ JAD belgesi документ JAD Tài liệu JAD - JAD 文档 - JAD 文件 + JAD 文档 + JAD 文件 JAD Java Application Descriptor - + WML document + WML-dokument مستند WML Documentu WML WML sənədi - Dakument WML + Dakument WML Документ — WML document WML dokument WML @@ -32699,13 +33903,14 @@ WML-dokument WML-Dokument Έγγραφο WML - WML document + WML document WML-dokumento documento WML WML dokumentua WML-asiakirja WML skjal document WML + document WML cáipéis WML documento WML מסמך WML @@ -32726,7 +33931,7 @@ document WML Dokument WML documento WML - Documento WML + Documento WML Document WML Документ WML Dokument WML @@ -32737,8 +33942,8 @@ WML belgesi документ WML Tài liệu WML - WML 文档 - WML 文件 + WML 文档 + WML 文件 WML Wireless Markup Language @@ -32746,20 +33951,22 @@ WMLScript program + WMLScript-program برنامج WMLScript - Prahrama WMLScript + Prahrama WMLScript Програма — WMLScript programa WMLScript program WMLScript WMLScript-program WMLScript-Programm Πρόγραμμα WMLScript - WMLScript program + WMLScript program programa en WMLScript WMLScript programa WMLScript-ohjelma WMLScript forrit programme WMLScript + program WMLScript ríomhchlár WMLScript programa en WMLScript תכנית של WMLScript @@ -32779,7 +33986,7 @@ programa WMLEscript Pogram WMLScript programa WMLScript - Programa WMLScript + Programa WMLScript Program WMLScript Программа WMLScript Program WMLScript @@ -32790,27 +33997,60 @@ WMLScript programı програма мовою WMLScript Chương trình WMLScript - WMLScript 程序 - WMLScript 程式 + WMLScript 程序 + WMLScript 程式 + + WarpScript source code + Изходен код — WarpScript + codi font en WarpScript + zdrojový kód v jazyce WarpScript + WarpScript-kildekode + WarpScript-Quelltext + WarpScript source code + código fuente en WarpScript + WarpScript iturburu-kodea + WarpScript-lähdekoodi + code source WarpScript + codiç sorzint WarpScript + WarpScript izvorni kôd + WarpScript forráskód + Kode sumber WarpScript + Codice sorgente WarpScript + WarpScript бастапқы коды + WarpScript 소스 코드 + Kod źródłowy WarpScript + Código-fonte WarpScript + Исходный код WarpScript + Izvorna koda WarpScript + WarpScript-källkod + WarpScript kaynak kodu + вихідний код мовою WarpScript + WarpScript 源代码 + WarpScript 原始碼 + + + ACE archive + ACE-argief أرشيف ACE - Archiŭ ACE + Archiŭ ACE Архив — ACE arxiu ACE archiv ACE ACE-arkiv ACE-Archiv Συμπιεσμένο αρχείο ACE - ACE archive + ACE archive ACE-arkivo archivador ACE ACE artxiboa ACE-arkisto ACE skjalasavn archive ACE + archivi ACE cartlann ACE arquivo ACE ארכיון ACE @@ -32831,7 +34071,7 @@ archiu ACE Archiwum ACE arquivo ACE - Pacote ACE + Pacote ACE Arhivă ACE Архив ACE Archív ACE @@ -32842,31 +34082,33 @@ ACE arşivi архів ACE Kho nén ACE - ACE 归档文件 - ACE 封存檔 + ACE 归档文件 + ACE 封存檔 - + Ada source code + Ada-bronkode شفرة مصدر Ada - Kryničny kod Ada + Kryničny kod Ada Изходен код — Ada codi font en Ada zdrojový kód v jazyce Ada Ada-kildekode Ada-Quelltext Πηγαίος κώδικας Ada - Ada source code + Ada source code Ada-fontkodo código fuente en Ada Ada iturburu-kodea Ada-lähdekoodi Ada keldukota code source Ada + codiç sorzint Ada cód foinseach Ada código fonte en Ada קוד מקור Ada @@ -32888,7 +34130,7 @@ còde font Ada Kod źródłowy Ada código origem Ada - Código-fonte Ada + Código-fonte Ada Cod sursă Ada Исходный код Ada Zdrojový kód jazyka Ada @@ -32899,29 +34141,31 @@ Ada kaynak kodu вихідний код мовою Ada Mã nguồn Ada - Ada 源代码 - Ada 源碼 + Ada 源代码 + Ada 源碼 author list + outeurlys لائحة المؤلف - śpis aŭtaraŭ + śpis aŭtaraŭ Списък на авторите llista d'autors seznam autorů forfatterliste Autorenliste Κατάλογος συγγραφέων - author list + author list listo de aŭtoroj lista de autores egile-zerrenda tekijäluettelo høvundalisti liste d'auteurs + liste di autôrs liosta údar lista de autores רשימת יוצרים @@ -32942,7 +34186,7 @@ lista d'autors Lista autorów lista de autores - Lista de autores + Lista de autores listă autori Список авторов Zoznam autorov @@ -32953,29 +34197,31 @@ yazar listesi перелік авторів danh sách tác giả - 作者列表 - 作者清單 + 作者列表 + 作者清單 BibTeX document + BibTeX-dokument مستند BibTeX Documentu de BibTeX - Dakument BibTeX + Dakument BibTeX Документ — BibTeX document BibTeX dokument BibTeX BibTeX-dokument BibTeX-Dokument Έγγραφο BibTeX - BibTeX document + BibTeX document BibTeX-dokumento documento BibTeX BibTeX dokumentua BibTeX-asiakirja BibTeX skjal document BibTeX + document BibTeX cáipéis BibTeX documento BibTex מסמך BibTeX @@ -32996,7 +34242,7 @@ document BibTeX Dokument BibTeX documento BibTeX - Documento BibTeX + Documento BibTeX Document BibTeX Документ BibTeX Dokument BibTeX @@ -33007,30 +34253,31 @@ BibTeX belgesi документ BibTeX Tài liệu BibTeX - BibTeX 文档 - BibTeX 文件 + BibTeX 文档 + BibTeX 文件 - + C++ header ترويسة سي++ - Zahałoŭny fajł C++ + Zahałoŭny fajł C++ Заглавен файл — C++ capçalera en C++ hlavičkový soubor C++ C++-posthoved C++-Header Κεφαλίδα C++ - C++ header + C++ header cabecera de código fuente en C++ C++ goiburua C++-otsake C++ tekshøvd en-tête C++ + intestazion C++ ceanntásc C++ cabeceira de código fonte en C++ כותר C++‎ @@ -33051,7 +34298,7 @@ entèsta C++ Plik nagłówkowy C++ cabeçalho C++ - Cabeçalho C++ + Cabeçalho C++ Antet C++ Заголовочный файл C++ Hlavičky jazyka C++ @@ -33062,8 +34309,8 @@ C++ başlığı файл заголовків мовою C++ Phần đầu mã nguồn C++ - C++ 头文件 - C++ 標頭檔 + C++ 头文件 + C++ 標頭檔 @@ -33073,21 +34320,23 @@ C++ source code + C++-bronkode شفرة مصدر سي++ - Kryničny kod C++ + Kryničny kod C++ Изходен код — C++ codi font en C++ zdrojový kód v jazyce C++ C++-kildekode C++-Quelltext Πηγαίος κώδικας C++ - C++ source code + C++ source code C++-fontkodo código fuente en C++ C++ iturburu-kodea C++-lähdekoodi C++ keldukota code source C++ + codiç sorzint C++ cód foinseach C++ código fonte de C++ קוד מקור של C++‎ @@ -33109,7 +34358,7 @@ còde font C++ Kod źródłowy C++ código origem C++ - Código-fonte C++ + Código-fonte C++ Cod sursă C++ Исходный код C++ Zdrojový kód jazyka C++ @@ -33120,8 +34369,8 @@ C++ kaynak kodu вихідний код мовою C++ Mã nguồn C++ - C++ 源代码 - C++ 源碼 + C++ 源代码 + C++ 源碼 @@ -33131,21 +34380,23 @@ ChangeLog document + ChangeLog-dokument مستند ChangeLog Documentu de rexistru de cambeos - Dakument zafiksavanych źmienaŭ ChangeLog + Dakument zafiksavanych źmienaŭ ChangeLog Дневник за промени — ChangeLog document de registre de canvis dokument ChangeLog ChangeLot-dokument Änderungsprotokoll-Dokument Έγγραφο ChangeLog - ChangeLog document + ChangeLog document documento de registro de cambios ChangeLog dokumentua Muutoslokiasiakirja ChangeLog skjal document ChangeLog + document ChangeLog cáipéis ChangeLog documento Changelog מסמך של ChangeLog @@ -33166,7 +34417,7 @@ document ChangeLog Dokument zmian (ChangeLog) documento ChangeLog - Documento ChangeLog + Documento ChangeLog Document ChangeLog Протокол изменений Dokument ChangeLog @@ -33174,30 +34425,31 @@ Dokument ChangeLog документ дневника измена Ändringsloggsdokument - Değişim Günlüğü belgesi + ChangeLog belgesi документ ChangeLog Tài liệu ChangeLog (ghi lưu thay đổi) - 变更日志文档 - ChangeLog 文件 + 变更日志文档 + ChangeLog 文件 C header ترويسة C - Zahałoŭny fajł C + Zahałoŭny fajł C Заглавен файл — C capçalera en C hlavičkový soubor C C-posthoved C-Header Κεφαλίδα C - C header + C header cabecera de código fuente en C C goiburua C-otsake C tekshøvd en-tête C + intestazion C ceanntásc C cabeceira de códifo fonte de C כותר C @@ -33218,7 +34470,7 @@ entèsta C Plik nagłówkowy C cabeçalho C - Cabeçalho C + Cabeçalho C Antet C Заголовочный файл C Hlavičky jazyka C @@ -33229,28 +34481,30 @@ C başlığı файл заголовків мовою C Phần đầu mã nguồn C - C 程序头文件 - C 標頭檔 + C 程序头文件 + C 標頭檔 CMake source code + CMake-bronkode شفرة مصدر CMake - Kryničny kod CMake + Kryničny kod CMake Изходен код — CMake codi font en CMake zdrojový kód CMake CMake-kildekode CMake-Quelltext Πηγαίος κώδικας CMake - CMake source code + CMake source code CMake-fontkodo código fuente en CMake CMake iturburu-kodea CMake-lähdekoodi CMake keldukota code source CMake + codiç sorzint CMake cód foinseach CMake código fonte de CMake קוד מקור של CMake @@ -33271,7 +34525,7 @@ còde font CMake Kod źródłowy CMake código origem CMake - Código-fonte CMake + Código-fonte CMake Cod sursă CMake Исходный код CMake Zdrojový kód CMake @@ -33282,30 +34536,55 @@ CMake kaynak kodu вихідний код CMake Mã nguồn CMake - CMake 源代码 - CMake 源碼 + CMake 源代码 + CMake 源碼 + + Common Lisp source code + codi font en Common Lisp + Common Lisp-kildekode + Common-Lisp-Quelltext + Common Lisp source code + código fuente en Common Lisp + Yleinen Lisp-lähdekoodi + code source Common Lisp + Common Lisp izvorni kôd + Codice sorgente Common Lisp + Kod źródłowy Common Lisp + Código-fonte Common Lisp + Common Lisp-källkod + вихідний код мовою Common Lisp + Common Lisp 源代码 + Common Lisp 源碼 + + + + + + CSV document + CSV-dokument مستند CSV Documentu CVS - Dakument CSV + Dakument CSV Документ — CSV document CSV dokument CSV CSV-dokument CSV-Dokument Έγγραφο CSV - CSV document + CSV document CSV-dokumento documento CSV CSV dokumentua CSV-asiakirja CSV skjal document CSV + document CSV cáipéis CSV documento CSV מסמך CSV @@ -33326,7 +34605,7 @@ document CSV Dokument CSV documento CSV - Documento CSV + Documento CSV Document CSV Документ CSV Dokument CSV @@ -33337,8 +34616,8 @@ CSV belgesi документ CSV Tài liệu CSV - CSV 文档 - CSV 文件 + CSV 文档 + CSV 文件 CSV Comma Separated Values @@ -33348,15 +34627,19 @@ CSV Schema document + CSV Schema-dokument Documentu d'esquema CSV + Документ — схема на CSV document Schema de CSV dokument schématu CSV CSV Schema-dokument CSV-Schemadokument - CSV Schema document + CSV Schema document documento esquemático CSV CSV Schema dokumentua + CSV Schema asiakirja document schéma CSV + document scheme CSV cáipéis scéimre CSV מסמך פריסת CSV CSV Shema dokument @@ -33368,15 +34651,16 @@ CSV 스키마 문서 Dokument schematu CSV documento CSV Schema - Documento CSV Schema + Documento CSV Schema Документ CSV Schema Dokument schémy CSV + Dokument CSV Schema документ ЦСВ шеме CSV Schema-dokument CSV Şeması belgesi документ Schema у форматі CSV - CSV 架构文档 - CSV Schema 文件 + CSV 架构文档 + CSV Schema 文件 CSV Comma Separated Values @@ -33384,21 +34668,23 @@ license terms + lisensievoorwaardes شروط الترخيص términos de llicencia - licenzijnyja ŭmovy + licenzijnyja ŭmovy Лицензни условия condicions de llicència licenční podmínky licensbetingelser Lizenzbedingungen Όροι άδειας - licence terms + licence terms términos de licencia lizentzia baldintzak lisenssiehdot loyvistreytir termes de licence + tiermins di licence téarmaí ceadúnais termos de licenza תנאי רישיון @@ -33418,7 +34704,7 @@ tèrmes de licéncia Warunki licencji termos de licença - Termos de licença + Termos de licença termeni de licență Лицензионное соглашение Licenčné podmienky @@ -33429,27 +34715,30 @@ lisans koşulları ліцензійні умови điều kiện giấy phép - 软件许可条款 - 授權條款 + 软件许可条款 + 授權條款 author credits + outeurerkenning شكر وتقدير المؤلف creitos del autor - zasłuhi aŭtara + zasłuhi aŭtara Благодарности към авторите atribucions d'autor autorské zásluhy bidragydere Autorendanksagung Μνεία συγγραφέων - author credits + author credits reconocimiento de autoría + egile-kredituak tekijöiden kiitokset høvundaheiður remerciements + ricognossiments autôrs admhálacha údar créditos de autor קרדיטים של היוצר @@ -33469,7 +34758,7 @@ mercejaments Podziękowania autorów programu créditos de autor - Créditos do autor + Créditos do autor mulțumiri autori Авторы программы Autorské zásluhy @@ -33480,28 +34769,30 @@ yazar bilgileri подяки авторам програми công trạng tác giả - 软件作者致谢 - 作者致謝名單 + 软件作者致谢 + 作者致謝名單 C source code + C-bronkode شفرة مصدر سي - Kryničny kod C + Kryničny kod C Изходен код — C codi font en C zdrojový kód v jazyce C C-kildekode C-Quelltext Πηγαίος κώδικας C - C source code + C source code C-fontkodo código fuente en C C iturburu-kodea C-lähdekoodi C keldukota code source C + codiç sorzint C cód foinseach C código fonte en C קוד מקור של C @@ -33523,7 +34814,7 @@ còde font C Kod źródłowy C código origem C - Código-fonte C + Código-fonte C Cod sursă C Исходный код C Zdrojový kód jazyka C @@ -33534,34 +34825,36 @@ C kaynak kodu вихідний код мовою C Mã nguồn C - C 源代码 - C 源碼 + C 源代码 + C 源碼 - - - + + + C# source code + C#-bronkode شفرة مصدر سي# - Kryničny kod C# + Kryničny kod C# Изходен код — C# codi font en C# zdrojový kód v jazyce C# C#-kildekode C#-Quelltext Πηγαίος κώδικας C# - C# source code + C# source code C#-fontkodo código fuente en C# C# iturburu-kodea C#-lähdekoodi C# keldukota code source C# + codiç sorzint C# cód foinseach C# código fonte en C# קוד מקור של C#‎ @@ -33583,7 +34876,7 @@ còde font C# Kod źródłowy C# código origem C# - Código-fonte C# + Código-fonte C# Cod sursă C# Исходный код C# Zdrojový kód jazyka C# @@ -33594,28 +34887,30 @@ C# kaynak kodu вихідний код мовою C# Mã nguồn C# - C# 源代码 - C# 源碼 + C# 源代码 + C# 源碼 Vala source code + Vala-bronkode شفرة مصدر Vala - Kryničny kod Vala + Kryničny kod Vala Изходен код — Vala codi font en Vala zdrojový kód v jazyce Vala - Valakildekode + Vala-kildekode Vala-Quelltext Πηγαίος κώδικας Vala - Vala source code + Vala source code Vala-fontkodo código fuente en Vala Vala iturburu-kodea Vala-lähdekoodi Vala keldukota code source Vala + codiç sorzint Vala cód foinseach Vala código fonte en Vala קוד מקור של Vala @@ -33635,7 +34930,7 @@ còde font Vala Kod źródłowy Vala código origem Vala - Código-fonte Vala + Código-fonte Vala Cod sursă Vala Исходный код Vala Zdrojový kód Vala @@ -33646,26 +34941,28 @@ Vala kaynak kodu вихідний код мовою Vala Mã nguồn Vala - Vala 源代码 - Vala 源碼 + Vala 源代码 + Vala 源碼 OOC source code + OOC-bronkode Изходен код — OOC codi font en OOC zdrojový kód OOC OOC-kildekode OOC-Quelltext Πηγαίος κώδικας OOC - OOC source code + OOC source code OOC-fontkodo código fuente en OOC OOC iturburu-kodea OOC-lähdekoodi source code OOC + codiç sorzint OOC cód foinseach OOC código fonte de OOC קוד מקור של OOC @@ -33683,7 +34980,7 @@ font còde OOC Kod źródłowy OOC código origem OOC - Código-fonte OOC + Código-fonte OOC Исходный код OOC Zdrojový kód OOC Izvorna koda OOC @@ -33691,8 +34988,8 @@ OOC-källkod OOC kaynak kodu вихідний код мовою OOC - OOC 源代码 - OOC 源碼 + OOC 源代码 + OOC 源碼 OOC Out Of Class @@ -33700,9 +34997,10 @@ DCL script + DCL-skrip سكربت DCL DCL skripti - Skrypt DCL + Skrypt DCL Скрипт — DCL script DCL skript DCL @@ -33710,13 +35008,14 @@ DCL-program DCL-Skript Δέσμη ενεργειών DCL - DCL script + DCL script DCL-skripto secuencia de órdenes en DCL DCL script-a DCL-komentotiedosto DCL boðrøð script DCL + script DCL script DCL script de DCL תסריט DCL @@ -33738,7 +35037,7 @@ escript DCL Skrypt DCL script DCL - Script DCL + Script DCL Script DCL Сценарий DCL Skript DCL @@ -33749,8 +35048,8 @@ DCL betiği скрипт DCL Văn lệnh DCL - DCL 脚本 - DCL 指令稿 + DCL 脚本 + DCL 指令稿 DCL Data Conversion Laboratory @@ -33758,10 +35057,11 @@ DSSSL document + DSSSL-dokument مستند DSSSL Documentu DSSSL DSSSL sənədi - Dakument DSSSL + Dakument DSSSL Документ — DSSSL document DSSSL dokument DSSSL @@ -33769,13 +35069,14 @@ DSSSL-dokument DSSSL-Dokument Έγγραφο DSSSL - DSSSL document + DSSSL document DSSSL-dokumento documento DSSSL DSSSL dokumentua DSSSL-asiakirja DSSSL skjal document DSSSL + document DSSSL cáipéis DSSSL documento DSSSL מסמך DSSSL @@ -33797,7 +35098,7 @@ document DSSSL Dokument DSSSL documento DSSSL - Documento DSSSL + Documento DSSSL Document DSSSL Документ DSSSL Dokument DSSSL @@ -33808,8 +35109,8 @@ DSSSL belgesi документ DSSSL Tài liệu DSSSL - DSSSL 文档 - DSSSL 文件 + DSSSL 文档 + DSSSL 文件 DSSSL Document Style Semantics and Specification Language @@ -33817,21 +35118,23 @@ D source code + D-bronkode شفرة مصدر D - Kryničny kod D + Kryničny kod D Изходен код — D codi font en D zdrojový kód v jazyce D D-kildekode D-Quelltext Πηγαίος κώδικας D - D source code + D source code D-fontkodo código fuente en D D iturburu-kodea D-lähdekoodi D keldukota code source D + codiç sorzint D cód foinseach D código fonte de D קוד מקור לשפת D @@ -33852,7 +35155,7 @@ còde font D Kod źródłowy D código origem D - Código-fonte D + Código-fonte D Cod sursă D Исходный код D Zdrojový kód jazyka D @@ -33863,29 +35166,31 @@ D kaynak kodu вихідний код мовою D Mã nguồn D - D 源代码 - D 源碼 + D 源代码 + D 源碼 DTD file + DTD-lêer ملف DTD - Fajł DTD + Fajł DTD Документ — DTD fitxer DTD soubor DTD DTD-fil DTD-Datei Αρχείο DTD - DTD file + DTD file DTD-dosiero archivo DTD DTD fitxategia DTD-tiedosto DTD fíla fichier DTD + file DTD comhad DTD ficheiro DTD מסמך DTD @@ -33906,7 +35211,7 @@ fichièr DTD Plik DTD ficheiro DTD - Arquivo DTD + Arquivo DTD Fișier DTD Файл DTD Súbor DTD @@ -33917,8 +35222,8 @@ DTD dosyası файл DTD Tập tin DTD - DTD 文件 - DTD 檔 + DTD 文件 + DTD 檔 DTD Document Type Definition @@ -33928,21 +35233,23 @@ Eiffel source code + Eiffel-bronkode شفرة مصدر Eiffel - Kryničny kod Eiffel + Kryničny kod Eiffel Изходен код — Eiffel codi font en Eiffel zdrojový kód v jazyce Eiffel - Eiffelkildekode + Eiffel-kildekode Eiffel-Quelltext Πηγαίος κώδικας Eiffel - Eiffel source code + Eiffel source code Eiffel-fontkodo código fuente en Eiffel Eiffel iturburu-kodea Eiffel-lähdekoodi Eiffel keldukota code source Eiffel + codiç sorzint Eiffel cód foinseach Eiffel código fone de Eiffel קוד מקור של Eiffel @@ -33963,7 +35270,7 @@ còde font Eiffel Kod źródłowy Eiffel código origem Eiffel - Código-fonte Eiffel + Código-fonte Eiffel Cod sursă Eiffel Исходный код Eiffel Zdrojový kód Eiffel @@ -33974,17 +35281,18 @@ Eiffel kaynak kodu вихідний код мовою Eiffel Mã nguồn Eiffel - Eiffel 源代码 - Eiffel 源碼 + Eiffel 源代码 + Eiffel 源碼 Emacs Lisp source code + Emacs Lisp-bronkode شفرة مصدر Emacs Lisp Emacs Lisp mənbə kodu - Kryničny kod Emacs Lisp + Kryničny kod Emacs Lisp Изходен код — Emacs Lisp codi font en Emacs Lisp zdrojový kód Emacs Lisp @@ -33992,13 +35300,14 @@ Emacs Lisp-kildekode Emacs-Lisp-Quelltext Πηγαίος κώδικας Emacs Lisp - Emacs Lisp source code + Emacs Lisp source code fontkodo en Emacs Lisp código fuente en Lisp de Emacs Emacs Lisp iturburu-kodea Emacs Lisp -lähdekoodi Emacs Lisp keldukota code source Emacs Lisp + codiç sorzint Emacs Lisp cód foinseach Emacs Lisp código fonte de Emacs Lisp קוד מקור של Emcas Lisp @@ -34018,9 +35327,9 @@ Emacs Lisp-broncode Emacs Lisp kjeldekode còde font Emacs Lisp - Plik źródłowy Emacs Lisp + Kod źródłowy Emacs Lisp código origem Emacs Lisp - Código-fonte Lisp do Emacs + Código-fonte Lisp do Emacs Cod sursă Emacs Lisp Исходный код Emacs Lisp Zdrojový kód Emacs Lisp @@ -34031,32 +35340,34 @@ Emacs Lisp kaynak kodu вихідний код мовою Emacs Lisp Mã nguồn Lisp Emacs - Emacs Lisp 源代码 - Emacs Lisp 源碼 + Emacs Lisp 源代码 + Emacs Lisp 源碼 - - + + Erlang source code + Erlang-bronkode شفرة مصدر Erlang - Kryničny kod Erlang + Kryničny kod Erlang Изходен код — Erlang codi font en Erlang zdrojový kód v jazyce Erlang - Erlangkildekode + Erlang-kildekode Erlang-Quelltext Πηγαίος κώδικας Erlang - Erlang source code + Erlang source code Erlang-fontkodo código fuente en Erlang Erlang iturburu-kodea Erlang-lähdekoodi Erlang keldukota code source Erlang + codiç sorzint Erlang cód foinseach Erlang código fonte de Erlang קוד מקור של Erlang @@ -34077,7 +35388,7 @@ còde font Erlang Kod źródłowy Erlang código origem Erlang - Código-fonte Erlang + Código-fonte Erlang Cod sursă Erlang Исходный код Erlang Zdrojový kód Erlang @@ -34088,30 +35399,32 @@ Erlang kaynak kodu вихідний код мовою Erlang Mã nguồn Erlang - Erlang 源代码 - Erlang 源碼 + Erlang 源代码 + Erlang 源碼 Fortran source code + Fortran-bronkode شفرة مصدر Fortran Fortran mənbə kodu - Kryničny kod Fortran + Kryničny kod Fortran Изходен код — Fortran codi font en Fortran zdrojový kód v jazyce Fortran Ffynhonnell rhaglen FORTRAN - Fortrankildekode + Fortran-kildekode Fortran-Quelltext Πηγαίος κώδικας Fortran - Fortran source code + Fortran source code Fotran-fontkodo código fuente en Fortran Fortran-en iturburu-kodea Fortran-lähdekoodi Fortran keldukota code source Fortran + codiç sorzint Fortran cód foinseach Fortran código fonte de Fortran קוד מקור של Fortran @@ -34133,7 +35446,7 @@ còde font Fortran Kod źródłowy Fortran código origem Fortran - Código-fonte Fortran + Código-fonte Fortran Cod sursă Fortran Исходный код Fortran Zdrojový kód Fortran @@ -34144,8 +35457,8 @@ Fortran kaynak kodu вихідний код мовою Fortran Mã nguồn Fortran - Fortran 源代码 - Fortran 源碼 + Fortran 源代码 + Fortran 源碼 @@ -34154,16 +35467,19 @@ Genie source code - codi font de Genius + Genie-bronkode + Изходен код — Genie + codi font en Genie zdrojový kód v jazyce Genie Genie-kildekode Genie-Quelltext Πηγαίος κώδικας Genie - Genie source code + Genie source code código fuente en Genie Genie iturburu-kodea Genie-lähdekoodi code source Genie + codiç sorzint Genie cód foinseach Genie קוד מקור של Genie Genie izvorni kôd @@ -34176,7 +35492,7 @@ còde font Genie Kod źródłowy Genie código origem Genie - Código-fonte Genie + Código-fonte Genie Исходный код Genie Zdrojový kód Genie Izvorna koda Genie @@ -34184,30 +35500,32 @@ Genie-källkod Genie kaynak kodu вихідний код мовою Genie - Genie 源代码 - Genie 源碼 + Genie 源代码 + Genie 源碼 translation file + vertaallêer ملف الترجمة ficheru de traducción - fajł pierakładu + fajł pierakładu Превод fitxer de traducció soubor překladu oversættelsesfil Übersetzungsdatei Αρχείο μετάφρασης - translation file + translation file tradukad-dosiero archivo de traducción itzulpen-fitxategia käännöstiedosto týðingarfíla fichier de traduction + file di traduzion comhad aistriúcháin ficheiro de tradución קובץ תרגום @@ -34228,7 +35546,7 @@ fichièr de traduccion Plik tłumaczenia ficheiro de tradução - Arquivo de tradução + Arquivo de tradução fișier traducere Файл переводов Súbor prekladu @@ -34239,8 +35557,8 @@ çeviri dosyası файл перекладу tập tin dịch - 翻译文件 - 翻譯檔 + 翻译文件 + 翻譯檔 @@ -34248,22 +35566,24 @@ translation template + vertaalsjabloon قالب الترجمة plantía de traducción - šablon dla pierakładu + šablon dla pierakładu Шаблон за преводи plantilla de traducció šablona překladu oversættelsesskabelon Übersetzungsvorlage Πρότυπο μετάφρασης - translation template + translation template tradukad-ŝablono plantilla de traducción itzulpenen txantiloia käännösmalli týðingarformur modèle de traduction + model di traduzion teimpléad aistriúcháin plantilla de tradución תבנית תרגום @@ -34284,7 +35604,7 @@ modèl de traduccion Szablon tłumaczenia modelo de tradução - Modelo de tradução + Modelo de tradução șablon de traducere Шаблон переводов Šablóna prekladu @@ -34295,63 +35615,65 @@ çeviri şablonu шаблон перекладу mẫu dịch - 翻译模板 - 翻譯模版 + 翻译模板 + 翻譯模版 - + - feature specification in Gherkin format - especificació de funcionalitat en format Gherkin - specifikace vlastností ve formátu Gherkin - funktionspecifikation i Gherkin-format - Funktionsspezifikation im Gherkin-Format - feature specification in Gherkin format - especificación de funcionalidad en formato Gherkin - spécification fonctionnelle au format Gherkin - sonraíocht gnéithe i bhformáid Gherkin - פירוט תכונות בתבנית Gherkin - opis značajke u Gherkin formatu - funkcióleírás Gherkin formátumban - spesifikasi fitur dalam format Gherkin - Specifica di funzionalità in formato Gherkin - Gherkin пішіміндегі функционалды анықтамалар - Gherkin 형식의 기능 명세 - Specyfikacja funkcji w formacie Gherkin - Especificação de recurso no formato Gherkin - Функциональные определения в формате Gherkin - Špecifikácia funkcie vo formáte Gherkin - одредба функције у запису Геркина - egenskapsspecifikation i Gherkin-format - Gherkin biçiminde özellik belirtimi - специфікація можливості у форматі Gherkin - Gherkin 格式中的功能规范 - Gherkin 格式的特徵規格 + Gherkin document + Документ — Gherkin + document Gherkin + Gherkin-dokument + Gherkin-Dokument + Gherkin document + documento de Gherkin + Gherkin dokumentua + Gherkin-asiakirja + document Gherkin + Gherkin dokument + Gherkin dokumentum + Dokumen Gherkin + Documento Gherkin + Gherkin құжаты + 게르킨 문서 + Dokument Gherkin + Documento Gherkin + Документ Gherkin + Dokument Gherkin + Dokument Gherkin + Gherkin-dokument + Gherkin belgesi + документ Gherkin + Gherkin 文档 + Gherkin 文件 HTML document + HTML-dokument مستند HTML Documentu HTML - Dakument HTML + Dakument HTML Документ — HTML document HTML dokument HTML HTML-dokument HTML-Dokument Έγγραφο HTML - HTML document + HTML document HTML-dokumento documento HTML HTML dokumentua HTML-asiakirja HTML skjal document HTML + document HTML cáipéis HTML documento HTML מסמך HTML @@ -34371,7 +35693,7 @@ document HTML Dokument HTML documento HTML - Documento HTML + Documento HTML Document HTML Документ HTML Dokument HTML @@ -34382,161 +35704,122 @@ HTML belgesi документ HTML Tài liệu HTML - HTML 文档 - HTML 文件 + HTML 文档 + HTML 文件 HTML HyperText Markup Language - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - + + + + + + + - Web application cache manifest - قائمة التخزين الموقت لتطبيق الويب - Манифест за кеша на уеб приложение - manifest de memòria cau d'aplicació Web - manifest mezipaměti webové aplikace - Manifest for internetprogrammellemlager - Webanwendungscache-Manifest - Δηλωτικό λανθάνουσας μνήμης εφαρμογής Ιστού - Web application cache manifest - manifiesto de antememoria de aplicación web - Web aplikazioaren cache-aren agiria - Net nýtsluskipanarkova manifest - manifeste de cache d'application Web - lastliosta taisce d'fheidhmchlár Gréasáin - manifesto de caché de aplicativo web - הצהרה של מטמון של תוכנית ברשת - Web aplikacija prikaza predmemorije - Webalkalmazás gyorsítótár-összefoglalója - Manifesto de cache de application web - Manifes singgahan aplikasi web - Manifesto cache applicazione Web - Web アプリケーションキャッシュ manifest - Веб қолданбасының кэш манифесті - 웹 애플리케이션 캐시 정의 - Žiniatinklio programos podėlio manifestas - Tīmekļa lietotņu keša manifests - Webapplicatie cache manifest - manifèste d'escondedor d'aplicacion Web - Manifest pamięci podręcznej aplikacji WWW - manifesto de cache de aplicação web - Manifest de cache de aplicação web - Manifest de cache pentru aplicații web - Манифест кэша веб-приложения - Manifest vyrovnávacej pamäte webovej aplikácie - Predpomnilnik spletnega programa - проглас оставе Веб програма - Cachemanifest för webbapplikation - Web uygulama önbelleği bildirimi - маніфест кешу веб-програми - 网络应用程序缓存清单 - 網頁應用程式快取聲明 + Web application cache file + Кеш — уеб приложение + fitxer de memòria cau d'aplicació Web + Webprogrammellemlagerfil + Webanwendungscache-Datei + Web application cache file + archivo de antememoria de aplicación web + Web-aplikazio katxe fitxategia + Web-sovelluksen välimuistitiedosto + fichier de cache d'application Web + Web aplikacija datoteka predmemorije + Webalkalmazás gyorsítótárfájl + Berkas singgahan aplikasi web + File cache applicazione Web + Веб қолданбасының кэш файлы + 웹 애플리케이션 캐시 파일 + Plik pamięci podręcznej aplikacji WWW + Arquivo de cache de aplicativo Web + Файл кэша веб-приложения + Webbapplikation cachefil + Web uygulama önbellek dosyası + файл кешу вебпрограми + Web 应用缓存文件 - - - - - + + + + + - Google Video Pointer - مؤشر فيديو جوجل - Google Video Pointer - Pakazalnik Google Video - Документ-указател към видео на Google - apuntador a vídeo de Google - Google Video Pointer - Google Video-peger - Google Video-Zeiger - Google Video Pointer - Google Video Pointer - lista de reproducción de Google Video (GVP) - Google Video-ren erreprodukzio-zerrenda - Google-video-osoitin - Google Video Pointer - pointeur vidéo Google - pointeoir Google Video - punteiro de vídeo de Google - מצביע וידאו של Google - Google Video pretraživač - Google Video Pointer - Punctator Google Video - Google Video Pointer - Puntatore Google Video - Google ビデオポインター - Google Video Pointer - Google 동영상 포인터 - Google Video Pointer - Google Video Pointer - Peker til Google Video - Google-videoverwijzing - Google Video-peikar - puntador vidèo Google - Lista odtwarzania Google Video - Ponteiro Google Video - Ponteiro do Google Vídeo - Indicator Google Video - Google Video Pointer - Google Video Pointer - Kazalec Google Video - Puntues Google Video - Гуглов видео показивач - Google Video-pekare - Google Video İşaretçisi - вказівник відео Google - Con trỏ ảnh động Google - Google 视频指向 - Google Video Pointer - - - + Google Video Pointer shortcut + Отметка — Google Video + drecera d'apuntador a vídeo de Google + Google Video Pointer-genvej + Google-Video-Zeigerverweis + Google Video Pointer shortcut + atajo de Google Video Pointer + Google Video Pointer lasterbidea + Google Video Pointer -pikakuvake + raccourci de pointeur vidéo Google + Google Video pretraživač prečac + Google Video Pointer parancsikon + Pintasan Google Video Pointer + Scorciatoia Google Video Pointer + Google Video Pointer жарлығы + 구글 동영상 포인터 바로 가기 + Skrót listy odtwarzania Google Video + Atalho do Google Video Pointer + Ссылка Google Video Pointer + Google Video Pointer-genväg + Google Video Pointer kısayolu + скорочення вказівника відео Google + Google Video Pointer 快捷方式 + + + Haskell source code + Haskell-bronkode شفرة مصدر Haskell Haskell mənbə kodu - Kryničny kod Haskell - Изходен код на Haskell + Kryničny kod Haskell + Изходен код — Haskell codi font en Haskell zdrojový kód v jazyce Haskell Ffynhonnell rhaglen Haskell - Haskellkildekode + Haskell-kildekode Haskell-Quelltext Πηγαίος κώδικας Haskell - Haskell source code + Haskell source code Haskell-fontkodo código fuente en Haskell Haskell iturburu-kodea Haskell-lähdekoodi Haskell keldukota code source Haskell + codiç sorzint Haskell cód foinseach Haskell código fonte de Haskell קוד מקור של Haskell @@ -34557,7 +35840,7 @@ còde font Haskell Kod źródłowy Haskell código origem Haskell - Código-fonte Haskell + Código-fonte Haskell Cod sursă Haskell Исходный код Haskell Zdrojový kód Haskell @@ -34568,17 +35851,18 @@ Haskell kaynak kodu вихідний код мовою Haskell Mã nguồn Haskell - Haskell 源代码 - Haskell 源碼 + Haskell 源代码 + Haskell 源碼 IDL document + IDL-dokument مستند IDL Documentu IDL IDL sənədi - Dakument IDL + Dakument IDL Документ — IDL document IDL dokument IDL @@ -34586,13 +35870,14 @@ IDL-dokument IDL-Dokument Έγγραφο IDL - IDL document + IDL document IDL-dokumento documento IDL IDL dokumentua IDL-asiakirja IDL skjal document IDL + document IDL cáipéis IDL documento IDL מסמך IDL @@ -34613,7 +35898,7 @@ document IDL Dokument IDL documento IDL - Documento IDL + Documento IDL Document IDL Документ IDL Dokument IDL @@ -34624,8 +35909,8 @@ IDL belgesi документ IDL Tài liệu IDL - IDL 文档 - IDL 文件 + IDL 文档 + IDL 文件 IDL Interface Definition Language @@ -34633,21 +35918,23 @@ installation instructions + installasie-instruksies تعليمات التثبيت instrucciones d'instalación - instrukcyja dla instalavańnia + instrukcyja dla instalavańnia Инструкции за инсталация instruccions d'instal·lació návod k instalaci installationsinstruktioner Installationsanleitung Οδηγίες εγκατάστασης - installation instructions + installation instructions instrucciones de instalación instalazioaren instrukzioak asennusohjeet innleggingar vegleiðing instructions d'installation + istruzions di instalazion treoracha suiteála instrucións de instalación הוראות התקנה @@ -34667,7 +35954,7 @@ instructions d'installacion Instrukcje instalacji instruções de instalação - Instruções de instalação + Instruções de instalação instrucțiuni de instalare Инструкции по установке Návod na inštaláciu @@ -34678,28 +35965,30 @@ kurulum yönergeleri інструкції з встановлення hướng dẫn cài đặt - 软件安装指南 - 安裝指引 + 软件安装指南 + 安裝指引 Java source code + Java-bronkode شفرة مصدر Java - Kryničny kod Java - Изходен код на Java + Kryničny kod Java + Изходен код — Java codi font en Java zdrojový kód v jazyce Java - Javakildekode + Java-kildekode Java-Quelltext Πηγαίος κώδικας Java - Java source code + Java source code Java-fontkodo código fuente en Java Java iturburu-kodea Java-lähdekoodi Java keldukota code source Java + codiç sorzint Java cód foinseach Java código fonte de Java קוד מקור ב־Java @@ -34720,7 +36009,7 @@ còde font Java Kod źródłowy Java código origem Java - Código-fonte Java + Código-fonte Java Cod sursă Java Исходный код Java Zdrojový kód Java @@ -34731,28 +36020,30 @@ Java kaynak kodu вихідний код мовою Java Mã nguồn Java - Java 源代码 - Java 源碼 + Java 源代码 + Java 源碼 LDIF address book + LDIF-adresboek دفتر عناوين LDIF - Adrasnaja kniha LDIF + Adrasnaja kniha LDIF Адресна книга — LDIF llibreta d'adreces LDIF adresář LDIF LDIF-adressebog LDIF-Adressbuch Βιβλίο διευθύνσεων LDIF - LDIF address book + LDIF address book LDIF-adresaro libreta de direcciones LDIF LDIF helbide-liburua LDIF-osoitekirja LDIF adressubók carnet d'adresses LDIF + rubriche LDIF leabhar seoltaí LDIF lista de enderezos LDIF ספר כתובות של LDIF @@ -34772,7 +36063,7 @@ quasernet d'adreças LDIF Książka adresowa LDIF livro de endereços LDIF - Livro de endereços LDIF + Livro de endereços LDIF Agendă LDIF Адресная книга LDIF Adresár LDIF @@ -34783,33 +36074,35 @@ LDIF adres defteri адресна книга LDIF Sổ địa chỉ LDIF - LDIF 地址簿 - LDIF 通訊錄 + LDIF 地址簿 + LDIF 通訊錄 LDIF LDAP Data Interchange Format - - + + Lilypond music sheet + Lilypond-musiekblad صفحة موسيقى Lilypond - Muzyčny arkuš Lilypond + Muzyčny arkuš Lilypond Нотация на Lilypond full de música Lilypond notový papír Lilypond Lilypondmusikkort Lilypond-Notenblatt Παρτιτούρα Lilypond - Lilypond music sheet + Lilypond music sheet partitura de LilyPond Lilypond musika-orria Lilypond-nuotit Lilypond tónleika ark partition musicale Lilypond + spartît Lilypond bileog cheoil Lilypond folla de música de Lilypond דף מוזיקה של Lilypond @@ -34828,7 +36121,7 @@ particion musicala Lilypond Plik partytury Lilypond folha de música Lilypond - Partitura do Lilypond + Partitura do Lilypond Fișă muzică Lilypond Список музыки Lilypond Notový papier Lilypond @@ -34839,28 +36132,30 @@ Lilypond müzik sayfası нотний запис Lilypond Bản nhạc Lilypond - Lilypond 乐谱 - Lilypond 樂譜 + Lilypond 乐谱 + Lilypond 樂譜 LHS source code + LHS-bronkode شفرة مصدر LHS - Kryničny kod LHS - Изходен код на LHS + Kryničny kod LHS + Изходен код — LHS codi font en LHS zdrojový kód LHS LHS-kildekode LHS-Quelltext Πηγαίος κώδικας LHS - LHS source code + LHS source code LHS-fontkodo código fuente en LHS LHS iturburu-kodea LHS-lähdekoodi LHS keld code source LHS + codiç sorzint LHS cód foinseach LHS código fonte en LHS קוד מקור של LHS @@ -34880,7 +36175,7 @@ còde font LHS Kod źródłowy LHS código origem LHS - Código-fonte LHS + Código-fonte LHS Cod sursă LHS Исходный код LHS Zdrojový kód LHS @@ -34891,8 +36186,8 @@ LHS kaynak kodu вихідний код LHS Mã nguồn LHS - LHS 源代码 - LHS 源碼 + LHS 源代码 + LHS 源碼 LHS Literate Haskell source code @@ -34902,20 +36197,21 @@ application log سجل التطبيق rexistru d'aplicación - časopis aplikacyi - Файл-дневник на приложение + časopis aplikacyi + Журнал със съобщения registre d'aplicació záznam aplikace programlog Anwendungsprotokoll Καταγραφή εφαρμογή - application log + application log protokolo de aplikaĵo registro de aplicación aplikazio egunkaria sovelluksen lokitiedosto nýtsluskipan logg journal d'application + regjistri aplicazion logchomhad feidhmchláir rexistro de aplicativo יומן יישום @@ -34936,7 +36232,7 @@ jornal d'aplicacion Dziennik programu diário de aplicação - Registro de aplicativo + Registro de aplicativo înregistrare aplicație Журнал сообщений Záznam aplikácie @@ -34947,64 +36243,36 @@ uygulama günlüğü журнал програми bản ghi ứng dụng - 应用程序日志 - 程式紀錄檔 + 应用程序日志 + 程式紀錄檔 - Makefile - ملف Makefile - İnşa faylı - Makefile - Файл — make - Makefile - Makefile - Ffeil "make" - Bygningsfil - Makefile - Makefile - Makefile - Muntodosiero - Makefile - Makefile - Makefile - Makefile - makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile (жинау файлы) - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - Makefile - makefile - Plik make - Makefile - Makefile (arquivo do make) - Makefile - Файл Makefile - Makefile - Datoteka Makefile - Makefile - датотека стварања - Makefil - Makefile - файл проекту make - Tập tin tạo ứng dụng (Makefile) - Makefile - Makefile + Makefile build file + Проект — Makefile + fitxer de construcció Makefile + Makefile build-fil + Makefile Build-Datei + Makefile build file + archivo de generación Makefile + Makefile build fitxategia + Makefile rakennustiedosto + fichier de construction Makefile + Makefile datoteka izgradnje + Makefile összeállítási fájl + Berkas build Makefile + File compilazione Makefile + Makefile құрастыру файлы + Makefile 빌드 파일 + Plik budowania Makefile + Arquivo de compilação Makefile + Сборочный файл Makefile + Súbor zostavenia Makefile + Makefile-byggfil + Makefile derleme dosyası + файл збирання Makefile + Makefile 构建文件 @@ -35012,12 +36280,13 @@ - - + + Markdown document + Markdown-dokument Documentu Markdown Документ — Markdown document Markdown @@ -35025,11 +36294,12 @@ Markdown-dokument Markdown-Dokument Έγγραφο Markdown - Markdown document + Markdown document documento Markdown Markdown dokumentua Markdown-asiakirja document Markdown + document Markdown cáipéis Markdown documento de Markdown מסמך Markdown @@ -35046,7 +36316,7 @@ document Markdown Dokument Markdown documento Markdown - Documento Markdown + Documento Markdown Документ Markdown Dokument Markdown Dokument Markdown @@ -35054,8 +36324,8 @@ Markdown-dokument Markdown belgesi документ Markdown - Markdown 文档 - Markdown 文件 + Markdown 文档 + Markdown 文件 @@ -35065,19 +36335,20 @@ Qt MOC file ملف Qt MOC - Fajł Qt MOC + Fajł Qt MOC Файл — Qt MOC fitxer MOC de Qt soubor Qt MOC Qt MOC-fil Qt-MOC-Datei Αρχείο Qt MOC - Qt MOC file + Qt MOC file archivo MOC Qt Qt MOC fitxategia Qt MOC -tiedosto Qt MOC fíla fichier Qt MOC + file Qt MOC comhad MOC Qt ficheiro MOC Qt קובץ Qt MOC @@ -35097,7 +36368,7 @@ fichièr Qt MOC Plik Qt MOC ficheiro Qt MOC - Arquivo Qt MOC + Arquivo Qt MOC Fișier Qt MOC Файл Qt MOC Súbor Qt MOC @@ -35108,8 +36379,8 @@ Qt MOC dosyası файл-метаоб'єкт Qt Tập tin MOC của Qt - Qt 元对象编译器文件 - Qt MOC 檔 + Qt 元对象编译器文件 + Qt MOC 檔 Qt MOC Qt Meta Object Compiler @@ -35117,20 +36388,22 @@ Windows Registry extract + Windows-registerlêeruittreksel استخراج مسجل ويندوز - Element rehistru Windows + Element rehistru Windows Извадка от регистъра на Windows extracte de Windows Registry výtah registru Windows - Windows Registy-udtrækning + Windows registreringsdatabase-udtrækning Windows-Registry-Auszug Αποσυμπίεση Windows Registry - Windows Registry extract + Windows Registry extract extracto del registro de Windows Windows-eko erregistro erauzlea Windows-rekisteritietue Windows Registry úrdráttur extrait de registre Windows + estrat dal regjistri di Windows sliocht as Clárlann Windows Extracto do rexistro de Windows קובץ רשומות מערכת של Windows @@ -35150,7 +36423,7 @@ extrait de registre Windows Wycinek rejestru Windows extrato do registo do Windows - Extrator de registro do Windows + Extrator de registro do Windows Extras al registrului Windows Фрагмент Windows Registry Časť registrov Windows @@ -35161,138 +36434,99 @@ Windows Kayıt Defteri özü частина реєстру Windows Bản trích Registry Windows - Windows 注册表提取 - Windows Registry 抽出 + Windows 注册表提取 + Windows Registry 抽出 - - - + + + - Managed Object Format - صيغة كائن مدار - Farmat Managed Object - Управлявани обекти — MOF - format d'objecte gestionat - Managed Object Format - Håndteret objektformat - Managed Object Format - Μορφή διαχειριζόμενου αντικειμένου - Managed Object Format - formato de objeto gestionado - Kudeatutako objektu formatua - Managed Object Format - format Managed Object - formáid réada bainistithe - formato de obxecto xestionado - תבנית פריט מנוהל - Managed Object Format - Felügyelt objektum (MO) formátum - File in formato Managed Object - Managed Object Format - Managed Object Format - 管理オブジェクトフォーマット - Басқарылатын объект пішімі - 관리되는 객체 형식 - Sutvarkytų objektų formatas - Pārvaldītu objektu formāts - Managed Object Format - Managed Object Format - Managed Object Format - format Managed Object - Plik Managed Object Format - formato Managed Object - Formato de objeto gerenciado - Managed Object Format - Формат управляемого объекта - Formát Managed Object - Datoteka Managed Object - Managed Object Format - запис управљаног објекта - Managed Object Format - Yönetilen Nesne Biçimi - формат керування об’єктами - Định dạng Đối tượng đã Quản lý - 托管对象格式 - Managed Object Format + MOF file + Модел — MOF + fitxer MOF + MOF-fil + MOF-Datei + MOF file + archivo MOF + MOF fitxategia + MOF-tiedosto + fichier MOF + MOF datoteka + MOF fájl + Berkas MOF + File MOF + MOF файлы + MOF 파일 + Plik MOF + Arquivo MOF + Файл MOF + Súbor MOF + Datoteka MOF + MOF-fil + MOF dosyası + файл MOF + MOF 文件 + MOF 檔 + MOF + Windows Managed Object File - Mup publication - منشور Mup - Publikacyja Mup - Издание — Mup - publicació Mup - publikace Mup - Mupudgivelse - Mup-Veröffentlichung - Δημοσίευση Mup - Mup publication - publicación Mup - Mup publikazioa - Mup-julkaisu - Mup útgáva - publication Mup - foilseachán Mup - publicación Mup - פרסום של Mup - Mup publikacija - Mup publikáció - Publication Mup - Publikasi Mup - Pubblicazione Mup - Mup 出版ファイル - Mup жариялымы - Mup 출판물 - Mup leidinys - Mup publikācija - Mup publikasjon - Mup-publicatie - Mup-publikasjon - publication Mup - Publikacja Mup - publicação Mup - Publicação do Mup - Publicație Mup - Публикация Mup - Publikácie Mup - Datoteka objave Mup - Publikim Mup - Муп објава - Mup-publicering - Mup uygulaması - публікація Mup - Bản xuất Mup - Mup 应用程序 - Mup 出版品 + Mup musical composition document + Музикална композиция — Mup + document de composició musical Mup + Mup-musiksamling-dokument + Mup-Musikkompositions-Dokument + Mup musical composition document + documento de composición musical de Mup + Mup konposizio musikal dokumentua + Mup-sävellysdokumentti + document de composition musicale Mup + Mup dokument glazbene kompozicije + Mup zenei kompozíciós dokumentum + Dokumen komposisi musik Mup + Documento composizione musicale Mup + Mup музыкалық композиция құжаты + mup 작곡 문서 + Dokument kompozycji muzycznej Mup + Documento de composição musical Mup + Dokument hudobnej kompozície Mup + Mup musikkompositionsdokument + Mup musical composition belgesi + документ музичного запису твору Mup + Mup 乐曲文档 + Mup 音樂組合文件 - + Objective-C source code + Objective-C-bronkode شفرة مصدر الهدف-C - Kryničny kod Objective-C + Kryničny kod Objective-C Изходен код — Objective C codi font en Objective-C zdrojový kód v jazyce Objective-C Objektiv C-kildekode Objective-C-Quelltext Πηγαίος κώδικας Objective-C - Objective-C source code + Objective-C source code fontkodo en Objective-C código fuente en Objective-C Objective-C iturburu-kodea Objective-C-lähdekoodi Objective-C keldukota code source Objective-C + codiç sorzint Objective-C cód foinseach Objective-C código fonte de Objective-C קוד מקור של Objective-C @@ -35314,7 +36548,7 @@ còde font Objective-C Kod źródłowy Objective-C código origem Objective-C - Código-fonte Objective-C + Código-fonte Objective-C Cod sursă Objective-C Исходный код Objective-C Zdrojový kód Objective-C @@ -35325,31 +36559,33 @@ Objective-C kaynak kodu вихідний код мовою Objective-C Mã nguồn Objective-C - Objective-C 源代码 - Objective-C 源碼 + Objective-C 源代码 + Objective-C 源碼 - + OCaml source code + OCaml-bronkode شفرة مصدر OCaml - Kryničny kod OCaml + Kryničny kod OCaml Изходен код — OCaml codi font en OCaml zdrojový kód v jazyce OCaml OCaml-kildekode OCaml-Quelltext Πηγαίος κώδικας OCaml - OCaml source code + OCaml source code OCaml-fontkodo código fuente en OCaml OCaml iturburu-kodea OCaml-lähdekoodi OCaml keldukota code source OCaml + codiç sorzint OCaml cód foinseach OCaml código fonte de OCaml קוד מקור של OCaml @@ -35369,7 +36605,7 @@ còde font OCaml Kod źródłowy OCaml código origem OCaml - Código-fonte OCaml + Código-fonte OCaml Cod sursă OCaml Исходный код OCaml Zdrojový kód OCaml @@ -35380,19 +36616,26 @@ OCaml kaynak kodu первинний код мовою OCaml Mã nguồn OCaml - OCaml 源代码 - OCaml 源碼 + OCaml 源代码 + OCaml 源碼 OpenCL source code + OpenCL-bronkode + Изходен код — OpenCL codi font en OpenCL zdrojový kód v jazyce OpenCL + OpenCL-kildekode OpenCL-Quelltext - OpenCL source code + OpenCL source code código fuente en OpenCL + OpenCL iturburu-kodea OpenCL-lähdekoodi + code source OpenCL + codiç sorzint OpenCL + cód foinseach OpenCL OpenCL izvorni kôd OpenCL forráskód Kode sumber OpenCL @@ -35400,91 +36643,75 @@ OpenCL бастапқы коды OpenCL 소스 코드 Kod źródłowy OpenCL - Código-fonte do OpenCL + Código-fonte OpenCL Исходный код OpenGL Zdrojový kód OpenCL + Izvorna koda OpenCL OpenCL-källkod + OpenCL kaynak kodu вихідний код мовою OpenCL - OpenCL 源代码 - OpenCL 源碼 + OpenCL 源代码 + OpenCL 源碼 OpenCL Open Computing Language - MATLAB script/function - سكربت/وظيفة MATLAB - Skrypt/funkcyja MATLAB - Скрипт/функция — MATLAB - script/funció MATLAB - skript/funkce MATLAB - MATLAB-program/-funktion - MATLAB-Skript/-Funktion - Δέσμη ενεργειών/συνάρτηση MATLAB - MATLAB script/function - secuencia de órdenes/función de MATLAB - MATLAB script/funtzioa - MATLAB-komentotiedosto/funktio - MATLAB boðrøð/funka - script/fonction MATLAB - script/feidhm MATLAB - función/script de MATLAB - תסריט/פונקציית MATLAB - MATLAB skripta/funkcija - MATLAB parancsfájl/funkció - Script/function MATLAB - Skrip/fungsi MATLAB - Script/Funzione MATLAB - MATLAB スクリプト/関数 - MATLAB сценарий/функциясы - MATLAB 스크립트/함수 - MATLAB scenarijus / funkcija - MATLAB skripts/funkcija - Skript/funksjon for MATLAB - MATLAB-script/functie - MATLAB-skript/funksjon - escript/fonction MATLAB - Skrypt/funkcja MATLAB - script/função MATLAB - Script/função do MATLAB - Funcție/script MATLAB - Сценарий/функция MATLAB - Skript/funkcia MATLAB - Skriptna datoteka MATLAB - Script/Funksion MATLAB - скрипта/функција МАТЛАБ-а - MATLAB-skript/funktion - MATLAB betiği/fonksiyonu - скрипт/функція MATLAB - Văn lệnh/chức năng MATLAB - MATLAB 脚本/函数 - MATLAB 指令稿/函式 + MATLAB file + Файл — MATLAB + fitxer MATLAB + MATLAB-fil + MATLAB-Datei + MATLAB file + archivo de MATLAB + MATLAB fitxategia + MATLAB-tiedosto + fichier MATLAB + MATLAB datoteka + MATLAB fájl + Berkas MATLAB + File MATLAB + MATLAB файлы + MATLAB 파일 + Plik MATLAB + Arquivo do MATLAB + Файл MATLAB + Súbor MATLAB + Datoteka MATLAB + MATLAB-fil + MATLAB dosyası + файл MATLAB + MATLAB 文件 + MATLAB 檔 - + - + - + Meson source code + Meson-bronkode + Изходен код — Meson codi font en Meson zdrojový kód Meson Meson-kildekode Meson-Quelltext Πηγαίος κώδικας Meson - Meson source code + Meson source code código fuente en Meson Meson iturburu-kodea Meson-lähdekoodi code source Meson + codiç sorzint Meson cód foinseach Meson קוד מקור Meson Meson izvorni kôd @@ -35497,31 +36724,35 @@ còde font Meson Kod źródłowy Meson código origem Meson - Código-fonte Meson + Código-fonte Meson Исходный код Meson Zdrojový kód Meson + Izvorna koda Meson Месон изворни ко̂д Meson-källkod Meson kaynak kodu вихідний код мовою Meson - Meson 源代码 - Meson 源碼 + Meson 源代码 + Meson 源碼 Modelica model + Modelica-model + Модел — Modelica model de Modelica model Modelica Modelica-model Modelica-Modell Μοντέλο Modelica - Modelica model + Modelica model modelo de Modelica Modelica modeloa Modelica-malli modèle Modelica + model Modelica samhail Modelica Modelo de Modelica דגם של Modelica @@ -35537,7 +36768,7 @@ modèl Modelica Model Modelica modelo Modelica - Modelo da Modelica + Modelo da Modelica Модель Modelica Model Modelica Model Modelica @@ -35545,43 +36776,45 @@ Modelica-modell Modelica modeli модель Modelica - Modelica 模型 - Modelica 模型 + Modelica 模型 + Modelica 模型 - + - + - + - + - + Pascal source code + Pascal-bronkode شفرة مصدر باسكال - Kryničny kod Pascal + Kryničny kod Pascal Изходен код — Pascal codi font en Pascal zdrojový kód v jazyce Pascal - Pascalkildekode + Pascal-kildekode Pascal-Quelltext Πηγαίος κώδικας Pascal - Pascal source code + Pascal source code Pascal-fontkodo código fuente en Pascal Pascal iturburu-kodea Pascal-lähdekoodi Pascal keldukota code source Pascal + codiç sorzint Pascal cód foinseach Pascal código fonte en Pascal קוד מקור של Pascal @@ -35602,7 +36835,7 @@ còde font Pascal Kod źródłowy Pascal código origem Pascal - Código-fonte Pascal + Código-fonte Pascal Cod sursă Pascal Исходный код Pascal Zdrojový kód Pascal @@ -35613,29 +36846,31 @@ Pascal kaynak kodu вихідний код мовою Pascal Mã nguồn Pascal - Pascal 源代码 - Pascal 源碼 + Pascal 源代码 + Pascal 源碼 differences between files + verskille tussen lêers الاختلافات بين الملفات - adroźnieńni pamiž fajłami + adroźnieńni pamiž fajłami Разлики между файлове diferències entre fitxers rozdíly mezi soubory forskel mellem filer Unterschiede zwischen Dateien Διαφορές μεταξύ αρχείων - differences between files + differences between files diferencoj inter dosieroj diferencias entre archivos fitxategien arteko ezberdintasunak tiedostojen väliset erot munur millum fílur différences entre fichiers + diferencis tra file difríochtaí idir chomhaid diferenzas entre ficheiros הבדל בין קבצים @@ -35656,7 +36891,7 @@ différences entre fichièrs Różnica pomiędzy plikami diferenças entre ficheiros - Diferenças entre arquivos + Diferenças entre arquivos diferențe între fișiere Различия между файлами Rozdiely medzi súbormi @@ -35667,39 +36902,41 @@ dosyalar arasındaki fark різниця між файлами khác biệt giữa các tập tin - 文件的区别 - 檔案內容差異 + 文件的区别 + 檔案內容差異 - - - - - - - - - - + + + + + + + + + + Go source code + Go-bronkode Изходен код — Go codi font en Go zdrojový kód v jazyce Go Go-kildekode Go-Quelltext Πηγαίος κώδικας Go - Go source code + Go source code Go-fontkodo código fuente en Go Go iturburu-kodea Go-lähdekoodi code source Go + codiç sorzint Go cód foinseach Go código fonte de Go קוד מקור של Go @@ -35717,7 +36954,7 @@ còde font Go Kod źródłowy Go cigo origem Go - Código-fonte Go + Código-fonte Go Исходный код Go Zdrojový kód Go Izvorna koda Go @@ -35725,23 +36962,26 @@ Go-källkod Go kaynak kodu вихідний код мовою Go - Go 源代码 - Go 源碼 + Go 源代码 + Go 源碼 SCons configuration file + SCons-opstellingslêer + Настройки — SCons fitxer de configuració de SCons konfigurační soubor SCons SCons-konfigurationsfil SCons-Konfigurationsdatei Αρχείο ρυθμίσεων SCons - SCons configuration file + SCons configuration file archivo de configuración de SCons SCons konfigurazio-fitxategia SCons-asetustiedosto fichier de configuration SCons + file di configurazion SCons comhad cumraíochta SCons קובץ תצורה של SCons SCons datoteka podešavanja @@ -35754,7 +36994,7 @@ fichièr de configuracion SCons Plik konfiguracji SCons ficheiro de configuração SCons - Arquivo de configuração do SCons + Arquivo de configuração do SCons Файл настроек SCons Konfiguračný súbor SCons Prilagoditvena datoteka SCons @@ -35762,8 +37002,8 @@ SCons-konfigurationsfil SCons yapılandırma dosyası файл налаштувань SCons - SCons 配置文件 - SCons 組態檔 + SCons 配置文件 + SCons 組態檔 @@ -35771,12 +37011,19 @@ Python 3 script + Python 3-skrip + Скрипт — Python 3 script Python 3 skript v jazyce Python 3 + Python 3-program Python-3-Skript - Python 3 script + Python 3 script secuencia de órdenes en Python 3 + Python 3 script-a Python 3 -skripti + script Python 3 + script Python 3 + script Python 3 Python3 skripta Python 3 parancsfájl Skrip Python 3 @@ -35784,47 +37031,51 @@ Python 3 скрипті 파이썬 3 스크립트 Skrypt Python 3 - Script Python 3 + Script Python 3 Сценарий Python 3 Skript Python 3 + Skript Python 3 Python 3-skript + Python 3 betiği скрипт мовою Python 3 - Python 3 脚本 - Python 3 指令稿 - - - - - - - - - - - - - - - - + Python 3 脚本 + Python 3 指令稿 + + + + + + + + + + + + + + + + Python script + Python-skrip سكربت بايثون - Skrypt Python + Skrypt Python Скрипт — Python script Python skript v jazyce Python - Pythonprogram + Python-program Python-Skript Δέσμη ενεργειών Python - Python script + Python script Python-skripto secuencia de órdenes en Python Python script-a Python-komentotiedosto Python boðrøð script Python + script Python script Python Script en Python תסריט Python @@ -35845,7 +37096,7 @@ escript Python Skrypt Python script Python - Script Python + Script Python Script Python Сценарий Python Skript Python @@ -35856,43 +37107,56 @@ Python betiği скрипт мовою Python Văn lệnh Python - Python 脚本 - Python 指令稿 - + Python 脚本 + Python 指令稿 + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + SageMath script + script SageMath + SageMath skripti + Script SageMath + Skrypt SageMath + Script SageMath + скрипт SageMath + + Lua script + Lua-skrip سكربت Lua - Skrypt Lua + Skrypt Lua Скрипт на Lua script Lua skript v jazyce Lua - Luaprogram + Lua-program Lua-Skript Δέσμη ενεργειών Lua - Lua script + Lua script Lua-skripto secuencia de órdenes en Lua Lua script-a Lua-komentotiedosto Lua boðrøð script Lua + script Lua script Lua script de Lua תסריט Lua @@ -35912,7 +37176,7 @@ escript Lua Skrypt Lua script Lua - Script Lua + Script Lua Script Lua Сценарий Lua Skript Lua @@ -35923,24 +37187,25 @@ Lua betiği скрипт Lua Văn lệnh Lua - Lua 脚本 - Lua 指令稿 - + Lua 脚本 + Lua 指令稿 + - - - - + + + + README document + README-dokument مستند README Documentu LLEIME README sənədi - Dakument README + Dakument README Документ — „Да се прочете“ document README dokument README @@ -35948,13 +37213,14 @@ README-dokument README-Dokument Έγγραφο README - README document + README document README-dokumento documento README README dokumentua LUEMINUT-asiakirja README skjal document LISEZ-MOI + document README cáipéis README documento README מסמך README @@ -35975,7 +37241,7 @@ document LISEZ-MOI Dokument README documento LEIA-ME - Documento README + Documento README Document README Документ README Dokument README @@ -35983,32 +37249,34 @@ Dokument README документ ПРОЧИТАЈМЕ README-dokument - BENİOKU belgesi + README belgesi документ README Tài liệu Đọc Đi (README) - README 文档 - README 說明文件 + README 文档 + README 說明文件 NFO document + NFO-dokument مستند NFO Documentu NFO - Dakument NFO + Dakument NFO Документ — NFO document NFO dokument NFO NFO-dokument NFO-Dokument Έγγραφο NFO - NFO document + NFO document NFO-dokumento documento NFO NFO dokumentua NFO-asiakirja NFO skjal document NFO + document NFO cáipéis NFO documento NFO מסמך NFO @@ -36028,7 +37296,7 @@ document NFO Dokument NFO documento NFO - Documento NFO + Documento NFO Document NFO Документ NFO Dokument NFO @@ -36039,27 +37307,29 @@ NFO belgesi документ NFO Tài liệu NFO - NFO 文档 - NFO 文件 + NFO 文档 + NFO 文件 RPM spec file + RPM-spesifikasielêer ملف مواصفات RPM - Specyfikacyjny fajł RPM + Specyfikacyjny fajł RPM Файл — спецификация за RPM fitxer spec RPM soubor specifikace RPM RPM spec-fil RPM-Spezifikationsdatei Αρχείο spec RPM - RPM spec file + RPM spec file archivo de especificaciones RPM RPM espezifikazio fitxategia RPM spec -tiedosto RPM tøknilýsingarfíla fichier de spécification RPM + file di specifiche RPM comhad spec RPM ficheiro de especificacións RPM קובץ מפרט RPM @@ -36079,7 +37349,7 @@ fichièr d'especificacion RPM Plik spec RPM ficheiro de especificações RPM - Arquivo de especificação RPM + Arquivo de especificação RPM Fișier RPM spec Файл описания RPM Súbor RPM spec @@ -36090,61 +37360,70 @@ RPM spec dosyası spec-файл RPM Tập tin đặc tả RPM - RPM spec 文件 - RPM spec 規格檔 + RPM spec 文件 + RPM spec 規格檔 RPM Red Hat Package Manager - - + + Sass CSS pre-processor file + Sass CSS-voorverwerkerlêer + Директиви за препроцесора — Sass CSS fitxer preprocessador CSS Sass soubor preprocesoru Sass CSS - Sass CSS-forbrænderfil + Sass CSS pre-processor-fil Sass-CSS-Präprozessordatei - Sass CSS pre-processor file + Sass CSS pre-processor file archivo de preprocesador de CSS Sass + Sass CSS fitxategi prozesatu gabea + Sass CSS pre-processor -tiedosto fichier de prétraitement CSS Sass + file di pre-elaborazion di CSS Sass comhad réamhphróiseálaí CSS Sass קובץ קדם עיבוד Sass CSS Sass CSS datoteka predobrade Sass CSS előfeldolgozó fájl - berkas pre-processor Sass CSS + Berkas pre-processor Sass CSS File CSS Sass Sass CSS препроцессор файлы Sass CSS 전처리기 파일 Plik preprocesora CSS Sass - Arquivo de pré-processamento Sass CSS + Arquivo de pré-processamento Sass CSS Файл препроцессора Sass CSS Súbor Sass CSS pre-procesora датотека Сас ЦСС пре-процесора Sass CSS-preprocessorfil Sass CSS önişlemci dosyası файл препроцесора CSS Sass - Sass CSS 预处理器文件 - Sass CSS 處理器前檔案 + Sass CSS 预处理器文件 + Sass CSS 處理器前檔案 + Sass + Syntactically Awesome Style Sheets Scala source code + Scala-bronkode Изходен код — Scala codi font en Scala zdrojový kód Scala Scala-kildekode Scala-Quelltext Πηγαίος κώδικας Scala - Scala source code + Scala source code código fuente en Scala Scala iturburu-kodea Scala-lähdekoodi code source Scala + codiç sorzint Scala cód foinseach Scala código fnote en Scala קוד מקור של Scala @@ -36162,7 +37441,7 @@ còde font Scala Kod źródłowy Scala código origem Scala - Código-fonte Scala + Código-fonte Scala Исходный код Scala Zdrojový kód Scala Izvorna koda Scala @@ -36170,30 +37449,32 @@ Scala-källkod Scala kaynak kodu вихідний код мовою Scala - Scala 源代码 - Scala 源碼 + Scala 源代码 + Scala 源碼 Scheme source code + Scheme-bronkode شفرة مصدر Scheme Sxem mənbə kodu - Kryničny kod Scheme + Kryničny kod Scheme Изходен код — Scheme codi font en Scheme zdrojový kód Scheme Ffynhonnell Rhaglen Scheme - Schemekildekode + Scheme-kildekode Scheme-Quelltext Πηγαίος κώδικας Scheme - Scheme source code + Scheme source code Scheme-fontkodo código fuente en Scheme Scheme iturburu-kodea Scheme-lähdekoodi Scheme keldukota code source Scheme + codiç sorzint Scheme cód foinseach Scheme código fonte en Scheme קוד מקור של Scheme @@ -36214,7 +37495,7 @@ còde font Scheme Kod źródłowy Scheme código origem Scheme - Código-fonte Scheme + Código-fonte Scheme Cod sursă Scheme Исходный код Scheme Zdrojový kód Scheme @@ -36225,49 +37506,50 @@ Scheme kaynak kodu вихідний файл мовою Scheme Mã nguồn Scheme - Scheme 源代码 - Scheme 源碼 + Scheme 源代码 + Scheme 源碼 - Sass CSS pre-processor file - fitxer preprocessador CSS Sass - soubor preprocesoru Sass CSS - Sass CSS-forbrænderfil - Sass-CSS-Präprozessordatei - Sass CSS pre-processor file - archivo de preprocesador de CSS Sass - fichier de prétraitement CSS Sass - comhad réamhphróiseálaí CSS Sass - קובץ קדם עיבוד Sass CSS - Sass CSS datoteka predobrade - Sass CSS előfeldolgozó fájl - berkas pre-processor Sass CSS - File CSS Sass - Sass CSS препроцессор файлы - Sass CSS 전처리기 파일 - Plik preprocesora CSS Sass - Arquivo de pré-processamento Sass CSS - Файл препроцессора Sass CSS - Súbor Sass CSS pre-procesora - датотека Сас ЦСС пре-процесора - Sass CSS-preprocessorfil - Sass CSS önişlemci dosyası - файл препроцесора CSS Sass - Sass CSS 预处理器文件 - Sass CSS 處理器前檔案 + SCSS pre-processor file + Директиви за препроцесора — SCSS + fitxer preprocessador SCSS + SCSS pre-processor-fil + SCSS-Präprozessordatei + SCSS pre-processor file + archivo de preprocesador SCSS + SCSS fitxategi prozesatu gabea + SCSS pre-processor -tiedosto + fichier de prétraitement SCSS + SCSS datoteka predobrade + SCSS előfeldolgozófájl + Berkas preprosesor SCSS + File SCSS + SCSS препроцессор файлы + SCSS 전처리 파일 + Plik preprocesora SCSS + Arquivo de pré-processamento SCSS + Файл препроцессора SCSS + SCSS förprocessorfil + SCSS ön işleyici dosyası + файл засобу попередньої обробки SCSS + SCSS 预处理文件 + SCSS 前處理器檔 + SCSS + Sassy CSS Setext document + Setext-dokument مستند Setext Documentu Setext Setext sənədi - Dakument Setext + Dakument Setext Документ — Setext document Setext dokument Setext @@ -36275,13 +37557,14 @@ Setextdokument Setext-Dokument Έγγραφο Setext - Setext document + Setext document Setext-dokumento documento Setext Setext dokumentua Setext-asiakirja Setext skjal document Setext + document Setext cáipéis Setext documento Settext מסמך של Setext @@ -36302,7 +37585,7 @@ document Setext Dokument Setext documento Setext - Documento Setext + Documento Setext Document Setext Документ Setext Dokument Setext @@ -36313,16 +37596,17 @@ Setext belgesi документ Setext Tài liệu Setext - Setext 文档 - Setext 文件 + Setext 文档 + Setext 文件 SQL code + SQL-kode شفرة SQL SQL kodu - Kod SQL + Kod SQL Код — SQL codi en SQL kód SQL @@ -36330,13 +37614,14 @@ SQL-kode SQL-Befehle Κώδικας SQL - SQL code + SQL code SQL-kodo código SQL SQL kodea SQL-koodi SQL kota code SQL + codiç SQL cód SQL código SQL קוד SQL @@ -36357,7 +37642,7 @@ còde SQL Kod SQL código SQL - Código SQL + Código SQL Cod SQL Код SQL Kód SQL @@ -36368,29 +37653,31 @@ SQL kodu код SQL Mã SQL - SQL 代码 - SQL 程式碼 + SQL 代码 + SQL 程式碼 - + Tcl script + Tcl-skrip سكربت Tcl - Skrypt Tcl + Skrypt Tcl Скрипт — Tcl script Tcl skript Tcl Tcl-program Tcl-Skript Δέσμη ενεργειών Tcl - Tcl script + Tcl script Tcl-skripto secuencia de órdenes en Tcl Tcl script-a Tcl-komentotiedosto Tcl boðrøð script Tcl + script Tcl script Tcl Script en Tcl תסריט Tcl @@ -36411,7 +37698,7 @@ escript Tcl Skrypt Tcl script Tcl - Script Tcl + Script Tcl Script Tcl Сценарий Tcl Skript Tcl @@ -36422,17 +37709,19 @@ Tcl betiği скрипт Tcl Văn lệnh Tcl - Tcl 脚本 - Tcl 描述語言檔 + Tcl 脚本 + Tcl 描述語言檔 + TeX document + TeX-dokument مستند TeX Documentu TeX - Dakument TeX + Dakument TeX Документ — TeX document TeX dokument TeX @@ -36440,13 +37729,14 @@ TeX-dokument TeX-Dokument Έγγραφο TeX - TeX document + TeX document TeX-dokumento documento de TeX TeX dokumentua TeX-asiakirja TeX skjal document TeX + document TeX cáipéis TeX documenton TeX מסמך TeX @@ -36467,7 +37757,7 @@ document TeX Dokument TeX documento TeX - Documento TeX + Documento TeX Document TeX Документ TeX Dokument TeX @@ -36478,8 +37768,8 @@ TeX belgesi документ TeX Tài liệu TeX - TeX 文档 - TeX 文件 + TeX 文档 + TeX 文件 @@ -36490,18 +37780,19 @@ - + - + TeXInfo document + TeXInfo-dokument مستند TeXInfo Documentu TeXInfo TeXInfo sənədi - Dakument TeXInfo + Dakument TeXInfo Документ — TeXInfo document TeXInfo dokument TeXInfo @@ -36509,13 +37800,14 @@ TeXInfo-dokument TeXInfo-Dokument Έγγραφο TeXInfo - TeXInfo document + TeXInfo document TeXInfo-dokumento documento de TeXInfo TeXInfo dokumentua TeXInfo-asiakirja TeXInfo skjal document TeXInfo + document TeXInfo cáipéis TeXInfo documento TeXInfo מסמך של TeXInfo @@ -36536,7 +37828,7 @@ document TeXInfo Dokument TeXInfo documento TeXInfo - Documento TeXInfo + Documento TeXInfo Document TexInfo Документ TeXInfo Dokument TeXInfo @@ -36547,30 +37839,32 @@ TeXInfo belgesi документ TeXInfo Tài liệu TeXInfo - TeXInfo 文档 - TeXInfo 文件 + TeXInfo 文档 + TeXInfo 文件 Troff ME input document + Troff ME-toevoerdokument مستند Troff ME input Documentu d'entrada de Troff ME - Uvodny dakument Troff ME + Uvodny dakument Troff ME Изходен документ — Troff ME document d'entrada Troff ME vstupní dokument Troff ME Troff ME inddata-dokument Troff-ME-Eingabedokument Έγγραφο εντολών troff ME - Troff ME input document + Troff ME input document eniga dokumento de Troff ME documento de entrada Troff ME Troff ME sarrerako dokumentua Troff ME -syöteasiakirja Troff ME inntaksskjal document d'entrée Troff ME + document di jentrade Troff ME cáipéis ionchurtha Troff ME documento de entrada Troff ME מסמך קלט של Troff ME @@ -36591,7 +37885,7 @@ document d'entrada Troff ME Dokument wejściowy Troff ME documento origem Troff ME - Documento de entrada Troff ME + Documento de entrada Troff ME Document intrare Troff ME Входной документ Troff ME Vstupný dokument Troff ME @@ -36602,29 +37896,31 @@ Troff ME girdi belgesi вхідний документ Troff ME Tài liệu nhập ME Troff - Troff ME 输入文档 - Troff ME 輸入文件 + Troff ME 输入文档 + Troff ME 輸入文件 Troff MM input document + Troff MM-toevoerdokument مستند Troff MM input Documentu d'entrada de Troff MM - Uvodny dakument Troff MM + Uvodny dakument Troff MM Изходен документ — Troff MM document d'entrada Troff MM vstupní dokument Troff MM Troff MM inddata-dokument Troff-MM-Eingabedokument Έγγραφο εντολών troff MM - Troff MM input document + Troff MM input document eniga dokumento de Troff MM documento de entrada Troff MM Troff MM sarrerako dokumentua Troff MM -syöteasiakirja Troff MM inntaksskjal document d'entrée Troff MM + document di jentrade Troff MM cáipéis ionchurtha Troff MM documento de entrada Troff MM מסמך קלט של Troff MM @@ -36645,7 +37941,7 @@ document d'entrada Troff MM Dokument wejściowy Troff MM documento origem Troff MM - Documento de entrada Troff MM + Documento de entrada Troff MM Document intrare Troff MM Входной документ Troff MM Vstupný dokument Troff MM @@ -36656,29 +37952,31 @@ Troff MM girdi belgesi вхідний документ Troff MM Tài liệu nhập MM Troff - Troff MM 输入文档 - Troff MM 輸入文件 + Troff MM 输入文档 + Troff MM 輸入文件 Troff MS input document + Troff MS-toevoerdokument مستند Troff MS input Documentu d'entrada de Troff MS - Uvodny dakument Troff MS + Uvodny dakument Troff MS Изходен документ — Troff MS document d'entrada Troff MS vstupní dokument Troff MS Troff MS inddata-dokument Troff-MS-Eingabedokument Έγγραφο εντολών troff MS - Troff MS input document + Troff MS input document eniga dokumento de Troff MS documento de entrada Troff MS Troff MS sarrerako dokumentua Troff MS -syöteasiakirja Troff MS inntaksskjal document d'entrée Troff MS + document di jentrade Troff MS cáipéis ionchurtha Troff MS documento de entrada Troff MS מסמך קלט של Troff MS @@ -36699,7 +37997,7 @@ document d'entrada Troff MS Dokument wejściowy Troff MS documento origem Troff MS - Documento de entrada Troff MS + Documento de entrada Troff MS Document intrare Troff MS Входной документ Troff MS Vstupný dokument Troff MS @@ -36710,59 +38008,65 @@ Troff MS girdi belgesi вхідний документ Troff MS Tài liệu nhập MS Troff - Troff MS 输入文档 - Troff MS 輸入文件 + Troff MS 输入文档 + Troff MS 輸入文件 Twig template + Twig-sjabloon + Шаблон — Twig plantilla Twig šablona Twig Twig-skabelon Twig-Vorlage - Twig template + Twig template plantilla de Twig Twig txantiloia + Twig-malli modèle Twig + model Twig teimpléad Twig תבנית Twig Twig predložak Twig-sablon - templat Twig + Templat Twig Modello twig Twig үлгісі Twig 문서 서식 Szablon Twig - Modelo Twig + Modelo Twig Шаблон Twig Šablóna Twig Твиг шаблон Twig-mall Twig şablonu шаблон twig - Twig 模板 - Twig 範本 + Twig 模板 + Twig 範本 X-Motif UIL table + X-Motif UIL-tabel جدول X-Motif UIL - Tablica X-Motif UIL + Tablica X-Motif UIL Таблица — X-Motif UIL taula UIL de X-Motif tabulka X-Motif UIL X-Motif UIL-tabel X-Motif-UIL-Tabelle Πίνακας X-Motif UIL - X-Motif UIL table + X-Motif UIL table tabla de X-Motif UIL X-Motif UIL taula X-Motif UIL -taulukko X-Motif UIL talva table X-Motif UIL + tabele X-Motif UIL tábla X-Motif UIL Táboa de X-Motif UIL טבלה של X-Motif UIL @@ -36783,7 +38087,7 @@ taula X-Motif UIL Tabela UIL X-Motif tabela UIL do X-Motif - Tabela UIL do X-Motif + Tabela UIL do X-Motif Tabel X-Motif UIL Таблица UIL X-Motif Tabuľka X-Motif UIL @@ -36794,28 +38098,29 @@ X-Motif UIL tablosu таблиця X-Motif UIL Bảng UIL X-Motif - X-Motif UIL 表 - X-Motif UIL 表格 + X-Motif UIL 表 + X-Motif UIL 表格 resource location موقع المورد - pałažeńnie resursu + pałažeńnie resursu Местоположение на ресурс localització de recurs umístění prostředku resurseplacering Ressourcenort Τοποθεσία πόρου - resource location + resource location loko de risurco ubicación del recurso baliabidearen kokalekua resurssisijainti tilfeingisstaður localisation de ressource + posizion risorse suíomh acmhainne localización do recurso מיקום של משאב @@ -36836,7 +38141,7 @@ localizacion de ressorsa Położenie zasobu localização de recurso - Localização de recurso + Localização de recurso locație de resursă Расположение ресурса Umiestnenie zdroja @@ -36847,29 +38152,33 @@ kaynak ayırma розташування ресурсу địa điểm tài nguyên - 资源位置 - 資源位置 + 资源位置 + 資源位置 - + uuencoded file + uu-geënkodeerde lêer + Файл — кодиран с uuencode fitxer uuencoded soubor kódovaný pomocí uuencoding uuencodede-fil Datei im uuencode-Format Αρχείο κωδικοποιημένο unix σε unix (uuencoded) - uuencoded file + uuencoded file archivo codificado con uuencode uuencode-aturiko fitxategia + uuencoded tiedosto fichier uuencodé + file codificât cun uuencode comhad uuencoded Ficheiro uuencoded קובץ בקידוד uu uuencoded datoteka uuencode-olt fájl File in uuencode - Berkas ter-uuencode + berkas ter-uuencode File uuencoded 未エンコードファイル uuencode кодталған файлы @@ -36878,7 +38187,7 @@ fichièr uuencodat Plik zakodowany za pomocą uuencode ficheiro uuencoded - Arquivo codificado UUE + Arquivo codificado UUE Файл, кодированный uuencode Súbor v kódovaní uuencode Datoteka uuencode @@ -36886,32 +38195,56 @@ uuencode-fil uuencoded dosyası файл даних у форматі UUE - Uuencode 文件 - uuencoded 檔 + Uuencode 文件 + uuencoded 檔 - + + + VBScript program + programa VBScript + VBScript-program + VBScript-Programm + VBScript program + programa en VBScript + VBScript-ohjelma + programme VBScript + VBScript program + Programma VBScript + Pogram VBScript + Programa VBScript + VBScript-program + програма мовою VBScript + VBScript 程序 + VBScript 程式 + + + + + XMI file + XMI-lêer ملف XMI - Fajł XMI + Fajł XMI Файл — XMI fitxer XMI soubor XMI XMI-fil XMI-Datei Αρχείο XML - XMI file + XMI file XMI-dosiero archivo XMI XMI fitxategia XMI-tiedosto XMI fíla fichier XMI + file XMI comhad XMI ficheiro XMI קובץ XMI @@ -36931,7 +38264,7 @@ fichièr XMI Plik XMI ficheiro XMI - Arquivo XMI + Arquivo XMI Fișier XMI Файл XMI Súbor XMI @@ -36942,8 +38275,8 @@ XMI dosyası файл XMI Tập tin XMI - XMI 文件 - XMI 檔 + XMI 文件 + XMI 檔 XMI XML Metadata Interchange @@ -36953,21 +38286,23 @@ XSL FO file + XSL FO-lêer ملف XSL FO - Fajł XSL FO + Fajł XSL FO Форматиращ файл — XSL FO fitxer FO XSL soubor XSL FO XML FO-fil XSL-FO-Datei Αρχείο XSL FO - XSL FO file + XSL FO file XSL-FO-dosiero archivo XSL FO XSL FO fitxategia XSL FO -tiedosto XSL FO fíla fichier XSL FO + file XSL FO comhad XSL FO ficheiro XSL FO קובץ XSL FO @@ -36987,7 +38322,7 @@ fichièr XSL FO Plik XSL FO ficheiro XSL FO - Arquivo XSL FO + Arquivo XSL FO Fișier XSL FO Файл XSL FO Súbor XSL FO @@ -36998,8 +38333,8 @@ XSL FO dosyası файл XSL FO Tập tin FO của XSL (XFO) - XSL 格式化对象文件 - XSL FO 檔 + XSL 格式化对象文件 + XSL FO 檔 XSL FO XSL Formatting Objects @@ -37009,21 +38344,23 @@ iptables configuration file + iptables-opstellingslêer ملف تضبيط iptables ficheru de configuración d'iptables - kanfihuracyjny fajł iptables + kanfihuracyjny fajł iptables Настройки за iptables fitxer de configuració d'iptables soubor nastavení iptables iptableskonfigurationsfil iptables-Konfigurationsdatei Αρχείο ρυθμίσεων iptables - iptables configuration file + iptables configuration file archivo de configuración de iptables iptables konfigurazio-fitxategia iptables-asetustiedosto iptables samansetingarfíla fichier de configuration iptables + file di configurazion di iptables comhad cumraíochta iptables ficheiro de configuración de iptables קובץ הגדרה של iptables @@ -37043,7 +38380,7 @@ fichièr de configuracion iptables Plik konfiguracji iptables ficheiro de configuração iptables - Arquivo de configuração do iptables + Arquivo de configuração do iptables fișier configurare iptables Файл настроек iptables Súbor nastavení iptables @@ -37054,26 +38391,26 @@ iptables yapılandırma dosyası файл налаштувань iptables tập tin cấu hình iptables - iptables 防火墙配置文件 - iptables 組態檔 + iptables 防火墙配置文件 + iptables 組態檔 - - - - - + + + + + - - - + + + - - - + + + @@ -37081,49 +38418,57 @@ D-Bus service file + D-Bus-dienslêer + Услуга — D-Bus fitxer de servei de D-Bus soubor služby D-Bus + D-Bus-tjenestefil D-Bus-Dienstdatei - D-Bus service file + D-Bus service file archivo de servicio de D-Bus D-Bus zerbitzu fitxategia D-Bus-palvelutiedosto fichier de service D-Bus + file di servizi D-Bus comhad seirbhíse D-Bus Datoteka D-Bus usluge D-Bus szolgáltatás fájl - berkas layanan D-Bus + Berkas layanan D-Bus File servizio D-Bus D-Bus қызметтік файлы D-Bus 서비스 파일 Plik usługi D-Bus - Arquivo de serviço do D-Bus + Arquivo de serviço do D-Bus Файл службы D-Bus Súbor služby D-Bus датотека услуге Д-сабирнице D-BUS-tjänstfil D-Bus hizmeti dosyası файл служби D-Bus - D-Bus 服务文件 - D-Bus 服務檔 + D-Bus 服务文件 + D-Bus 服務檔 - - + + systemd unit file + systemd-eenheidlêer ficheru d'unidaes de systemd + Елемент — systemd fitxer d'unitat de systemd jednotkový soubor systemd + systemd unit-fil systemd-Einheitsdatei - systemd unit file + systemd unit file archivo de unidad de systemd systemd unitate fitxategia systemd-yksikkötiedosto fichier d'unité systemd + file unitât di systemd comhad aonaid systemd Datoteka systemd jedinice systemd egység fájl @@ -37132,44 +38477,44 @@ systemd юнит файлы systemd 유닛 파일 Plik jednostki systemd - Arquivo de unit do systemd + Arquivo de unit do systemd Модульный файл Systemd Súbor jednotky systemd датотека јединице системд-а systemd-enhetsfil systemd birim dosyası файл модуля systemd - systemd 单元文件 - systemd 單位檔 + systemd 单元文件 + systemd 單位檔 - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + @@ -37185,21 +38530,23 @@ XSLT stylesheet + XSLT-stylblad نمط XSLT - Arkuš stylaŭ XSLT + Arkuš stylaŭ XSLT Стилове — XSLT full d'estil XSLT stylopis XSLT XSLT-stilark XSLT-Stylesheet Φύλλο στυλ XSLT - XSLT stylesheet + XSLT stylesheet XSLT-stilfolio hoja de estilos XSLT XSLT estilo-orria XSLT-tyylitiedosto XSLT sniðark feuille de style XSLT + sfuei di calcul XSLT stílbhileog XSLT folla de estilo XSLT גליון סגנון XSLT @@ -37220,7 +38567,7 @@ fuèlh d'estil XSLT Arkusz stylów XSLT folha de estilos XSLT - Folha de estilo XSLT + Folha de estilo XSLT Fișă de stil XSLT Таблица стилей XSLT Štýl XSLT @@ -37231,35 +38578,72 @@ XSLT çalışma sayfası таблиця стилів XSLT Tờ kiểu dáng XSLT - XSLT 样式表 - XSLT 樣式表 + XSLT 样式表 + XSLT 樣式表 XSLT eXtensible Stylesheet Language Transformation - + + + Maven description file + Maven-beskrywingslêer + Модел — Maven + fitxer de descripció Maven + popisný soubor Maven + Maven-beskrivelsesfil + Maven-Beschreibungsdatei + Maven description file + archivo de descripción de Maven + Maven azalpen fitxategia + Maven-kuvaustiedosto + fichier de description Maven + file di descrizion Maven + cur síos Maven + Maven datoteka opisa + Maven leírófájl + Berkas deskripsi Maven + File descrizione Mave + Maven сипаттама файлы + Maven 설명 파일 + Plik opisu Maven + Arquivo de descrição Maven + Файл описания Maven + Súbor popisu Maven + Maven-beskrivningsfil + Maven açıklama dosyası + файл опису Maven + Maven 描述文件 + Maven 描述檔 + + + + + XMCD CD database + XMCD CD-databasis قاعدة بيانات XMCD CD - Baza źviestak ab dyskach XMCD + Baza źviestak ab dyskach XMCD База от данни за CD-та — XMCD base de dades de CD XMCD databáze XMCD CD XMCD-cd-database XMCD-CD-Datenbank Βάση δεδομένων CD XMCD - XMCD CD database + XMCD CD database base de datos de CD XMCD XMCD CD datu-basea XMCD CD -tietokanta XMCD fløgu dátustovnur base de données de CD XMCD + base di dâts XMCD CD bunachar sonraí XMCD CD base de datos de CD XMCD מסד נתונים XMCD CD @@ -37279,7 +38663,7 @@ banca de donadas de CD XMCD Baza danych CD XMCD base de dados XMCD CD - Banco de dados de CD XMCD + Banco de dados de CD XMCD Bază de date XMCD CD База данных компакт-дисков XMCD Databáza XMCD CD @@ -37287,34 +38671,36 @@ Bazë me të dhëna XMCD CD ИксМЦД ЦД база података XMCD cd-databas - XMCD CD veritabanı + XMCD CD veri tabanı база даних XMCD CD Cơ sở dữ liệu CD XMCD - XMCD CD 数据库 - XMCD CD 資料庫 + XMCD CD 数据库 + XMCD CD 資料庫 - + XML document + XML-dokument مستند XML Documentu XML - Dakument XML + Dakument XML Документ — XML document XML dokument XML XML-dokument XML-Dokument Έγγραφο XML - XML document + XML document XML-dokumento documento XML XML dokumentua XML-asiakirja XML skjal document XML + document XML cáipéis XML documento XML מסמך XML @@ -37334,7 +38720,7 @@ document XML Dokument XML documento XML - Documento XML + Documento XML Document XML Документ XML Dokument XML @@ -37345,15 +38731,14 @@ XML belgesi документ XML Tài liệu XML - XML 文档 - XML 文件 + XML 文档 + XML 文件 XML eXtensible Markup Language - - + @@ -37363,21 +38748,23 @@ XML entities document + XML-entiteitedokument مستند كيانات XML Documentu d'entidaes XML - Dakument elementaŭ XML + Dakument elementaŭ XML Документ — заместващи последователности в XML document d'entitats XML dokument entit XML XML-enhedsdokument XML-Dokument-Entitäten Έγγραφο οντοτήτων XML - XML entities document + XML entities document documento de entidades XML XML entitateen dokumentua XML-entiteettiasiakirja XML einindisskjal document d'entités XML + document entitâts XML cáipéis aonán XML documento de entidades XML מסמך ישויות XML @@ -37397,7 +38784,7 @@ document d'entitats XML Dokument jednostek XML documento de entidades XML - Documento de entidades XML + Documento de entidades XML Document entități XML Файл сущностей XML Dokument entít XML @@ -37408,8 +38795,8 @@ XML varlıklar belgesi документ об’єктів XML Tài liệu thực thể XML - XML 特征文档 - XML 實體文件 + XML 特征文档 + XML 實體文件 XML eXtensible Markup Language @@ -37419,22 +38806,24 @@ DV video + DV-video DV مرئي Videu en DV - Videa DV + Videa DV Видео — DV vídeo DV video DV DV-video DV-Video Βίντεο DV - DV video + DV video DV-video vídeo DV DV bideoa DV-video DV video vidéo DV + video DV físeán DV vídeo DV וידאו DV @@ -37455,7 +38844,7 @@ vidèo DV Plik wideo DV vídeo DV - Vídeo DV + Vídeo DV Video DV Видео DV Video DV @@ -37466,21 +38855,22 @@ DV video відеокліп DV Ảnh động DV - DV 视频 - DV 視訊 + DV 视频 + DV 視訊 DV Digital Video - + ISI video + ISI-video مرئي ISI Videu n'ISI ISI video faylı - Videa ISI + Videa ISI Видео — ISI vídeo ISI video ISI @@ -37488,13 +38878,14 @@ ISI-video ISI-Video Βίντεο ISI - ISI video + ISI video ISI-video vídeo ISI ISI bideoa ISI-video ISI video vidéo ISI + video ISI físeán ISI vídeo ISI וידאו ISI @@ -37515,7 +38906,7 @@ vidèo ISI Plik wideo ISI vídeo ISI - Vídeo ISI + Vídeo ISI Video ISI Видео ISI Video ISI @@ -37526,11 +38917,12 @@ ISI videosu відеокліп ISI Ảnh động ISI - ISI 视频 - ISI 視訊 + ISI 视频 + ISI 視訊 MPEG-2 transport stream + MPEG-2-vervoerstroom بث نقل MPEG-2 Поток — транспорт по MPEG-2 flux de transport MPEG-2 @@ -37538,12 +38930,13 @@ MPEG-2-transportstrøm MPEG-2-Transportstrom Ροή μεταφοράς MPEG-2 - MPEG-2 transport stream + MPEG-2 transport stream flujo de transporte MPEG-2 MPEG-2 korronte garraioa MPEG-2 -siirtobittivirta MPEG-2 flutningsstreymur flux de transport MPEG-2 + flus di traspuart MPEG-2 sruth aistrithe MPEG-2 fluxo de transporte MPEG-2 העברת זרימה של MPEG-2 @@ -37562,7 +38955,7 @@ flux de transpòrt MPEG-2 Strumień przesyłania MPEG-2 fluxo de transporte MPEG-2 - Fluxo de transporte de MPEG-2 + Fluxo de transporte de MPEG-2 Flux transport MPEG-2 Транспортный поток MPEG-2 MPEG-2 Transport Stream @@ -37571,25 +38964,25 @@ MPEG-2 transportström MPEG-2 aktarım akışı потік передавання даних MPEG-2 - MPEG-2 传输流 - MPEG-2 傳輸串流 + MPEG-2 传输流 + MPEG-2 傳輸串流 MPEG-2 TS Moving Picture Experts Group 2 Transport Stream - - - - - + + + + + - - - - - + + + + + @@ -37608,22 +39001,24 @@ MPEG video + MPEG-video MPEG مرئي Videu en MPEG - Videa MPEG + Videa MPEG Видео — MPEG vídeo MPEG video MPEG MPEG-video MPEG-Video Βίντεο MPEG - MPEG video + MPEG video MPEG-video vídeo MPEG MPEG bideoa MPEG-video MPEG video vidéo MPEG + video MPEG físeán MPEG vídeo MPEG וידאו MPEG @@ -37645,7 +39040,7 @@ vidèo MPEG Plik wideo MPEG vídeo MPEG - Vídeo MPEG + Vídeo MPEG Video MPEG Видео MPEG Video MPEG @@ -37656,8 +39051,8 @@ MPEG videosu відеокліп MPEG Ảnh động MPEG - MPEG 视频 - MPEG 視訊 + MPEG 视频 + MPEG 視訊 MPEG Moving Picture Experts Group @@ -37665,9 +39060,9 @@ - - - + + + @@ -37677,50 +39072,11 @@ - MPEG video (streamed) - Videu en MPEG (tresmitíu) - Видео — MPEG, поточно - vídeo MPEG (flux) - video MPEG (proud) - MPEG-video (streamet) - MPEG-Video (Datenstrom) - Βίντεο MPEG (εκπεμπόμενο) - MPEG video (streamed) - vídeo MPEG (transmisión) - MPEG bideoa (korronte bidez) - MPEG-video (virtaus) - vidéo MPEG (flux) - físeán MPEG (sruthaithe) - vídeo MPEG (en stream) - קובץ MPEG (בהזרמה) - MPEG video snimka (strujanje) - MPEG videó (szórt) - Video MPEG (in fluxo) - Video MPEG (di-stream-kan) - Video MPEG (streamed) - MPEG ビデオ(ストリーム) - MPEG ვიდეო (ნაკადი) - MPEG видео (ағымдық) - MPEG 동영상(스트리밍) - MPEG video (straumēts) - MPEG video (streamed) - vidèo MPEG (flux) - Plik wideo MPEG (strumień) - vídeo MPEG (em fluxo) - Vídeo MPEG (fluxo) - Видео MPEG (потоковое) - MPEG video (streamované) - MPEG-video (pretočni) - МПЕГ видео (проточни) - MPEG-video (strömmad) - MPEG videosu (akış) - відеокліп MPEG (потоковий) - MPEG 视频流媒体 - MPEG 視訊 (串流) + Video playlist - + @@ -37728,22 +39084,24 @@ QuickTime video + QuickTime-video QuickTime مرئي Videu en QuickTime - Videa QuickTime + Videa QuickTime Видео — QuickTime vídeo QuickTime video QuickTime QuickTime-video QuickTime-Video Βίντεο QuickTime - QuickTime video + QuickTime video QuickTime-video vídeo QuickTime QuickTime bideoa QuickTime-video QuickTime video vidéo QuickTime + video QuickTime físeán QuickTime vídeo QuickTime וידאו של QuickTime @@ -37764,7 +39122,7 @@ vidèo QuickTime Plik wideo QuickTime vídeo QuickTime - Vídeo do QuickTime + Vídeo do QuickTime Video QuickTime Видео QuickTime Video QuickTime @@ -37775,13 +39133,13 @@ QuickTime videosu відеокліп QuickTime Ảnh động QuickTime - QuickTime 视频 - QuickTime 視訊 + QuickTime 视频 + QuickTime 視訊 - - - - + + + + @@ -37790,21 +39148,23 @@ QuickTime image + QuickTime-beeld صورة QuickTime - Vyjava QuickTime + Vyjava QuickTime Изображение — QuickTime imatge QuickTime obrázek QuickTime QuickTime-billede QuickTime-Bild Εικόνα QuickTime - QuickTime image + QuickTime image QuickTime-bildo imagen de QuickTime QuickTime irudia QuickTime-kuva QuickTime mynd image QuickTime + imagjin QuickTime íomhá QuickTime imaxe QuickTime תמונה של QuickTime @@ -37824,7 +39184,7 @@ imatge QuickTime Obraz QuickTime imagem QuickTime - Imagem do QuickTime + Imagem do QuickTime Imagine QuickTime Изображение QuickTime Obrázok QuickTime @@ -37835,54 +39195,116 @@ QuickTime görüntüsü зображення QuickTime Ảnh QuickTime - QuickTime 图像 - QuickTime 影像 + QuickTime 图像 + QuickTime 影像 - + Khronos texture image + Khronos-tekstuurbeeld + Изображение — текстура за Khronos imatge de textura de Khronos obrázek s texturou Khronos + Khronos-strukturbillede Khronos-Texturbild - Khronos texture image + Khronos texture image imagen de textura de Khronos + Khronos testura irudia + Khronos-tekstuurikuva image de texture Khronos + imagjin di struture/texture Khronos íomhá uigeachta Khronos Khronos tekstura slika Khronos textúra kép - citra tekstur Khronos + Citra tekstur Khronos Immagine texture Khronos Khronos текстура суреті 크로노스 텍스처 파일 Obraz tekstury Khronos - Imagem de textura do Khronos + Imagem de textura do Khronos Изображение текстуры Khronos Obrázok textúry Khronos слика Кронос текстуре Khronos-texturbild Khronos kaplama görüntüsü зображення текстури Khronos - Khronos 纹理图像 - Khronos 紋理影像 + Khronos 纹理图像 + Khronos 紋理影像 - - - + + + + + Khronos texture image + Khronos-tekstuurbeeld + Изображение — текстура за Khronos + imatge de textura de Khronos + obrázek s texturou Khronos + Khronos-strukturbillede + Khronos-Texturbild + Khronos texture image + imagen de textura de Khronos + Khronos testura irudia + Khronos-tekstuurikuva + image de texture Khronos + imagjin di struture/texture Khronos + íomhá uigeachta Khronos + Khronos tekstura slika + Khronos textúra kép + Citra tekstur Khronos + Immagine texture Khronos + Khronos текстура суреті + 크로노스 텍스처 파일 + Obraz tekstury Khronos + Imagem de textura do Khronos + Изображение текстуры Khronos + Obrázok textúry Khronos + слика Кронос текстуре + Khronos-texturbild + Khronos kaplama görüntüsü + зображення текстури Khronos + Khronos 纹理图像 + Khronos 紋理影像 + + + + + + + + + + + ASTC texture + textura ASTC + ASTC tekstuuri + Texture ASTC + Tekstura ASTC + Textura ASTC + текстура ASTC + ASTC + Advanced Scalable Texture Compression + + + + + Vivo video + Vivo-video Vivo مرئي Videu en Vivo Vivo video faylı - Videa Vivo + Videa Vivo Видео — Vivo vídeo Vivo video Vivo @@ -37890,13 +39312,14 @@ Vivo-video Vivo-Video Βίντεο Vivo - Vivo video + Vivo video Vivo-video vídeo Vivo Vivo bideoa Vivo-video Vivo video vidéo Vivo + video Vivo físeán Vivo vídeo Vivo וידאו של Vivo @@ -37917,7 +39340,7 @@ vidèo Vivo Plik wideo Vivo vídeo Vivo - Vídeo Vivo + Vídeo Vivo Video Vivo Видео Vivo Video Vivo @@ -37928,32 +39351,34 @@ Vivo videosu відео Vivo Ảnh động Vivo - Vivo 视频 - Vivo 視訊 + Vivo 视频 + Vivo 視訊 Wavelet video + Wavelet-video Wavelet مرئي Videu en Wavelet Wavelet video faylı - Videa Wavelet + Videa Wavelet Видео — Wavelet vídeo Wavelet video Wavelet Fideo Wavelet - Waveletvideo + Wavelet-video Wavelet-Video Βίντεο Wavelet - Wavelet video + Wavelet video Wavelet-video vídeo Wavelet Wavelet bideoa Wavelet-video Wavelet video vidéo Wavelet + video Wavelet físeán Wavelet vídeo Wavelet וידאו של Wavelet @@ -37974,7 +39399,7 @@ vidèo Wavelet Plik wideo Wavelet vídeo Wavelet - Vídeo Wavelet + Vídeo Wavelet Video Wavelet Видео Wavelet Video Wavelet @@ -37985,14 +39410,15 @@ Wavelet videosu відеокліп Wavelet Ảnh động Wavelet - Wavelet 视频 - Wavelet 視訊 + Wavelet 视频 + Wavelet 視訊 ANIM animation + ANIM-animasie تحريكة ANIM ANIM animasiyası - Animacyja ANIM + Animacyja ANIM Анимация — ANIM animació ANIM animace ANIM @@ -38000,13 +39426,14 @@ ANIM-animation ANIM-Animation Κινούμενο σχέδιο ANIM - ANIM animation + ANIM animation ANIM-animacio animación ANIM ANIM animazioa ANIM-animaatio ANIM teknmyndagerð animation ANIM + animazion ANIM beochan ANIM animación ANIM הנפשת ANIM @@ -38028,7 +39455,7 @@ animacion ANIM Plik animacji ANIM animação ANIM - Animação ANIM + Animação ANIM Animație ANIM Анимация ANIM Animácia ANIM @@ -38039,26 +39466,28 @@ ANIM canlandırması анімація ANIM Hoạt ảnh ANIM - ANIM 动画 - ANIM 動畫 + ANIM 动画 + ANIM 動畫 FLIC animation + FLIC-animasie تحريكة FLIC - Animacyja FLIC + Animacyja FLIC Анимация — FLIC animació FLIC animace FLIC FLIC-animation FLIC-Animation Κινούμενο σχέδιο FLIC - FLIC animation + FLIC animation animación FLIC FLIC animazioa FLIC-animaatio FLIC teknimyndagerð animation FLIC + animazion FLIC beochan FLIC animación FLIC הנפשת FLIC @@ -38079,7 +39508,7 @@ animacion FLIC Plik animacji FLIC animação FLIC - Animação FLIC + Animação FLIC Animație FLIC Анимация FLIC Animácia FLIC @@ -38090,34 +39519,36 @@ FLIC animasyonu анімація FLIC Hoạt ảnh FLIC - FLIC 动画 - FLIC 動畫 + FLIC 动画 + FLIC 動畫 - - + + Haansoft Hangul document + Haansoft Hangul-dokument مستند Haansoft Hangul Documentu de Haansoft Hangul - Dakument Haansoft Hangul + Dakument Haansoft Hangul Документ — Haansoft Hangul document d'Haansoft Hangul dokument Haansoft Hangul Haansoft Hangul-dokument Haansoft-Hangul-Dokument Έγγραφο Haansoft Hangul - Haansoft Hangul document + Haansoft Hangul document documento de Haansoft Hangul Haansoft Hangul dokumentua Haansoft Hangul -asiakirja Haansoft Hangul skjal document Haansoft Hangul + document Haansoft Hangul cáipéis Haansoft Hangul documento de Haansoft Hangul מסמך Haansoft Hangul @@ -38137,7 +39568,7 @@ document Haansoft Hangul Dokument Haansoft Hangul documento Haansoft Hangul - Documento do Haansoft Hangul + Documento do Haansoft Hangul Document Haansoft Hangul Документ Haansoft Hangul Dokument Haansoft Hangul @@ -38148,32 +39579,34 @@ Haansoft Hangul belgesi документ Haansoft Hangul Tài liệu Hangul Haansoft - Haansoft Hangul 文档 - Haansoft 韓文文件 + Haansoft Hangul 文档 + Haansoft 韓文文件 - + Haansoft Hangul document template + Haansoft Hangul-dokumentsjabloon قالب مستند Haansoft Hangul Plantía de documentu de Haansoft Hangul - Šablon dakumentu Haansoft Hangul + Šablon dakumentu Haansoft Hangul Шаблон за документи — Haansoft Hangul plantilla de document d'Haansoft Hangul šablona dokumentu Haansoft Hangul Haansoft Hangul-dokumentskabelon Haansoft-Hangul-Dokumentvorlage Πρότυπο εγγράφου Haansoft Hangul - Haansoft Hangul document template + Haansoft Hangul document template plantilla de documento de Haansoft Hangul Haansoft Hangul dokumentuaren txantiloia Haansoft Hangul -asiakirjamalli Haansoft Hangul skjalaformur modèle de document Haansoft Hangul + model document Haansoft Hangul teimpléad cháipéis Haansoft Hangul modelo de documento de Haansoft Hangul תבנית מסמך של Haansoft Hangul @@ -38193,7 +39626,7 @@ modèl de document Haansoft Hangul Szablon dokumentu Haansoft Hangul modelo de documento Haansoft Hangul - Modelo de documento do Haansoft Hangul + Modelo de documento do Haansoft Hangul Document șablon Haansoft Hangul Шаблон документа Haansoft Hangul Šablóna dokumentu Haansoft Hangul @@ -38204,29 +39637,31 @@ Haansoft Hangul belge şablonu шаблон документа Haansoft Hangul Mẫu tài liệu Hangul Haansoft - Haansoft Hangul 文档模板 - Haansoft 韓文文件範本 + Haansoft Hangul 文档模板 + Haansoft 韓文文件範本 MNG animation + MNG-animasie تحريكة MNG - Animacyja MNG + Animacyja MNG Анимация — MNG animació MNG animace MNG MNG-animation MNG-Animation Κινούμενο σχέδιο MNG - MNG animation + MNG animation MNG-animacio animación MNG MNG animazioa MNG-animaatio MNG teknimyndagerð animation MNG + animazion MNG beochan MNG animación MNG הנפשת MNG @@ -38247,7 +39682,7 @@ animacion MNG Animacja MNG animação MNG - Animação MNG + Animação MNG Animație MNG Анимация MNG Animácia MNG @@ -38258,33 +39693,35 @@ MNG canlandırması анімація MNG Hoạt ảnh MNG - MNG 动画 - MNG 動畫 + MNG 动画 + MNG 動畫 MNG Multiple-Image Network Graphics - + ASF video + ASF-video ASF مرئي Videu n'ASF - Videa ASF + Videa ASF Видео — ASF vídeo ASF video ASF ASF-video ASF-Video Βίντεο ASF - ASF video + ASF video ASF-video vídeo ASF ASF bideoa ASF-video ASF video vidéo ASF + video ASF físeán ASF vídeo ASF וידאו ASF @@ -38305,7 +39742,7 @@ vidèo ASF Plik wideo ASF vídeo ASF - Vídeo ASF + Vídeo ASF Video ASF Видео ASF Video ASF @@ -38316,8 +39753,8 @@ ASF videosu відеокліп ASF Ảnh động ASF - ASF 视频 - ASF 視訊 + ASF 视频 + ASF 視訊 ASF Advanced Streaming Format @@ -38325,26 +39762,28 @@ - - + + Windows Media Station file + Windows Media Station-lêer ملف محطة Windows Media - Fajł Windows Media Station + Fajł Windows Media Station Файл — Windows Media Station fitxer de Windows Media Station soubor Windows Media Station Windows Media Station-fil Windows-Media-Streamingbeschreibung Αρχείο Windows Media Station - Windows Media Station file + Windows Media Station file archivo de emisora de Windows Media Windows Media Station fitxategia Windows Media Station-tiedosto Windows Media Station fíla fichier Windows Media Station + file Windows Media Station comhad Windows Media Station ficheiro de emisora de Windows Media קובץ תחנה של Windows Media @@ -38364,7 +39803,7 @@ fichièr Windows Media Station Plik Windows Media Station ficheiro Windows Media Station - Arquivo de estação do Windows Media + Arquivo de estação do Windows Media Fișier Windows Media Station Файл Windows Media Station Súbor Windows Media Station @@ -38375,32 +39814,34 @@ Windows Media Station dosyası файл Windows Media Station Tập tin Windows Media Station - Windows 媒体工作站文件 - Windows Media Station 檔 + Windows 媒体工作站文件 + Windows Media Station 檔 - + Windows Media video + Windows Media-video Windows Media مرئي Videu de Windows Media - Videa Windows Media + Videa Windows Media Видео — Windows Media vídeo de Windows Media video Windows Media Windows Medie-video Windows-Media-Video Βίντεο Windows Media - Windows Media video + Windows Media video vídeo de Windows Media Windows Media bideoa Windows Media -video Windows Media video vidéo Windows Media + video Windows Media físeán Windows Media vídeo de Windows Media וידאו של Windows Media @@ -38420,7 +39861,7 @@ vidèo Windows Media Plik wideo Windows Media vídeo Windows Media - Vídeo do Windows Media + Vídeo do Windows Media Video Windows Media Видео Windows Media Video Windows Media @@ -38431,17 +39872,18 @@ Windows Media videosu відеокліп Windows Media Ảnh động Windows Media - Windows Media 视频 - Windows Media 視訊 + Windows Media 视频 + Windows Media 視訊 AVI video + AVI-video AVI مرئي Videu n'AVI AVI video faylı - Videa AVI + Videa AVI Видео — AVI vídeo AVI video AVI @@ -38449,13 +39891,14 @@ AVI-video AVI-Video Βίντεο AVI - AVI video + AVI video AVI-video vídeo AVI AVI bideoa AVI-video AVI video vidéo AVI + video AVI físeán AVI vídeo AVI וידאו AVI @@ -38477,7 +39920,7 @@ vidèo AVI Plik wideo AVI vídeo AVI - Vídeo AVI + Vídeo AVI Video AVI Видео AVI Video AVI @@ -38488,8 +39931,8 @@ AVI videosu відеокліп AVI Ảnh động AVI - AVI 视频 - AVI 視訊 + AVI 视频 + AVI 視訊 AVI Audio Video Interleave @@ -38498,11 +39941,11 @@ - - + + - - + + @@ -38511,22 +39954,24 @@ NullSoft video + NullSoft-video NullSoft مرئي Videu de NullSoft - Videa NullSoft + Videa NullSoft Видео — NullSoft vídeo NullSoft video NullSoft NullSoft-video NullSoft-Video Βίντεο Nullsoft - NullSoft video + NullSoft video NullSoft-video vídeo NullSoft NullSoft bideoa NullSoft-video NullSoft video vidéo NullSoft + video NullSoft físeán NullSoft vídeo de NullSoft וידאו של NullSot @@ -38546,7 +39991,7 @@ vidèo NullSoft Plik wideo NullSoft vídeo NullSoft - Vídeo do NullSoft + Vídeo do NullSoft Video NullSoft Видео Nullsoft Video NullSoft @@ -38557,29 +40002,30 @@ Nullsoft videosu відеокліп NullSoft Ảnh động NullSoft - NullSoft 视频 - NullSoft 視訊 + NullSoft 视频 + NullSoft 視訊 - + SDP multicast stream file ملف دفق متعدد البث SDP - Šmatadrasny płynievy fajł SDP - Файл за поток — SDP multicast + Šmatadrasny płynievy fajł SDP + Поток — SDP multicast fitxer de flux de multidifusió SDP soubor vícesměrového vysílání proudu SDP SDP multicast-strømfil SDP-Multicast-Datenstromdatei Αρχείο ροής πολλαπλής αναμετάδοσης SDP - SDP multicast stream file + SDP multicast stream file archivo de flujo multicast SDP SDP multicast korrontearen fitxategia SDP-monilähetysvirran tiedosto SDP margvarpað streymafíla fichier de flux multidiffusion SDP + file di flus a trasmission multiple SDP comhad shruth ilchraolacháin SDP ficheiro de fluxo multicast SDP קובץ שידור בזרימה SDP @@ -38599,7 +40045,7 @@ fichièr de flux multidifusion SDP Plik strumienia multicast SDP ficheiro de fluxo SDP multicast - Arquivo de canal multicast SDP + Arquivo de canal multicast SDP Fișier flux multicast SDP Файл мультикаст-потока SDP Súbor viacsmerového vysielania prúdu SDP @@ -38610,8 +40056,8 @@ SDP çoklu yayın akışı dosyası файл потокової трансляції SDP Tập tin luồng truyền một-nhiều SDP - SDP 多播流文件 - SDP multicast 串流檔 + SDP 多播流文件 + SDP multicast 串流檔 SDP Session Description Protocol @@ -38619,18 +40065,19 @@ - - + + SGI video + SGI-video SGI مرئي Videu en SGI SGI video faylı - Videa SGI + Videa SGI Видео — SGI vídeo SGI video SGI @@ -38638,13 +40085,14 @@ SGI-video SGI-Video Βίντεο SGI - SGI video + SGI video SGI-video vídeo SGI SGI bideoa SGI-video SGI video vidéo SGI + video SGI físeán SGI vídeo SGI וידאו SGI @@ -38665,7 +40113,7 @@ vidèo SGI Plik wideo SGI vídeo SGI - Vídeo SGI + Vídeo SGI Video SGI Видео SGI Video SGI @@ -38676,29 +40124,31 @@ SGI videosu відеокліп SGI Ảnh động SGI - SGI 视频 - SGI 視訊 + SGI 视频 + SGI 視訊 - + eMusic download package + eMusic-aflaaipakket حزمة تنزيل eMusic - pakunak zahruzki eMusic + pakunak zahruzki eMusic Пакет за сваляне — eMusic - paquet de descàrrega eMusic + paquet de baixades d'eMusic balíček stahování eMusic - eMusic-hentpakke + eMusic-downloadpakke eMusic-Download-Paket Πακέτο λήψης eMusic - eMusic download package + eMusic download package paquete de descarga eMusic eMusic deskargaren paketea eMusic-imurointipaketti eMusic niðurtøkupakki paquet de téléchargement eMusic + pachet di discjariament eMusic pacáiste íosluchtú eMusic paquete de descarga de eMusic חבילת הורדה של eMusic @@ -38718,7 +40168,7 @@ paquet de telecargament eMusic Pobrany pakiet eMusic pacote transferido eMusic - Pacote de download do eMusic + Pacote de download do eMusic pachet descărcare eMusic Пакет загрузок eMusic Balíček sťahovania eMusic @@ -38729,16 +40179,17 @@ eMusic indirme paketi пакунок завантаження eMusic gói nhạc tải xuống eMusic - eMusic 下载包 - eMusic 下載包 + eMusic 下载包 + eMusic 下載包 - + KML geographic data + KML geografiese data بيانات جغرافية KML Географски данни — KML dades geogràfiques KML @@ -38746,12 +40197,13 @@ Geografiske data i KML-format KML geographische Daten Γεωγραφικά δεδομένα KML - KML geographic data + KML geographic data datos geográficos KML KML datu geografikoak KML-paikkatieto KML landafrøðilig dáta données géographiques KML + dâts gjeografics KML sonraí geografacha KML datos xeográficos KML מידע גאוגרפי KML @@ -38769,7 +40221,7 @@ donadas geograficas KML Dane geograficzne KML dados geográficos KML - Dados geográficos KML + Dados geográficos KML Date geografice KML Географические данные KML Zemepisné údaje KML @@ -38778,8 +40230,8 @@ KML geografisk data KML coğrafi verisi географічні дані KML - KML 地理数据 - KML 地理資料 + KML 地理数据 + KML 地理資料 KML Keyhole Markup Language @@ -38788,6 +40240,7 @@ KML geographic compressed data + KML saamgepersde geografiese data بيانات جغرافية مضغوطة KML Географски данни — KML, компресирани dades geogràfiques KML amb compressió @@ -38795,12 +40248,13 @@ KML-geografiske komprimerede data KML geographische komprimierte Daten Γεωγραφικά συμπιεσμένα δεδομένα KML - KML geographic compressed data + KML geographic compressed data datos geográficos comprimidos KML KML datu geografiko konprimituak Pakattu KML-paikkatieto KML landafrøðilig stappað dáta données géographiques KML compressées + dâts gjeografics KML comprimûts sonraí comhbhrúite geografacha KML datos xeográficos KML comprimidos מידע גאוגרפי דחוס KML @@ -38818,7 +40272,7 @@ donadas geograficas KML compressats Skompresowane dane geograficzne KML dados geográficos comprimidos KML - Dados geográficos KML compactados + Dados geográficos KML compactados Date geografice comprimate KML Сжатые географические данные KML Komprimované zemepisné údaje KML @@ -38827,8 +40281,8 @@ KML geografiskt komprimerat data KML sıkıştırılmış coğrafi verisi стиснуті географічні дані KML - KML 地理压缩数据 - KML 地理壓縮資料 + KML 地理压缩数据 + KML 地理壓縮資料 KML Keyhole Markup Language @@ -38836,13 +40290,18 @@ GeoJSON geospatial data + GeoJSON georuimtelike data + Географски данни — GeoJSON dades geomàtiques GeoJSON geoprostorová data GeoJSON GEoJSON-geospatiale data GeoJSON raumbezogene Daten - GeoJSON geospatial data + GeoJSON geospatial data datos geoespaciales en GeoJSON + GeoJSON geomatika datua + GeoJSON-paikkatiedot données géospatiales GeoJSON + dâts gjeo-spaziâls GeoJSON sonraí geospásúla GeoJSON GeoJSON geoprostorni podaci GeoJSON téradatok @@ -38851,15 +40310,15 @@ GeoJSON геокеңістіктік деректері GeoJSON 지리 정보 데이터 Dane geoprzestrzenne GeoJSON - Dados geoespaciais GeoJSON + Dados geoespaciais GeoJSON Геопространственные данные GeoJSON Geopriestorové údaje GeoJSON ГеоЈСОН геопросторни подаци Geospatialt GeoJSON-data - GeoJSON coğrafi veriler + GeoJSON coğrafi verileri геопросторові дані GeoJSON - GeoJSON 地理空间数据 - GeoJSON 地理空間資料 + GeoJSON 地理空间数据 + GeoJSON 地理空間資料 @@ -38867,15 +40326,18 @@ GPX geographic data + GPX geografiese data + Географски данни — GPX dades geogràfiques GPX geografická data GPX GPX-geografiske data GPX geographische Daten - GPX geographic data + GPX geographic data datos geográficos en GPX GPX datu geografikoak GPX-paikkatieto données géographiques GPX + dâts gjeografics GPX sonraí geografacha GPX נתונים גאוגרפיים GPX GPX geografski podaci @@ -38886,15 +40348,15 @@ GPX 지리 공간정보 데이터 Donadas geograficas GPX Dane geograficzne GPX - Dados geográficos GPX + Dados geográficos GPX Географические данные GPX Zemepisné údaje GPX ГПИкс географски подаци GPX geografisk data GPX coğrafi verileri географічні дані GPX - GPX 地理数据 - GPX 地理資料 + GPX 地理数据 + GPX 地理資料 GPX GPS Exchange Format @@ -38907,20 +40369,22 @@ Citrix ICA settings file + Citrix ICA-instellingslêer ملف إعدادات Citrix ICA - Fajł naładaŭ Citrix ICA + Fajł naładaŭ Citrix ICA Настройки — Citrix ICA fitxer d'ajusts de Citrix ICA soubor nastavení Citrix ICA Citrix ICA-opsætningsfil Citrix-ICA-Einstellungsdatei Αρχείο ρυθμίσεων Citrix ICA - Citrix ICA settings file + Citrix ICA settings file archivo de configuración de Citrix ICA Citrix ICA ezarpenen fitxategia Citrix ICA -asetustiedosto Citrix ICA stillingarfíla fichier de paramètres ICA Citrix + file impostazions Citrix ICA comhad socruithe Citrix ICA ficheiro de configuracións de Citrix ICA קובץ הגדרות של Citrix ICA @@ -38941,7 +40405,7 @@ fichièr de paramètres ICA Citrix Plik ustawień Citrix ICA ficheiro de definições Citrix ICA - Arquivo de configuração do Citrix ICA + Arquivo de configuração do Citrix ICA Fișier de configurări Citrix ICA Файл настроек Citrix ICA Súbor nastavení Citrix ICA @@ -38952,8 +40416,8 @@ Citrix ICA ayar dosyası файл параметрів ICA Citrix Tập tin thiết lập ICA Citrix - Citrix ICA 设置文件 - Citrix ICA 設定值檔案 + Citrix ICA 设置文件 + Citrix ICA 設定值檔案 ICA Independent Computing Architecture @@ -38962,21 +40426,23 @@ XUL interface document + XUL-koppelvlakdokument مستند واجهة XUL Documentu d'interfaz XUL - Interfejsny dakument XUL - Документ — интерфейс за XUL + Interfejsny dakument XUL + Документ — интерфейс, XUL document d'interfície XUL dokument rozhraní XUL XUL-grænsefladedokument XUL-Oberflächendokument Έγγραφο διεπαφής XUL - XUL interface document + XUL interface document documento de interfaz XUL XUL interfazearen dokumentua XUL-käyttöliittymäasiakirja XUL markamótsskjal document d'interface XUL + document di interface XUL cáipéis chomhéadan XUL documento de interface XUL מסמך ממשק XUL @@ -38996,7 +40462,7 @@ document d'interfàcia XUL Dokument interfejsu XUL documento de ambiente XUL - Documento de interface XUL + Documento de interface XUL Document interfață XUL Документ интерфейса XUL Dokument rozhrania XUL @@ -39007,8 +40473,8 @@ XUL arayüz belgesi документ інтерфейсу XUL Tài liệu giao diện XUL - XUL 界面文档 - XUL 介面文件 + XUL 界面文档 + XUL 介面文件 XUL XML User interface markup Language @@ -39018,6 +40484,7 @@ XPInstall installer module + XPInstall-installasiemodule وحدة مثبت XPInstall Пакет — инсталация XPInstall mòdul de l'instal·lador XPinstall @@ -39025,12 +40492,13 @@ XPInstall-installationsmodul XPInstall-Installationsmodul Άρθρωμα εγκατάστασης XPInstall - XPInstall installer module + XPInstall installer module módulo del instalador XPInstall XPInstall instalatzailearen modulua XPInstall-asennuspaketti XPInstall innleggjaramótul module d'installation XPInstall + modul instaladôr XPInstall modúl suiteála XPInstall Módulo do instalador XPInstall מודול התקנה של XPInstall @@ -39048,7 +40516,7 @@ modul d'installacion XPInstall Moduł instalatora XPInstall módulo de instalador XPInstall - Módulo de instalador XPInstall + Módulo de instalador XPInstall Modul de instalare XPInstall Модуль установщика XPInstall Modul inštalátora XPInstall @@ -39057,13 +40525,14 @@ XPInstall-installeringsmodul XPInstall kurulum modülü модуль засобу встановлення XPInstall - XPInstall 安装工具模块 - XPInstall 安裝程式模組 + XPInstall 安装工具模块 + XPInstall 安裝程式模組 Word 2007 document + Word 2007-dokument مستند Word 2007 Documentu de Word 2007 Документ — Word 2007 @@ -39072,12 +40541,13 @@ Word 2007-dokument Word-2007-Dokument Έγγραφο Word 2007 - Word 2007 document + Word 2007 document documento de Word 2007 Word 2007 dokumentua Word 2007 -asiakirja Word 2007 skjal document Word 2007 + document Word 2007 cáipéis Word 2007 documento de Word 2007 מסמך Word 2007 @@ -39095,7 +40565,7 @@ document Word 2007 Dokument Word 2007 documento Word 2007 - Documento do Word 2007 + Documento do Word 2007 Document Word 2007 Документ Word 2007 Dokument Word 2007 @@ -39105,14 +40575,15 @@ Word 2007 belgesi документ Word 2007 Tài liệu Word 2007 - Word 2007 文档 - Word 2007 文件 + Word 2007 文档 + Word 2007 文件 Word 2007 document template + Word 2007-dokumentsjabloon Plantía de documentu de Word 2007 Шаблон за документи — Word 2007 plantilla de document de Word 2007 @@ -39120,11 +40591,12 @@ Word 2007-dokumentskabelon Word-2007-Dokumentvorlage Πρότυπο έγγραφο Word 2007 - Word 2007 document template + Word 2007 document template plantilla de documento de Word 2007 Word 2007 dokumentuaren txantiloia Word 2007 -asiakirjamalli modèle de document Word 2007 + model document Word 2007 teimpléad cháipéis Word 2007 Plantilla de documento de Word 2007 תבנית מסמך של Word 2007 @@ -39142,7 +40614,7 @@ modèl de document Word 2007 Szablon dokumentu Word 2007 modelo de documento Word 2007 - Modelo de documento do Word 2007 + Modelo de documento do Word 2007 Шаблон документа Word 2007 Šablóna dokumentu Word 2007 Predloga dokumenta Word 2007 @@ -39150,14 +40622,15 @@ Word 2007-dokumentmall Word 2007 belge şablonu шаблон документа Word 2007 - Word 2007 文档模板 - Word 2007 文件範本 + Word 2007 文档模板 + Word 2007 文件範本 PowerPoint 2007 presentation + PowerPoint 2007-voorlegging عرض تقديمي PowerPoint 2007 Презентация — PowerPoint 2007 presentació de PowerPoint 2007 @@ -39165,12 +40638,13 @@ PowerPoint 2007-præsentation PowerPoint-2007-Präsentation Παρουσίαση PowerPoint 2007 - PowerPoint 2007 presentation + PowerPoint 2007 presentation presentación de PowerPoint 2007 PowerPoint 2007 aurkezpena PowerPoint 2007 -esitys PowerPoint 2007 framløga présentation PowerPoint 2007 + presentazion PowerPoint 2007 láithreoireacht PowerPoint 2007 presentación de PowerPoint 2007 מצגת של PowerPoint 2007 @@ -39188,7 +40662,7 @@ presentacion PowerPoint 2007 Prezentacja PowerPoint 2007 apresentação PowerPoint 2007 - Apresentação do PowerPoint 2007 + Apresentação do PowerPoint 2007 Prezentare PowerPoint 2007 Презентация PowerPoint 2007 Prezentácia PowerPoint 2007 @@ -39198,25 +40672,27 @@ PowerPoint 2007 sunumu презентація PowerPoint 2007 Trình diễn PowerPoint 2007 - PowerPoint 2007 演示文稿 - PowerPoint 2007 簡報 + PowerPoint 2007 演示文稿 + PowerPoint 2007 簡報 PowerPoint 2007 slide + PowerPoint 2007-skyfie Кадър — PoerPoint 2007 dispositiva de PowerPoint 2007 snímek PowerPoint 2007 PowerPoint 2007-slide PowerPoint 2007-Folie Διαφάνεια PowerPoint 2007 - PowerPoint 2007 slide + PowerPoint 2007 slide diapositiva de PowerPoint 2007 PowerPoint 2007 diapositiba PowerPoint 2007 -dia diapositive PowerPoint 2007 + diapositive PowerPoint 2007 sleamhnán PowerPoint 2007 Diaporama de PowerPoint 2007 שקופית של PowerPoint 2007 @@ -39234,7 +40710,7 @@ diapositive PowerPoint 2007 Slajd PowerPoint 2007 diapositivo PowerPoint 2007 - Slide do PowerPoint 2007 + Slide do PowerPoint 2007 Слайд PowerPoint 2007 Snímka PowerPoint 2007 Prosojnica PowerPoint 2007 @@ -39242,14 +40718,15 @@ PowerPoint 2007-bildspel PowerPoint 2007 slaytı слайд PowerPoint 2007 - PowerPoint 2007 幻灯片 - PowerPoint 2007 投影片 + PowerPoint 2007 幻灯片 + PowerPoint 2007 投影片 PowerPoint 2007 show + PowerPoint 2007-vertoning عرض PowerPoint 2007 Презентация-шоу — PowerPoint 2007 exposició de PowerPoint 2007 @@ -39257,12 +40734,13 @@ PowerPoint 2007-dias PowerPoint-2007-Präsentation Παρουσίαση PowerPoint 2007 - PowerPoint 2007 show + PowerPoint 2007 show presentación autoejecutable de PowerPoint 2007 PowerPoint 2007 ikuskizuna PowerPoint 2007 -diaesitys PowerPoint 2007 framsýning diaporama PowerPoint 2007 + esecuzion presentazion PowerPoint 2007 taispeántas PowerPoint 2007 Exposición de PowerPoint 2007 תצוגה של PowerPoint 2007 @@ -39280,7 +40758,7 @@ diaporama PowerPoint 2007 Pokaz PowerPoint 2007 espetáculo PowerPoint 2007 - Apresentação do PowerPoint 2007 + Apresentação do PowerPoint 2007 Prezentare PowerPoint 2007 Презентация PowerPoint 2007 Ukážka PowerPoint 2007 @@ -39289,25 +40767,27 @@ PowerPoint 2007-visning PowerPoint 2007 gösterisi показ слайдів PowerPoint 2007 - PowerPoint 2007 放映 - PowerPoint 2007 展示 + PowerPoint 2007 放映 + PowerPoint 2007 展示 PowerPoint 2007 presentation template + PowerPoint 2007-voorleggingsjabloon Шаблон за презентации — PowerPoint 2007 plantilla de presentació de PowerPoint 2007 šablona prezentace PowerPoint 2007 PowerPoint 2007-præsentationsskabelon PowerPoint 2007-Präsentationsvorlage Πρότυπο παρουσίασης PowerPoint 2007 - PowerPoint 2007 presentation template + PowerPoint 2007 presentation template plantilla de presentación de PowerPoint 2007 PowerPoint 2007 aurkezpen txantiloia PowerPoint 2007 -esitysmalli modèle de présentation PowerPoint 2007 + model presentazion PowerPoint 2007 teimpléad láithreoireachta PowerPoint 2007 modelo de presentación de PowerPoint 2007 תבנית למצגת של PowerPoint 2007 @@ -39325,7 +40805,7 @@ modèl de presentacion PowerPoint 2007 Szablon prezentacji PowerPoint 2007 modelo de apresentação PowerPoint 2007 - Modelo de apresentação do PowerPoint 2007 + Modelo de apresentação do PowerPoint 2007 Шаблон презентации PowerPoint 2007 Šablóna prezentácie PowerPoint 2007 Predloga predstavitve PowerPoint 2007 @@ -39333,14 +40813,15 @@ PowerPoint 2007-presentationsmall PowerPoint 2007 sunum şablonu шаблон презентації PowerPoint 2007 - PowerPoint 2007 演示文稿模板 - PowerPoint 2007 簡報範本 + PowerPoint 2007 演示文稿模板 + PowerPoint 2007 簡報範本 Excel 2007 spreadsheet + Excel 2007-sigblad جدول Excel 2007 Таблица — Excel 2007 full de càlcul d'Excel 2007 @@ -39348,12 +40829,13 @@ Excel 2007-regneark Excel-2007-Tabelle Λογιστικό φύλλο Excel 2007 - Excel 2007 spreadsheet + Excel 2007 spreadsheet hoja de cálculo de Excel 2007 Excel 2007 kalkulu-orria Excel 2007 -taulukko Excel 2007 rokniark feuille de calcul Excel 2007 + sfuei di calcul Excel 2007 scarbhileog Excel 2007 folla de cálculo de Excel 2007 גליון נתונים של Excel 2007 @@ -39372,35 +40854,37 @@ fuèlh de calcul Excel 2007 Arkusz Excel 2007 folha de cálculo Excel 2007 - Planilha do Excel 2007 + Planilha do Excel 2007 Foaie de calcul Excel 2007 Электронная таблица Excel 2007 Zošit Excel 2007 Razpredelnica Microsoft Excel 2007 табела Ексела 2007 Excel 2007-kalkylblad - Excel 2007 çalışma sayfası + Excel 2007 hesap çizelgesi sayfası ел. таблиця Excel 2007 Bảng tính Excel 2007 - Excel 2007 电子表格 - Excel 2007 試算表 + Excel 2007 电子表格 + Excel 2007 試算表 Excel 2007 spreadsheet template + Excel 2007-sigbladsjabloon Шаблон за таблици — Excel 2007 plantilla de full de càlcul d'Excel 2007 šablona sešitu Excel 2007 Excel 2007-regnearksskabelon Excel 2007-Tabellenvorlage Πρότυπο λογιστικού φύλλου Excel 2007 - Excel 2007 spreadsheet template + Excel 2007 spreadsheet template plantilla de hoja de cálculo de Excel 2007 Excel 2007 kalkulu-orri txantiloia Excel 2007 -taulukkomalli modèle de feuille de calcul Excel 2007 + model sfuei di calcul Excel 2007 teimpléad scarbhileoige Excel 2007 modelo de folla de cálculo Excel 2007 תבנית של גיליון נתונים של Excel 2007 @@ -39418,38 +40902,40 @@ modèl de fuèlh de calcul Excel 2007 Szablon arkusza Excel 2007 modelo de folha de cálculo Excel 2007 - Modelo de planilha do Excel 2007 + Modelo de planilha do Excel 2007 Шаблон электронной таблицы Excel 2007 Šablóna zošitu Excel 2007 Predloga razpredelnice Excel 2007 шаблон табеле Ексела 2007 Excel 2007-kalkylarksmall - Excel 2007 çalışma sayfası şablonu + Excel 2007 hesap çizelgesi şablonu шаблон електронної таблиці Excel 2007 - Excel 2007 电子表格模板 - Excel 2007 試算表範本 + Excel 2007 电子表格模板 + Excel 2007 試算表範本 T602 document + T602-dokument مستند T602 Documentu T602 - Dakument T602 + Dakument T602 Документ — T602 document T602 dokument T602 T602-dokument T602-Dokument Έγγραφο T602 - T602 document + T602 document T602-dokumento documento T602 T602 dokumentua T602-asiakirja T602 skjal document T602 + document T602 cáipéis T602 documento T602 מסמך T602 @@ -39469,7 +40955,7 @@ document T602 Dokument T602 documento T602 - Documento T602 + Documento T602 Document T602 Документ T602 Dokument T602 @@ -39480,75 +40966,54 @@ T602 belgesi документ T602 Tài liệu T602 - T602 文档 - T602 文件 + T602 文档 + T602 文件 - - - + + + - Cisco VPN Settings - إعدادات Cisco VPN - Nałady Cisco VPN + Cisco VPN settings Настройки — ВЧМ на Cisco ajusts VPN de Cisco - nastavení Cisco VPN - Cisco VPN-opsætning + Cisco VPN-indstillinger Cisco-VPN-Einstellungen - Ρυθμίσεις Cisco VPN - Cisco VPN Settings - configuración de VPN de Cisco + Cisco VPN settings + configuración de Cisco VPN Cisco VPN ezarpenak - Cisco VPN -asetukset - Cisco VPN stillingar + Ciscon VPN-asetukset paramètres VPN Cisco - socruithe VPN Cisco - configuracións de VPN de Cisco - הגדרות של Cisco VPN Cisco VPN postavke Cisco VPN beállítások - Configuration VPN Cisco - Penataan Cisco VPN + Pengaturan VPN Cisco Impostazioni VPN Cisco - Cisco VPN 設定 - Cisco VPN-ის პარამეტრები Cisco VPN баптаулары - Cisco VPN 설정 - Cisco VPN parametrai - Cisco VPN iestatījumi - Cisco VPN-innstillinger - Cisco VPN-instellingen - Cisco VPN-innstillingar - paramètres VPN Cisco + 시스코 VPN 설정 Ustawienia VPN Cisco - definições de Cisco VPN - Configurações de VPN da Cisco - Configurări VPN Cisco + Configurações de VPN da Cisco Файл настроек Cisco VPN Nastavenia Cisco VPN - Datoteka nastavitev Cisco VPN - Rregullime VPN Cisco - подешавања Циско ВПН-а + Nastavitve Cisco VPN Cisco VPN-inställningar - Cisco VPN Ayarları + Cisco VPN ayarları параметри VPN Cisco - Thiết lập VPN Cisco - Cisco VPN 设置 - Cisco VPN 設定值 + Cisco VPN 设置 + Cisco VPN 設定 - - + + ICC profile + ICC-profiel تشكيلة OCL Perfil ICC Цветови профил — OCL @@ -39557,13 +41022,14 @@ ICC-profil ICC-Profil Προφίλ ICC - ICC profile + ICC profile ICC-profilo perfil ICC ICC profila ICC-profiili ICC umhvarv profil ICC + profîl ICC próifíl ICC perfíl ICC פרופיל ICC @@ -39581,7 +41047,7 @@ perfil ICC Profil ICC perfil ICC - Perfil ICC + Perfil ICC Profil ICC Профиль ICC Profil farieb ICC @@ -39590,10 +41056,10 @@ ICC-profil ICC profili профіль ICC - ICC 配置文件 - ICC 設定檔 + ICC 配置文件 + ICC 設定組合 - + @@ -39601,18 +41067,19 @@ IT 8.7 color calibration file ملف ضبط ألوان IT 8.7 - Файл за цветово калибриране — IT 8.7 + Цветово калибриране — IT 8.7 fitxer de calibratge de color IT 8.7 soubor kalibrace barev IT 8.7 IT 8.7 farvekalibreringsfil IT 8.7-Farbkalibrierungsdatei Αρχείο βαθμονόμησης χρώματος ΙΤ 8.7 - IT 8.7 color calibration file + IT 8.7 color calibration file archivo de calibración de color IT 8.7 IT 8.7 kolore-kalibrazioaren fitxategia IT 8.7 -värikalibrointitiedosto IT 8.7 litstillingarfíla fichier de calibration couleur IT 8.7 + file calibradure colôr IT 8.7 comhad calabraithe dathanna IT 8.7 ficheiro de calibración de cor IT 8.7 קובץ כיול צבע IT 8.7 @@ -39630,7 +41097,7 @@ fichièr de calibracion color IT 8.7 Plik kalibracji kolorów IT 8.7 ficheiro de calibração de cor IT 8.7 - Arquivo de calibração de cor IT 8.7 + Arquivo de calibração de cor IT 8.7 Fișier de calibrare a culorii IT 8.7 Файл калибровки цвета IT 8.7 Súbor kalibrácie farieb IT 8.7 @@ -39639,10 +41106,10 @@ IT 8.7-färgkalibreringsfil IT 8.7 renk kalibrasyon dosyası файл калібрування кольорів IT 8.7 - IT 8.7 色彩校准文件 - IT 8.7 色彩校正檔 + IT 8.7 色彩校准文件 + IT 8.7 色彩校正檔 - + @@ -39650,16 +41117,18 @@ CCMX color correction file + Цветови поправки — CCMX fitxer de correcció de color CCMX soubor korekce barev CCMX CCMX-farvekorrektionsfil CCMX-Farbkorrekturdatei Αρχείο διόρθωσης χρωμάτων CCMX - CCMX colour correction file + CCMX colour correction file archivo de corrección de color CCMX CCMX kolore-kalibrazioaren fitxategia CCMX-värikorjaustiedosto fichier de correction colorimétrique CCMX + file corezion colôr CCMX comhad ceartúchán dathanna CCMX Ficheiro de corrección de cor CCMX קובץ תיקון צבע מסוג CCMX @@ -39675,7 +41144,7 @@ fichièr de correccion colorimetrica CCMX Plik korekcji kolorów CCMX ficheiro de correção de cor CCMX - Arquivo de correção de cor CCMX + Arquivo de correção de cor CCMX Файл цветовой коррекции CCMX Súbor korekcie farieb CCMX Datoteka barvne poprave CCMX @@ -39683,10 +41152,10 @@ CCMX-färgkorrigeringsfil CCMX renk düzeltme dosyası файл даних виправлення кольорів CCMX - CCMX 色彩校准文件 - CCMX 色彩校正檔 + CCMX 色彩校准文件 + CCMX 色彩校正檔 - + @@ -39694,16 +41163,19 @@ WinHelp help file + WinHelp-hulplêer + Помощен файл — WinHelp fitxer d'ajuda WinHelp soubor nápovědy WinHelp WinHelp-hjælpefil WinHelp-Hilfedatei Αρχείο βοήθειας WinHelp - WinHelp help file + WinHelp help file archivo de ayuda de WinHelp WinHelp laguntza fitxategia WinHelp-ohjetiedosto fichier d'aide WinHelp + file di jutori WinHelp comhad cabhrach WinHelp Ficheiro de axuda WinHelp קובץ עזרה מסוג WinHelp @@ -39719,7 +41191,7 @@ fichièr d'ajuda WinHelp Plik pomocy WinHelp ficheiro de ajuda WinHelp - Arquivo de ajuda WinHelp + Arquivo de ajuda WinHelp Файл справки WinHelp Súbor Pomocníka WinHelp Datoteka pomoči WinHelp @@ -39727,24 +41199,27 @@ WinHelp-hjälpfil WinHelp yardım dosyası файл довідки WinHelp - WinHelp 帮助文件 - WinHelp 說明檔 + WinHelp 帮助文件 + WinHelp 說明檔 - + binary differences between files + двоична разлика между файлове diferencies binàries entre fitxers binární rozdíl mezi soubory binære forskelle mellem filer binäre Unterschiede zwischen Dateien - binary differences between files + binary differences between files diferencias entre archivos binarios fitxategi binarioen arteko ezberdinstasunak + binaariset erot tiedostojen välillä différences binaires entre fichiers + diferencis binariis tra file difríochtaí dénártha idir comhaid הבדלים בינריים בין קבצים Binarne razlike između datoteka @@ -39754,40 +41229,42 @@ файлдар арасындағы бинарлық айырмашылықтар 바이너리 차이 비교 파일 Binarna różnica pomiędzy plikami - Diferenças binárias entre arquivos + Diferenças binárias entre arquivos Двоичные различия между файлами Binárne rozdiely medzi súbormi бинарне разлике датотека binära skillnader mellan filer dosyalar arasındaki ikilik farklar двійкова різниця між файлами - 文件的二进制区别 - 檔案間的二進位差異 + 文件的二进制区别 + 檔案間的二進位差異 - - + + - + - + digital photos + digitale foto’s الصور الرقمية - ličbavyja zdymki + ličbavyja zdymki Цифрови фотографии fotos digitals digitální fotografie digitale billeder Digitale Fotos Ψηφιακές φωτογραφίες - digital photos + digital photos fotos digitales argazki digitalak digivalokuvia talgildar myndir photos numériques + fotos digjitâls grianghraif dhigiteacha fotos dixitais תמונות דיגיטליות @@ -39806,7 +41283,7 @@ fòtos numericas Zdjęcia cyfrowe fotografias digitais - Fotos digitais + Fotos digitais fotografii digitale Цифровые фотографии Digitálne fotografie @@ -39817,32 +41294,36 @@ sayısal fotoğraflar цифрові фотографії ảnh chụp số - 数字化图像 - 數位相片 + 数字化图像 + 數位相片 - + - + Video CD + Video-CD Video CD CD de videu - Videa CD + Videa CD CD — видео Video CD Video CD Video-cd Video-CD Video CD - Video CD + Video CD Video-KD Video CD Bideo CDa Video CD Video CD CD vidéo + Video CD dlúthdhiosca físe Video CD תקליטור וידאו @@ -39861,7 +41342,7 @@ CD vidèo Video CD Video CD - CD de vídeo + CD de vídeo CD video Видео CD Video CD @@ -39872,32 +41353,36 @@ Video CD Video CD Đĩa CD ảnh động - VCD - Video CD + VCD + Video CD - + - + Super Video CD + Super Video-CD Super Video CD CD de Super Video - Super Video CD + Super Video CD CD — супер видео Super Video CD Super Video CD Super Video-cd Super-Video-CD Super Video CD - Super Video CD + Super Video CD Super-Video-KD Super Video CD Super Bideo CDa Super Video CD Super Video CD Super VCD + Super Video CD dlúthdhiosca Super Video Super vídeo CD Super Video CD @@ -39916,7 +41401,7 @@ Super VCD Super Video CD Super Video CD - CD de Super Vídeo (SVCD) + CD de Super Vídeo (SVCD) Super Video CD Super Video CD Super Video CD @@ -39927,32 +41412,34 @@ Super Video CD Super Video CD Đĩa CD siêu ảnh động - SVCD - Super Video CD + SVCD + Super Video CD - + - + video DVD + video-DVD DVD مرئي DVD de videu - videa DVD + videa DVD DVD — видео - DVD-Video + DVD de video videodisk DVD video-dvd Video-DVD Βίντεο DVD - video DVD + video DVD video-DVD DVD de vídeo bideo DVDa video-DVD video DVD DVD vidéo + DVD video DVD físe DVD de vídeo DVD וידאו @@ -39972,7 +41459,7 @@ DVD vidèo DVD-Video DVD vídeo - DVD de vídeo + DVD de vídeo DVD video Видео DVD DVD-Video @@ -39983,34 +41470,36 @@ video DVD відео-DVD đĩa DVD ảnh động - 视频 DVD - 視訊 DVD + 视频 DVD + 視訊 DVD - - - - + + + + - + audio CD + oudio-CD CD سمعي - aŭdyjo CD + aŭdyjo CD CD — аудио CD d'àudio zvukové CD lyd-cd Audio-CD CD ήχου - audio CD + audio CD Son-KD - CD de sonido + CD de audio Audio CDa ääni-CD audio CD CD audio + CD audio dlúthdhiosca fuaime CD de son תקליטור שמע @@ -40029,7 +41518,7 @@ CD àudio CD-Audio CD áudio - CD de áudio + CD de áudio CD audio Аудио CD Zvukové CD @@ -40037,30 +41526,32 @@ CD audio звучни ЦД ljud-cd - Müzik CD'si + ses CD'si звуковий CD đĩa CD âm thanh - 音频 CD - 音訊 CD + 音频 CD + 音訊 CD - + blank CD disc + skoon CD-skyf قرص CD فارغ - čysty dysk CD + čysty dysk CD CD — празно disc CD en blanc prázdný disk CD tom cd-disk Leere CD Κενό CD - blank CD disc + blank CD disc disco CD en blanco CD disko hutsa tyhjä CD-levy blonk fløga CD vierge + disc CD vueit dlúthdhiosca folamh disco de CD en brancho תקליטור ריק @@ -40079,7 +41570,7 @@ CD verge Pusta płyta CD CD vazio - Disco CD vazio + Disco CD vazio disc gol CD Чистый диск CD Prázdny disk CD @@ -40090,27 +41581,29 @@ boş CD diski порожній компакт-диск đĩa CD trống - 空 CD 光盘 - 空白 CD 光碟 + 空 CD 光盘 + 空白 CD 光碟 - + blank DVD disc + skoon DVD-skyf قرص DVD فارغ - čysty dysk DVD + čysty dysk DVD DVD — празно disc DVD en blanc prázdný disk DVD tom dvd-disk Leere DVD Κενό DVD - blank DVD disc + blank DVD disc disco DVD en blanco DVD disko hutsa tyhjä DVD-levy blonk margfløga DVD vierge + disc DVD vueit DVD folamh disco de DVD en branco תקליטור DVD ריק @@ -40129,7 +41622,7 @@ DVD verge Pusta płyta DVD DVD vazio - Disco DVD vazio + Disco DVD vazio disc gol DVD Чистый диск DVD Prázdny disk DVD @@ -40140,27 +41633,29 @@ boş DVD diski порожній диск DVD đĩa DVD trống - 空 DVD 光盘 - 空白 DVD 光碟 + 空 DVD 光盘 + 空白 DVD 光碟 - + blank Blu-ray disc + skoon Blu-ray-skyf قرص بلو-راي فارغ - čysty dysk Blu-ray + čysty dysk Blu-ray Blu-ray — празно disc Blu-Ray en blanc prázdný disk Blu-ray tom Blu-ray-disk Leere Blu-ray-Scheibe Κενό Blu-ray - blank Blu-ray disc + blank Blu-ray disc disco Blu-ray en blanco Blu-ray disko hutsa tyhjä Blu-ray-levy blankur Blu-ray diskur disque Blu-Ray vierge + disc Blu-ray vueit diosca folamh Blu-Ray disco Blu-ray en branco תקליטור בלו־ריי ריק @@ -40179,7 +41674,7 @@ disc Blu-Ray verge Pusta płyta Blu-ray Blu-Ray vazio - Disco Blu-ray vazio + Disco Blu-ray vazio disc gol Blu-ray Чистый диск Blu-ray Prázdny disk Blu-ray @@ -40187,30 +41682,32 @@ Disk bosh Blu-ray празан Блу-реј диск tom Blu-ray-skiva - boş Blue-ray diski + boş Blu-ray diski порожній диск Blu-ray đĩa Blu-ray trống - 空蓝光 DVD - 空白 Blu-ray 光碟 + 空蓝光 DVD + 空白 Blu-ray 光碟 - + blank HD DVD disc + skoon HD-DVD-skyf قرص HD DVD فارغ - čysty dysk HD DVD + čysty dysk HD DVD HD DVD — празно disc HD-DVD en blanc prázdný disk HD DVD tom HD dvd-disk Leere HD-DVD Κενό HD DVD - blank HD DVD disc + blank HD DVD disc disco HD DVD en blanco HD DVD disko hutsa tyhjä HD DVD -levy blankur HD DVD diskur disque HD-DVD vierge + disc HD DVD vueit HD DVD folamh disco de HD DVD en branco דיסק HD DVD ריק @@ -40229,7 +41726,7 @@ disc HD-DVD verge Pusta płyta HD DVD HD DVD vazio - Disco HD DVD vazio + Disco HD DVD vazio disc gol HD DVD Чистый диск HD DVD Prázdny disk HD DVD @@ -40240,28 +41737,30 @@ boş HD DVD diski порожній диск HD DVD đĩa DVD HD trống - 空 HD DVD 光盘 - 空白 HD DVD 光碟 + 空 HD DVD 光盘 + 空白 HD DVD 光碟 - + audio DVD + oudio-DVD DVD سمعي - aŭdyjo DVD + aŭdyjo DVD DVD — аудио DVD d'àudio zvukové DVD lyd-dvd Audio-DVD DVD ήχου - audio DVD + audio DVD Son-DVD - DVD de sonido + DVD de audio audio DVDa ääni-DVD Ljóð DVD DVD audio + DVD audio DVD fuaime DVD de son DVD שמע @@ -40280,7 +41779,7 @@ DVD àudio DVD-Audio DVD áudio - DVD de áudio + DVD de áudio DVD audio Аудио DVD Zvukové DVD @@ -40288,35 +41787,38 @@ DVD audio звучни ДВД ljud-dvd - Müzik DVD'si + ses DVD'si звуковий DVD đĩa DVD âm thanh - 音频 DVD - 音訊 DVD + 音频 DVD + 音訊 DVD - - + + - + Blu-ray video disc + Blu-ray-videoskyf قرص بلو-راي مرئي Discu Blu-ray de videu - Videadysk Blu-ray + Videadysk Blu-ray Blu-ray — видео disc de vídeo Blu-Ray videodisk Blu-ray - Blu-ray video-disk + Blu-ray-videodisk Blu-ray-Videoscheibe Δίσκος βίντεο Blu-ray - Blu-ray video disc + Blu-ray video disc disco de vídeo Blu-ray Blu-ray bideo-diskoa Blu-ray-videolevy Blu-ray diskur disque vidéo Blu-Ray + disc video Blu-ray diosca físe Blu-Ray disco de vídeo Blu-ray תקליטור וידאו מסוג בלו־ריי @@ -40336,7 +41838,7 @@ disc vidèo Blu-Ray Płyta wideo Blu-ray Blu-ray de vídeo - Disco de vídeo Blu-ray + Disco de vídeo Blu-ray Disc video Blu-ray Видеодиск Blu-ray Videodisk Blu-ray @@ -40347,32 +41849,35 @@ Blu-ray video diski відеодиск Blu-ray Đĩa ảnh động Blu-ray - 蓝光视频光盘 - Blu-ray 視訊光碟 + 蓝光视频光盘 + Blu-ray 視訊光碟 - - + + - + HD DVD video disc + HD-DVD-videoskyf قرص HD DVD مرئي Discu HD DVD de videu - Videadysk HD DVD + Videadysk HD DVD HD DVD — видео disc de vídeo HD-DVD Videodisk HD DVD HD DVD-videodisk HD-DVD-Videoscheibe Δίσκος βίντεο HD DVD - HD DVD video disc + HD DVD video disc disco de vídeo HD DVD HD DVD bideo-diskoa HD DVD -videolevy HD DVD video diskur disque vidéo HD DVD + disc video HD DVD diosca físe HD DVD disco de vídeo HD DVD תקליטור וידאו HD DVD @@ -40391,7 +41896,7 @@ disc vidèo HD DVD Płyta wideo HD DVD HD DVD de vídeo - Disco de vídeo HD DVD + Disco de vídeo HD DVD Disc video HD DVD Видеодиск HD DVD Videodisk HD DVD @@ -40402,36 +41907,38 @@ HD DVD vidyo diski відеодиск HD DVD Đĩa ảnh động DVD HD - HD DVD 视频光盘 - HD DVD 視訊光碟 + HD DVD 视频光盘 + HD DVD 視訊光碟 - - - + + + - + e-book reader + e-boekleser Четец на е-книги lector de llibres electrònics čtečka elektronických knih e-bogslæser E-Book-Leser Αναγνώστης ηλεκτρονικών βιβλίων - e-book reader + e-book reader lector de libros electrónicos e-book irakurlea e-kirjan lukulaite lecteur de livre numérique + letôr e-book léitheoir r-leabhair lector de libros electrónicos קורא ספרים אלקטרוניים Čitač e-knjiga e-könyvolvasó Lector de libro electronic - Pembaca e-book + pembaca e-book Lettore e-book 電子書籍リーダー электронды кітаптарды оқу құрылғысы @@ -40441,7 +41948,7 @@ lector de libre numeric Czytnik e-booków leitor de ebooks - Leitor de e-book + Leitor de e-book Устройство для чтения электронных книг Čítačka e-kníh Bralnik elektronskih knjig @@ -40449,31 +41956,35 @@ e-bokläsare e-kitap okuyucu пристрій для читання електронних книг - 电子书阅读器 - e-book 閱讀器 + 电子书阅读器 + e-book 閱讀器 - + - + Picture CD + Picture CD Picture CD - Picture CD - CD — изображения - Picture CD + Picture CD + Picture CD — изображения + CD d'imatges Picture CD Billedcd Picture CD CD εικόνων - Picture CD + Picture CD Picture CD Picture CD Picture CD Picture CD CD Picture + Picture CD dlúthdhiosca grianghraf Picture CD תקליטור תמונות @@ -40492,7 +42003,7 @@ CD Picture Picture CD Picture CD - CD de Fotos + CD de Fotos CD cu fotografii Picture CD Picture CD @@ -40503,30 +42014,32 @@ Resim CD'si CD з зображеннями Đĩa CD ảnh - 柯达 Picture CD - 圖片 CD + 柯达 Picture CD + 圖片 CD - + - + portable audio player + draagbare oudiospeler مشغل الملفات المسموعة المحمولة - pieranosny aŭdyjoplayer + pieranosny aŭdyjoplayer Преносим аудио плеър reproductor d'àudio portàtil přenosný zvukový přehrávač bærbar lydafspiller Portables Audio-Wiedergabegerät Φορητός αναπαραγωγέας μουσικής - portable audio player - dispositivo de sonido portátil + portable audio player + reproductor de audio portátil audio erreproduzigailu eramangarria siirrettävä äänisoitin leysur ljóðavspælari lecteur audio portable + riprodutôr audio portatil seinnteoir iniompartha fuaime dispositivo de son portábel נגן מוזיקה נייד @@ -40545,7 +42058,7 @@ lector àudio portable Przenośny odtwarzacz dźwięku reprodutor áudio portátil - Reprodutor de áudio portátil + Reprodutor de áudio portátil player audio portabil Портативный аудиопроигрыватель Prenosný hudobný prehrávač @@ -40556,27 +42069,62 @@ taşınabilir ses oynatıcısı портативний аудіопрогравач bộ phát nhạc di động - 便携式音频播放器 - 可攜式音訊播放程式 + 便携式音频播放器 + 可攜式音訊播放程式 + + + + + OSTree software updates + Обновление — OSTree + actualitzacions de programari OSTree + OSTree-softwareopdateringer + OSTree-Softwareaktualisierungen + OSTree software updates + actualizaciones de programas de OSTree + OSTree software eguneraketak + OSTree-ohjelmistopäivitykset + mises à jour logicielles OSTree + OSTree nadopune softvera + OSTree szoftverfrissítések + Pemutakhiran perangkat lunak OSTree + Aggiornamenti software OSTree + OSTree бағдарламалық қамтама жаңартулары + OSTree 소프트웨어 업데이트 + Aktualizacje oprogramowania OSTree + Atualizações de software OSTree + OSTree programvaruuppdateringar + OSTree yazılım güncellemeleri + оновлення програмного забезпечення OSTree + OSTree 软件更新 + OSTree 軟體更新 + + + + + - + software + sagteware برنامج - prahrama + prahrama Софтуер programari software software Software Λογισμικό - software + software software softwarea ohjelmisto ritbúnaður logiciel + software bogearraí software תכנה @@ -40596,7 +42144,7 @@ logicial Oprogramowanie programa - Aplicativo + Aplicativo software Программное обеспечение Softvér @@ -40607,26 +42155,29 @@ yazılım програмне забезпечення phần mềm - 软件 - 軟體 + 软件 + 軟體 - + UNIX software + UNIX-sagteware برنامج يونكس - Софтуер за UNIX + Софтуер — UNIX programari d'UNIX software systému UNIX UNIX-programmer UNIX-Software Λογισμικό UNIX - UNIX software + UNIX software software de UNIX UNIXeko softwarea UNIX-ohjelmisto UNIX ritbúnaður logiciel UNIX + software UNIX bogearraí UNIX Software de UNIX תכנה ל־UNIX @@ -40644,7 +42195,7 @@ logicial UNIX Oprogramowanie systemu UNIX programa UNIX - Aplicativo UNIX + Aplicativo UNIX Software UNIX Программа UNIX Softvér UNIX @@ -40653,19 +42204,21 @@ UNIX-programvara UNIX yazılımı програмне забезпечення UNIX - UNIX 软件 - UNIX 軟體 + UNIX 软件 + UNIX 軟體 - - - + + + - + Windows software + Windows-sagteware برنامج ويندوز Софтуер — Windows programari de Windows @@ -40673,12 +42226,13 @@ Windowsprogram Windows-Software Λογισμικό Windows - Windows software + Windows software software de Windows Windows-eko softwarea Windows-ohjelmisto Windows ritbúnaður logiciel Windows + software Windows bogearraí Windows Software de Windows תכנה ל־Windows @@ -40696,7 +42250,7 @@ logicial Windows Oprogramowanie systemu Windows programa Windows - Programa do Windows + Programa do Windows Software Windows Программа Windows Softvér Windows @@ -40705,28 +42259,31 @@ Windows-program Windows yazılımı програмне забезпечення Windows - Windows 软件 - Windows 軟體 + Windows 软件 + Windows 軟體 - - + + TriG RDF document + TriG RDF-dokument Documentu RDF TriG + Документ — TriG RDF document TriG RDF dokument Trig RDF TriG RDF-dokument TriG-RDF-Dokument Έγγραφο TriG RDF - TriG RDF document + TriG RDF document documento RDF de TriG TriG RDF dokumentua TriG RDF -asiakirja document RDF TriG + document TriG RDF cáipéis RDF TriG Documento RDF TriG מסמך RDF של TriG @@ -40740,7 +42297,7 @@ document RDF TriG Dokument RDF TriG documento TriG RDF - Documento RDF do TriG + Documento RDF do TriG Документ TriG RDF RDF dokument TriG Dokument TriG RDF @@ -40748,8 +42305,8 @@ TriG RDF-dokument TriG RDF belgesi документ RDF TriG - TriG RDF 文档 - TriG RDF 文件 + TriG RDF 文档 + TriG RDF 文件 TriG TriG RDF Graph Triple Language @@ -40757,18 +42314,21 @@ - + Apple Keynote 5 presentation - presentació Keynote 5 d'Apple + Apple Keynote 5-voorlegging + Презентация — Apple Keynote 5 + presentació d'Apple Keynote 5 prezentace Apple Keynote 5 Apple Keynote 5-præsentation Apple-Keynote-5-Präsentation Παρουσίαση Apple Keynote 5 - Apple Keynote 5 presentation + Apple Keynote 5 presentation presentación de Apple Keynote 5 Apple Keynote 5 aurkezpena Apple Keynote 5 -esitys présentation Apple Keynote 5 + presentazion Apple Keynote 5 láithreoireacht Apple Keynote 5 Presentación de Apple Keynote 5 מצגת Apple Keynote 5 @@ -40782,7 +42342,7 @@ presentacion Apple Keynote 5 Prezentacja Apple Keynote 5 apresentação Apple Keynote 5 - Apresentação do Apple Keynote 5 + Apresentação do Apple Keynote 5 Презентация Apple Keynote 5 Prezentácia Apple Keynote 5 Predstavitev Apple Keynote 5 @@ -40790,54 +42350,45 @@ Apple Keynote 5-presentation Apple Keynote 5 sunumu презентація Apple Keynote 5 - Apple Keynote 5 演示文稿 - Apple Keynote 5 簡報 + Apple Keynote 5 演示文稿 + Apple Keynote 5 簡報 - - + + - - + + - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe 페이지메이커 - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Dokument Adobe PageMaker - Адобе Пејџ Мејкер - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker - Adobe PageMaker + Adobe PageMaker document + Документ — Adobe PageMaker + document d'Adobe PageMaker + Adobe PageMaker-dokument + Adobe-PageMaker-Dokument + Adobe PageMaker document + documento de Adobe PageMaker + Adobe PageMaker dokumentua + Adobe PageMaker -asiakirja + document Adobe PageMaker + Adobe PageMaker dokument + Adobe PageMaker dokumentum + Dokume Adobe PageMaker + Documento Adobe PageMaker + Adobe PageMaker құжаты + 어도비 페이지메이커 문서 + Dokument Adobe PageMaker + Documento do Adobe PageMaker + Документ Adobe PageMaker + Dokument Adobe PageMaker + Adobe PageMaker-dokument + Adobe PageMaker belgesi + документ Adobe PageMaker + Adobe PageMaker 文档 + Adobe PageMaker 文件 @@ -40847,56 +42398,55 @@ - Doom WAD - WAD de Doom - datový balík WAD hry Doom - Doom WAD - Doom WAD - Doom WAD - WAD de Doom - Doom WAD - WAD Doom - WAD Doom - Doom WAD - Doom WAD - WAD pro Doom - WAD Doom - WAD Doom - Doom WAD - 둠 WAD + Doom WAD file + Ниво — Doom + fitxer WAD de Doom + Doom WAD-fil + Doom-WAD-Datei + Doom WAD file + archivo WAD de Doom + Doom WAD fitxategia + Doom WAD -tiedosto + fichier Doom WAD + Doom WAD datoteka + Doom WAD fájl + Berkas WAD Doom + File WAD Doom + Doom WAD файлы + 둠 WAD 파일 Plik WAD gry Doom - Doom WAD - Doom WAD - WAD Doom - Doom WAD - Дум ВАД - Doom-WAD - Doom WAD - WAD Doom - Doom WAD - Doom WAD + Arquivo Doom WAD + Файл Doom WAD + Doom WAD-fil + Doom WAD dosyası + файл WAD Doom + Doom WAD 文件 + Doom WAD 檔 WAD Where's All the Data - - + + - + Amiga disk image + Amiga-skyfbeeldlêer + Диск — Amiga imatge de disc d'Amiga obraz disku pro Amigu Amiga-diskaftryk Amiga-Datenträgerabbild Εικόνα δίσκου Amiga - Amiga disk image + Amiga disk image imagen de disco de Amiga Amiga disko irudia Amiga-levytiedosto image disque Amiga + imagjin disc Amiga íomhá diosca Amiga דמות כונן Amiga Amiga slika diska @@ -40909,54 +42459,57 @@ imatge disc Amiga Obraz dysku Amiga imagem de disco Amiga - Imagem de disco Amiga + Imagem de disco Amiga Образ диска Amiga Obraz disku Amiga слика диска Амиге Amiga-diskavbild - Amiga disk kalıbı + Amiga disk görüntüsü образ диска Amiga - Amiga 磁盘映像 - Amiga 磁碟映像檔 + Amiga 磁盘映像 + Amiga 磁碟映像檔 - + Flatpak application bundle + Flatpak-toepassingsbundel + Програмен пакет — Flatpak paquet d'aplicació Flatpak balíček Flatpak s aplikací Flatpak-programsamling Flatpak-Anwendungspaket - Flatpak application bundle + Flatpak application bundle paquete de aplicación Flatpak Flatpak aplikazio bilduma Flatpak-sovelluspaketti lot applicatif Flatpak + côl di aplicazions Flatpak burla feidhmchláir Flatpak חבילת יישומי Flatpak Flatpak paket aplikacije Flatpak alkalmazáscsomag - bundel aplikasi Flatpak + Bundel aplikasi Flatpak Bundle applicazione Flatpak Flatpak қолданбалар дестесі Flatpak 프로그램 번들 Pakiet programu Flatpak - Pacote de aplicativo Flatpak + Pacote de aplicativo Flatpak Пакет приложения Flatpak Balík aplikácií Flatpak скуп програма Флатпака Flatpak-programbunt Flatpak uygulama paketi пакунок із програмами Flatpak - Flatpak 应用组合包 - Flatpak 應用程式套組 + Flatpak 应用组合包 + Flatpak 應用程式套組 - - + + @@ -40965,142 +42518,148 @@ Flatpak repository description + Описание на хранилище — Flatpak descripció de dipòsit de Flatpak popis repozitáře Flatpak Flatpak-arkivbeskrivelse Flatpak-Repositoriumsbeschreibung - Flatpak repository description + Flatpak repository description descripción de repositorio de Flatpak Flatpak biltegi deskribapena Flatpak-ohjelmistolähdekuvaus description de dépôt Flatpak + descrizion dipuesit Flatpak cur síos ar stórlann Flatpak תיאור מאגר Flatpak Flatpak opis repozitorija Flatpak tárolóleírás - deskripsi repositori Flatpak + Deskripsi repositori Flatpak Descrizione repository Flatpack Flatpak репозиторийі сипаттамасы Flatpak 저장소 디스크립션 Opis repozytorium Flatpak - Descrição de repositório Flatpak + Descrição de repositório Flatpak Описание репозитория Flatpak Popis repozitára Flatpak опис ризнице Флатпака Flatpak-förrådsbeskrivning Flatpak depo açıklaması опис сховища Flatpak - Flatpak 软件库描述 - Flatpak 軟體庫描述 + Flatpak 软件库描述 + Flatpak 軟體庫描述 - + Flatpak repository reference + Указател към хранилище — Flatpak referència de dipòsit Flatpak odkaz na repozitář Flatpak + Flatpak-arkivreference Flatpak-Repositoriumsreferenz - Flatpak repository reference + Flatpak repository reference referencia a repositorio de Flatpak Flatpak biltegi erreferentzia Flatpak-ohjelmistolähdeviite référence de dépôt Flatpak + riferiment dipuesit Flatpak tagairt do stórlann Flatpak Flatpak preporučeni repozitorij Flatpak tárolóhivatkozás - acuan repositori Flatpak + Acuan repositori Flatpak Riferimento repository Flatpack Flatpak репозиторийіне сілтеме Flatpak 저장소 참조 Odwołanie do repozytorium Flatpak - Referência de repositório Flatpak + Referência de repositório Flatpak Ссылка на репозиторий Flatpak Referencia repozitára Flatpak упута ризнице Флатпака Flatpak-förrådsreferens - Flatpak depo başvurusu + Flatpak depo atfı посилання на сховище Flatpak - Flatpak 软件库引用 - Flatpak 軟體庫參照 + Flatpak 软件库引用 + Flatpak 軟體庫參照 - + - Squashfs filesystem - Sistema de fitxers Squashfs - souborový systém Squashfs - Squashfs-filsystem - Squashfs-Dateisystem - Squashfs filesystem - sistema de archivos Squashfs - Squashfs fitxategi sistema - Squashfs-tiedostojärjestelmä - système de fichiers Squashfs - córas comhad Squashfs - מערכת קבצים Squashfs - Squashfs datotečni sustav - Squashfs fájlrendszer - sistem berkas Squashfs - File system squashfs - Squashfs файлдық жүйесі - Squashfs 파일 시스템 - System plików SquashFS - Sistema de arquivos Squashfs - Файловая система Squashfs - Systém súborov Squashfs - систем датотека Сквошфс - Squashfs-filsystem - Squashfs dosya sistemi - файлова система squashfs - Squashfs 文件系统 - Squashfs 檔案系統 - - - + Squashfs filesystem image + Диск — Squashfs + imatge de sistema de fitxers Squashfs + Squashfs-filsystemaftryk + Squashfs-Dateisystemabbild + Squashfs filesystem image + imagen de sistema de archivos de Squashfs + Squashfs fitxategi sistema irudia + Squashfs-tiedostojärjestelmän levykuva + image de système de fichiers Squashfs + Squashfs slika datotečnog sustava + Squashfs fájlrenszerkép + Image sistem berkas Squashfs + Immagine file system squashfs + Squashfs файлдық жүйе бейнесі + Squashfs 파일 시스템 이미지 + Obraz systemu plików SquashFS + Imagem de sistema de arquivos Squashfs + Образ файловой системы Squashfs + Obraz systému súborov Squashfs + Squashfs filsystemsavbildning + Squashfs dosya sistemi görüntüsü + образ файлової системи squashfs + Squashfs 文件系统映像 + Squashfs 檔案系統映像 + + + - + AppImage application bundle + AppImage-toepassingsbundel + Програмен пакет — AppImage paquet d'aplicació AppImage balíček AppImage s aplikací - Applmage-programsamling + AppImage-programsamling AppImage-Anwendungspaket - AppImage application bundle + AppImage application bundle paquete de aplicación AppImage AppImage aplikazio bilduma AppImage-sovelluspaketti lot applicatif AppImage + côl di aplicazions AppImage burla feidhmchláir AppImage חבילת יישומי AppImage AppImage paket aplikacije AppImage alkalmazáscsomag - bundel aplikasi AppImage + Bundel aplikasi AppImage Bundle applicazione AppImage AppImage қолданбалар дестесі AppImage 프로그램 번들 Pakiet programu AppImage - Pacote de aplicativo AppImage + pacote de aplicação AppImage + Pacote de aplicativo AppImage Пакет приложения AppImage Balík aplikácií AppImage скуп програма Ап-слике AppImage-programbunt AppImage uygulama paketi пакунок із програмами AppImage - AppImage 应用组合包 - AppImage 應用程式套組 + AppImage 应用组合包 + AppImage 應用程式套組 @@ -41118,45 +42677,78 @@ Snap package - Paquet Snap + Snap-pakket + Пакет — Snap + paquet snap balíček Snap Snap-pakke Snap-Paket - Snap package + Snap package paquete Snap Snap paketea Snap-paketti paquet Snap + pachet Snap pacáiste Snap חבילת Snap Snap paket Snap-csomag - paket Snap + Paket Snap Pacchetto snap Snap дестесі Snap 패키지 Pakiet Snap - Pacote Snap + Pacote Snap Пакет Snap Balík Snap + Paket Snap Снап пакет Snap-paket Snap paketi пакунок snap - Snap 软件包 - Snap 軟體包 + Snap 软件包 + Snap 軟體包 - + STL 3D model + STL 3D-model + Модел — STL 3D + model 3D STL + 3D model STL + STL 3D-model + STL 3D-Modell + STL 3D model + modelo 3D de STL + STL 3D modeloa + STL 3D malli + modèle 3D STL + model STL 3D + samhail 3T STL + STL 3D model + STL 3D modell + Model 3D STL + Modello 3D STL + STL 3D моделі + STL 3D 모델 + Model 3D STL + Modelo 3D STL + 3D-модель STL + STL 3D model + Model STL 3D + STL-3D-modell + STL 3D modeli + просторова модель STL + STL 3D 模型 + STL 3D 模型 STL StereoLithography - - + + @@ -41165,31 +42757,35 @@ G-code file + Модел — G-code fitxer G-code soubor G-code + G-code-fil G-Code-Datei - G-code file + G-code file archivo G-code G-code fitxategia G-code-tiedosto fichier G-code + file G-code comhad G-code G-kôd datoteka G-code fájl - berkas G-code + Berkas G-code File G-code G-code файлы - 지-코드 파일 + G-code 파일 Plik G-code - Arquivo G-code + Arquivo G-code Файл G-code Súbor G-code + Datoteka G-code датотека Г-ко̂да G-code-fil G-code dosyası файл G-code - G-code 文件 - G-code 檔案 + G-code 文件 + G-code 檔案 @@ -41197,37 +42793,260 @@ Nintendo FDS disk image - Imatge de disc Nintendo FDS + Nintendo FDS-skyfbeeldlêer + Диск — Nintendo FDS + imatge de disc Nintendo FDS obraz disku pro Nintendo FDS + Nintendo FDS-diskaftryk Nintendo-FDS-Datenträgerabbild - Nintendo FDS disk image + Nintendo FDS disk image imagen de disco FDS de Nintendo Nintendo FDS disko irudia Nintendo FDS -levykuva image disque Nintendo FDS + imagjin disc Nintendo FDS íomhá diosca Nintendo FDS Nintendo FDS slika diska Nintendo FDS lemezkép - image disk Nintendo FDS + Image disk Nintendo FDS Immagine disco Nintendo FDS Nintendo FDS диск бейнесі 닌텐도 FDS 디스크 이미지 Obraz dysku Nintendo FDS - Imagem de disco Nintendo FDS + Imagem de disco Nintendo FDS Образ диска Nintendo FDS Obraz disku Nintendo FDS Нинтендо ФДС слика диска Nintendo FDS-diskavbild - Nintendo FDS disk kalıbı + Nintendo FDS disk görüntüsü образ диска FDS Nintendo - 任天堂 FDS 磁盘映像 - Nintendo FDS 磁碟映像檔 + 任天堂 FDS 磁盘映像 + Nintendo FDS 磁碟映像檔 FDS Famicom Disk System - + + + + + + QEMU QCOW disk image + imatge de disc QEMU QCOW + QEMU QCOW-diskaftryk + QEMU QCOW-Datenträgerabbild + QEMU QCOW disk image + imagen de disco QCOW de QEMU + QEMU QCOW -levykuva + image disque QEMU QCOW + QEMU QCOW slika diska + QEMU QCOW lemezkép + Image disk QCOW QEMU + Immagine disco QEMU QCOW + QEMU QCOW диск бейнесі + QEMU QCOW 디스크 이미지 + Obraz dysku QCOW QEMU + Imagem de disco QEMU QCOW + Образ диска QEMU QCOW + QEMU QCOW-diskavbildning + QEMU QCOW disk görüntüsü + образ диска QCOW QEMU + QEMU QCOW 磁盘映像 + QEMU QCOW 磁碟映像檔 + QCOW + QEMU Copy On Write + + + + + + + + + + + AppleWorks document + document AppleWorks + AppleWorks-dokument + AppleWorks-Dokument + AppleWorks document + documento de AppleWorks + AppleWorks-asiakirja + document AppleWorks + AppleWorks dokument + AppleWorks-dokumentum + Dokumen AppleWorks + Documento AppleWorks + AppleWorks құжаты + AppleWorks 문서 + Dokument AppleWorks + Documento AppleWorks + Документ AppleWorks + Dokument AppleWorks + AppleWorks-dokument + AppleWorks belgesi + документ AppleWorks + AppleWorks 文档 + AppleWorks 文件 + + + + + + BPS patch + pedaç de BPS + BPS-rettelse + BPS-Patch + BPS patch + parche BPS + BPS-korjaus + correctif BPS + BPS zakrpa + BPS javítócsomag + Patch BPS + Patch BPS + BPS өзгерісі + BPS 패치 + Łata BPS + Patch BPS + Патч BPS + BPS patch + BPS yaması + латка BPS + BPS 补丁 + BPS 修補檔 + BPS + Binary Patching System + + + + + + + + IPS patch + pedaç d'IPS + IPS-rettelse + IPS-Patch + IPS patch + parche IPS + IPS-korjaus + correctif IPS + IPS zakrpa + IPS javítócsomag + Patch IPS + Patch IPS + IPS өзгерісі + IPS 패치 + Łata IPS + Patch IPS + Патч IPS + IPS patch + IPS yaması + латка IPS + IPS 补丁 + IPS 修補檔 + IPS + International Patching System + + + + + + + + Pyspread spreadsheet + full de càlcul de Pyspread + Pyspread-regneark + Pyspread-Tabelle + Pyspread spreadsheet + hoja de cálculo de Pyspread + Pyspread-taulukko + feuille de calcul Pyspread + Pyspread proračunska tablica + Foglio di calcolo Pyspread + Arkusz pyspread + Planilha do Pyspread + Pyspread-kalkylblad + ел. таблиця Pyspread + Pyspread 电子表格 + Pyspread 試算表 + + + + + + + Pyspread spreadsheet (bzip-compressed) + full de càlcul de Pyspread (amb compressió bzip) + Pyspread-regneark (bzip-komprimeret) + Pyspread-Tabelle (bzip-komprimiert) + Pyspread spreadsheet (bzip-compressed) + hoja de cálculo de Pyspread (comprimida con bzip) + Pyspread-taulukko (bzip-pakattu) + feuille de calcul Pyspread (compressée bzip) + Pyspread proračunska tablica (bzip sažeta) + Foglio di calcolo Pyspread (compresso con bzip) + Arkusz pyspread (kompresja bzip) + Planilha do Pyspread (compactada com bzip) + Pyspread-kalkylblad (bzip-komprimerat) + ел. таблиця Pyspread (стиснена bzip) + Pyspread 电子表格(bzip 压缩) + Pyspread 試算表 (bzip 壓縮) + + + + + + + Kotlin source code + codi font en Kotlin + Kotlin-kildekode + Kotlin-Quelltext + Kotlin source code + código fuente en Kotlin + Kotlin-lähdekoodi + code source Kotlin + Kotlin izvorni kôd + Codice sorgente Kotlin + Kod źródłowy Kotlin + Código-fonte Kotlin + Kotlin-källkod + вихідний код мовою Kotlin + Kotlin 源代码 + Kotlin 源碼 + + + + AV1 Image File Format (AVIF) + format de fitxer d'imatge AV1 (AVIF) + AV1-billedfilformat (AVIF) + AV1-Bilddateiformat (AVIF) + AV1 Image File Format (AVIF) + formato de archivo de imagen AV1 (AVIF) + AV1-kuvatiedostomuoto (AVIF) + AV1 format datoteke slike (AVIF) + AV1 Image File Format (AVIF) + Format pliku obrazu AV1 (AVIF) + Formato de arquivo de imagem AV1 (AVIF) + AV1-bildfilformat (AVIF) + формат файлів зображень AV1 (AVIF) + AV1 图像文件格式(AVIF) + AV1 影像檔案格式 (AVIF) + + + + + + + + + + + + + diff --git a/qtbase/src/corelib/mimetypes/qmimedatabase.cpp b/qtbase/src/corelib/mimetypes/qmimedatabase.cpp index 9de22cef33..ff868a3268 100644 --- a/qtbase/src/corelib/mimetypes/qmimedatabase.cpp +++ b/qtbase/src/corelib/mimetypes/qmimedatabase.cpp @@ -389,20 +389,23 @@ QMimeType QMimeDatabasePrivate::mimeTypeForFileNameAndData(const QString &fileNa // Disambiguate conflicting extensions (if magic matching found something) if (candidateByData.isValid() && magicAccuracy > 0) { const QString sniffedMime = candidateByData.name(); - // If the sniffedMime matches a glob match, use it + // If the sniffedMime matches a highest-weight glob match, use it if (candidatesByName.m_matchingMimeTypes.contains(sniffedMime)) { *accuracyPtr = 100; return candidateByData; } - for (const QString &m : qAsConst(candidatesByName.m_matchingMimeTypes)) { + for (const QString &m : qAsConst(candidatesByName.m_allMatchingMimeTypes)) { if (inherits(m, sniffedMime)) { // We have magic + pattern pointing to this, so it's a pretty good match *accuracyPtr = 100; return mimeTypeForName(m); } } - *accuracyPtr = magicAccuracy; - return candidateByData; + if (candidatesByName.m_allMatchingMimeTypes.isEmpty()) { + // No glob, use magic + *accuracyPtr = magicAccuracy; + return candidateByData; + } } } diff --git a/qtbase/src/corelib/mimetypes/qmimeglobpattern.cpp b/qtbase/src/corelib/mimetypes/qmimeglobpattern.cpp index 1016884437..fa8f4c545d 100644 --- a/qtbase/src/corelib/mimetypes/qmimeglobpattern.cpp +++ b/qtbase/src/corelib/mimetypes/qmimeglobpattern.cpp @@ -83,11 +83,48 @@ void QMimeGlobMatchResult::addMatch(const QString &mimeType, int weight, const Q } if (!m_matchingMimeTypes.contains(mimeType)) { m_matchingMimeTypes.append(mimeType); - m_allMatchingMimeTypes.append(mimeType); + if (replace) + m_allMatchingMimeTypes.prepend(mimeType); // highest-weight first + else + m_allMatchingMimeTypes.append(mimeType); m_knownSuffixLength = knownSuffixLength; } } +QMimeGlobPattern::PatternType QMimeGlobPattern::detectPatternType(const QString &pattern) const +{ + const int patternLength = pattern.length(); + if (!patternLength) + return OtherPattern; + + const int starCount = pattern.count(QLatin1Char('*')); + const bool hasSquareBracket = pattern.indexOf(QLatin1Char('[')) != -1; + const bool hasQuestionMark = pattern.indexOf(QLatin1Char('?')) != -1; + + if (!hasSquareBracket && !hasQuestionMark) { + if (starCount == 1) { + // Patterns like "*~", "*.extension" + if (pattern.at(0) == QLatin1Char('*')) + return SuffixPattern; + // Patterns like "README*" (well this is currently the only one like that...) + if (pattern.at(patternLength - 1) == QLatin1Char('*')) + return PrefixPattern; + } else if (starCount == 0) { + // Names without any wildcards like "README" + return LiteralPattern; + } + } + + if (pattern == QLatin1String("[0-9][0-9][0-9].vdr")) + return VdrPattern; + + if (pattern == QLatin1String("*.anim[1-9j]")) + return AnimPattern; + + return OtherPattern; +} + + /*! \internal \class QMimeGlobPattern @@ -97,58 +134,66 @@ void QMimeGlobMatchResult::addMatch(const QString &mimeType, int weight, const Q \sa QMimeType, QMimeDatabase, QMimeMagicRuleMatcher, QMimeMagicRule */ -bool QMimeGlobPattern::matchFileName(const QString &inputFilename) const +bool QMimeGlobPattern::matchFileName(const QString &inputFileName) const { // "Applications MUST match globs case-insensitively, except when the case-sensitive // attribute is set to true." // The constructor takes care of putting case-insensitive patterns in lowercase. - const QString filename = m_caseSensitivity == Qt::CaseInsensitive ? inputFilename.toLower() : inputFilename; + const QString fileName = m_caseSensitivity == Qt::CaseInsensitive + ? inputFileName.toLower() : inputFileName; - const int pattern_len = m_pattern.length(); - if (!pattern_len) + const int patternLength = m_pattern.length(); + if (!patternLength) return false; - const int len = filename.length(); - - const int starCount = m_pattern.count(QLatin1Char('*')); + const int fileNameLength = fileName.length(); - // Patterns like "*~", "*.extension" - if (m_pattern[0] == QLatin1Char('*') && m_pattern.indexOf(QLatin1Char('[')) == -1 && starCount == 1) - { - if (len + 1 < pattern_len) return false; + switch (m_patternType) { + case SuffixPattern: { + if (fileNameLength + 1 < patternLength) + return false; - const QChar *c1 = m_pattern.unicode() + pattern_len - 1; - const QChar *c2 = filename.unicode() + len - 1; + const QChar *c1 = m_pattern.unicode() + patternLength - 1; + const QChar *c2 = fileName.unicode() + fileNameLength - 1; int cnt = 1; - while (cnt < pattern_len && *c1-- == *c2--) + while (cnt < patternLength && *c1-- == *c2--) ++cnt; - return cnt == pattern_len; + return cnt == patternLength; } - - // Patterns like "README*" (well this is currently the only one like that...) - if (starCount == 1 && m_pattern.at(pattern_len - 1) == QLatin1Char('*')) { - if (len + 1 < pattern_len) return false; - if (m_pattern.at(0) == QLatin1Char('*')) - return filename.indexOf(m_pattern.midRef(1, pattern_len - 2)) != -1; + case PrefixPattern: { + if (fileNameLength + 1 < patternLength) + return false; const QChar *c1 = m_pattern.unicode(); - const QChar *c2 = filename.unicode(); + const QChar *c2 = fileName.unicode(); int cnt = 1; - while (cnt < pattern_len && *c1++ == *c2++) + while (cnt < patternLength && *c1++ == *c2++) ++cnt; - return cnt == pattern_len; + return cnt == patternLength; } - - // Names without any wildcards like "README" - if (m_pattern.indexOf(QLatin1Char('[')) == -1 && starCount == 0 && m_pattern.indexOf(QLatin1Char('?'))) - return (m_pattern == filename); - - // Other (quite rare) patterns, like "*.anim[1-9j]": use slow but correct method + case LiteralPattern: + return (m_pattern == fileName); + case VdrPattern: // "[0-9][0-9][0-9].vdr" case + return fileNameLength == 7 + && fileName.at(0).isDigit() && fileName.at(1).isDigit() && fileName.at(2).isDigit() + && QStringView{fileName}.mid(3, 4) == QLatin1String(".vdr"); + case AnimPattern: { // "*.anim[1-9j]" case + if (fileNameLength < 6) + return false; + const QChar lastChar = fileName.at(fileNameLength - 1); + const bool lastCharOK = (lastChar.isDigit() && lastChar != QLatin1Char('0')) + || lastChar == QLatin1Char('j'); + return lastCharOK && QStringView{fileName}.mid(fileNameLength - 6, 5) == QLatin1String(".anim"); + } + case OtherPattern: + // Other fallback patterns: slow but correct method #if QT_CONFIG(regularexpression) - QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(m_pattern)); - return rx.match(filename).hasMatch(); + QRegularExpression rx(QRegularExpression::wildcardToRegularExpression(m_pattern)); + return rx.match(fileName).hasMatch(); #else - return false; + return false; #endif + } + return false; } static bool isSimplePattern(const QString &pattern) diff --git a/qtbase/src/corelib/mimetypes/qmimeglobpattern_p.h b/qtbase/src/corelib/mimetypes/qmimeglobpattern_p.h index 49f145e8db..88d032c787 100644 --- a/qtbase/src/corelib/mimetypes/qmimeglobpattern_p.h +++ b/qtbase/src/corelib/mimetypes/qmimeglobpattern_p.h @@ -80,7 +80,10 @@ public: explicit QMimeGlobPattern(const QString &thePattern, const QString &theMimeType, unsigned theWeight = DefaultWeight, Qt::CaseSensitivity s = Qt::CaseInsensitive) : m_pattern(s == Qt::CaseInsensitive ? thePattern.toLower() : thePattern), - m_mimeType(theMimeType), m_weight(theWeight), m_caseSensitivity(s) + m_mimeType(theMimeType), + m_weight(theWeight), + m_caseSensitivity(s), + m_patternType(detectPatternType(m_pattern)) { } @@ -90,9 +93,10 @@ public: qSwap(m_mimeType, other.m_mimeType); qSwap(m_weight, other.m_weight); qSwap(m_caseSensitivity, other.m_caseSensitivity); + qSwap(m_patternType, other.m_patternType); } - bool matchFileName(const QString &filename) const; + bool matchFileName(const QString &inputFileName) const; inline const QString &pattern() const { return m_pattern; } inline unsigned weight() const { return m_weight; } @@ -100,10 +104,21 @@ public: inline bool isCaseSensitive() const { return m_caseSensitivity == Qt::CaseSensitive; } private: + enum PatternType { + SuffixPattern, + PrefixPattern, + LiteralPattern, + VdrPattern, // special handling for "[0-9][0-9][0-9].vdr" pattern + AnimPattern, // special handling for "*.anim[1-9j]" pattern + OtherPattern + }; + PatternType detectPatternType(const QString &pattern) const; + QString m_pattern; QString m_mimeType; int m_weight; Qt::CaseSensitivity m_caseSensitivity; + PatternType m_patternType; }; Q_DECLARE_SHARED(QMimeGlobPattern) diff --git a/qtbase/src/corelib/mimetypes/qmimeprovider.cpp b/qtbase/src/corelib/mimetypes/qmimeprovider.cpp index 12ce442f70..4642d0f2d0 100644 --- a/qtbase/src/corelib/mimetypes/qmimeprovider.cpp +++ b/qtbase/src/corelib/mimetypes/qmimeprovider.cpp @@ -244,15 +244,18 @@ void QMimeBinaryProvider::addFileNameMatches(const QString &fileName, QMimeGlobM const QString lowerFileName = fileName.toLower(); // Check literals (e.g. "Makefile") matchGlobList(result, m_cacheFile, m_cacheFile->getUint32(PosLiteralListOffset), fileName); - // Check complex globs (e.g. "callgrind.out[0-9]*") - matchGlobList(result, m_cacheFile, m_cacheFile->getUint32(PosGlobListOffset), fileName); // Check the very common *.txt cases with the suffix tree - const int reverseSuffixTreeOffset = m_cacheFile->getUint32(PosReverseSuffixTreeOffset); - const int numRoots = m_cacheFile->getUint32(reverseSuffixTreeOffset); - const int firstRootOffset = m_cacheFile->getUint32(reverseSuffixTreeOffset + 4); - matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, lowerFileName, lowerFileName.length() - 1, false); + if (result.m_matchingMimeTypes.isEmpty()) { + const int reverseSuffixTreeOffset = m_cacheFile->getUint32(PosReverseSuffixTreeOffset); + const int numRoots = m_cacheFile->getUint32(reverseSuffixTreeOffset); + const int firstRootOffset = m_cacheFile->getUint32(reverseSuffixTreeOffset + 4); + matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, lowerFileName, lowerFileName.length() - 1, false); + if (result.m_matchingMimeTypes.isEmpty()) + matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, fileName, fileName.length() - 1, true); + } + // Check complex globs (e.g. "callgrind.out[0-9]*" or "README*") if (result.m_matchingMimeTypes.isEmpty()) - matchSuffixTree(result, m_cacheFile, numRoots, firstRootOffset, fileName, fileName.length() - 1, true); + matchGlobList(result, m_cacheFile, m_cacheFile->getUint32(PosGlobListOffset), fileName); } void QMimeBinaryProvider::matchGlobList(QMimeGlobMatchResult &result, CacheFile *cacheFile, int off, const QString &fileName) @@ -272,7 +275,6 @@ void QMimeBinaryProvider::matchGlobList(QMimeGlobMatchResult &result, CacheFile //qDebug() << pattern << mimeType << weight << caseSensitive; QMimeGlobPattern glob(pattern, QString() /*unused*/, weight, qtCaseSensitive); - // TODO: this could be done faster for literals where a simple == would do. if (glob.matchFileName(fileName)) result.addMatch(QLatin1String(mimeType), weight, pattern); } diff --git a/qtbase/src/corelib/text/qbytearraymatcher.h b/qtbase/src/corelib/text/qbytearraymatcher.h index 0eedfc1d20..f5f9bef7b8 100644 --- a/qtbase/src/corelib/text/qbytearraymatcher.h +++ b/qtbase/src/corelib/text/qbytearraymatcher.h @@ -42,6 +42,8 @@ #include +#include + QT_BEGIN_NAMESPACE diff --git a/qtbase/src/corelib/text/qstring.cpp b/qtbase/src/corelib/text/qstring.cpp index 3779b90d6f..be472d7956 100644 --- a/qtbase/src/corelib/text/qstring.cpp +++ b/qtbase/src/corelib/text/qstring.cpp @@ -4562,13 +4562,13 @@ int QString::lastIndexOf(const QRegularExpression &re, int from, QRegularExpress return -1; } - int endpos = (from < 0) ? (size() + from + 1) : (from); + int endpos = (from < 0) ? (size() + from + 1) : (from + 1); QRegularExpressionMatchIterator iterator = re.globalMatch(*this); int lastIndex = -1; while (iterator.hasNext()) { QRegularExpressionMatch match = iterator.next(); int start = match.capturedStart(); - if (start <= endpos) { + if (start < endpos) { lastIndex = start; if (rmatch) *rmatch = std::move(match); @@ -12308,7 +12308,7 @@ static qsizetype qLastIndexOf(Haystack haystack0, qsizetype from, const auto needle = needle0.data(); const auto *end = haystack; haystack += from; - const std::size_t sl_minus_1 = sl - 1; + const std::size_t sl_minus_1 = sl ? sl - 1 : 0; const auto *n = needle + sl_minus_1; const auto *h = haystack + sl_minus_1; std::size_t hashNeedle = 0, hashHaystack = 0; diff --git a/qtbase/src/corelib/thread/qmutex.cpp b/qtbase/src/corelib/thread/qmutex.cpp index 310d1cb14f..7097122d8e 100644 --- a/qtbase/src/corelib/thread/qmutex.cpp +++ b/qtbase/src/corelib/thread/qmutex.cpp @@ -152,6 +152,7 @@ public: /*! \enum QMutex::RecursionMode + \obsolete Use QRecursiveMutex to create a recursive mutex. \value Recursive In this mode, a thread can lock the same mutex multiple times and the mutex won't be unlocked @@ -173,6 +174,7 @@ public: /*! Constructs a new mutex. The mutex is created in an unlocked state. + \obsolete Use QRecursiveMutex to create a recursive mutex. If \a mode is QMutex::Recursive, a thread can lock the same mutex multiple times and the mutex won't be unlocked until a @@ -197,7 +199,7 @@ QMutex::QMutex(RecursionMode mode) QMutex::~QMutex() { QMutexData *d = d_ptr.loadRelaxed(); - if (isRecursive()) { + if (QBasicMutex::isRecursive()) { delete static_cast(d); } else if (d) { #ifndef QT_LINUX_FUTEX diff --git a/qtbase/src/corelib/thread/qmutex.h b/qtbase/src/corelib/thread/qmutex.h index 73c9e00663..b2e2640ba2 100644 --- a/qtbase/src/corelib/thread/qmutex.h +++ b/qtbase/src/corelib/thread/qmutex.h @@ -134,8 +134,16 @@ public: #else QMutex() { d_ptr.storeRelaxed(nullptr); } #endif +#if QT_DEPRECATED_SINCE(5,15) enum RecursionMode { NonRecursive, Recursive }; + QT_DEPRECATED_VERSION_X(5, 15, "Use QRecursiveMutex instead of a recursive QMutex") explicit QMutex(RecursionMode mode); + + QT_DEPRECATED_VERSION_X(5, 15, "Use QRecursiveMutex instead of a recursive QMutex") + bool isRecursive() const noexcept + { return QBasicMutex::isRecursive(); } +#endif + ~QMutex(); // BasicLockable concept @@ -166,9 +174,6 @@ public: } #endif - bool isRecursive() const noexcept - { return QBasicMutex::isRecursive(); } - private: Q_DISABLE_COPY(QMutex) friend class QMutexLocker; diff --git a/qtbase/src/corelib/thread/qsemaphore.cpp b/qtbase/src/corelib/thread/qsemaphore.cpp index d4fb756b94..1d01fc1b28 100644 --- a/qtbase/src/corelib/thread/qsemaphore.cpp +++ b/qtbase/src/corelib/thread/qsemaphore.cpp @@ -357,47 +357,31 @@ void QSemaphore::release(int n) quintptr prevValue = u.fetchAndAddRelease(nn); if (futexNeedsWake(prevValue)) { #ifdef FUTEX_OP - if (!futexHasWaiterCount) { - /* - On 32-bit systems, all waiters are waiting on the same address, - so we'll wake them all and ask the kernel to clear the high bit. - - atomic { - int oldval = u; - u = oldval & ~(1 << 31); - futexWake(u, INT_MAX); - if (oldval == 0) // impossible condition - futexWake(u, INT_MAX); - } - */ - quint32 op = FUTEX_OP_ANDN | FUTEX_OP_OPARG_SHIFT; - quint32 oparg = 31; - quint32 cmp = FUTEX_OP_CMP_EQ; - quint32 cmparg = 0; - futexWakeOp(u, INT_MAX, INT_MAX, u, FUTEX_OP(op, oparg, cmp, cmparg)); - } else { + if (futexHasWaiterCount) { /* On 64-bit systems, the single-token waiters wait on the low half and the multi-token waiters wait on the upper half. So we ask the kernel to wake up n single-token waiters and all multi-token - waiters (if any), then clear the multi-token wait bit. + waiters (if any), and clear the multi-token wait bit. atomic { int oldval = *upper; - *upper = oldval & ~(1 << 31); + *upper = oldval | 0; futexWake(lower, n); - if (oldval < 0) // sign bit set + if (oldval != 0) // always true futexWake(upper, INT_MAX); } */ - quint32 op = FUTEX_OP_ANDN | FUTEX_OP_OPARG_SHIFT; - quint32 oparg = 31; - quint32 cmp = FUTEX_OP_CMP_LT; + quint32 op = FUTEX_OP_OR; + quint32 oparg = 0; + quint32 cmp = FUTEX_OP_CMP_NE; quint32 cmparg = 0; + u.fetchAndAndRelease(futexNeedsWakeAllBit - 1); futexWakeOp(*futexLow32(&u), n, INT_MAX, *futexHigh32(&u), FUTEX_OP(op, oparg, cmp, cmparg)); + return; } -#else - // Unset the bit and wake everyone. There are two possibibilies +#endif + // Unset the bit and wake everyone. There are two possibilities // under which a thread can set the bit between the AND and the // futexWake: // 1) it did see the new counter value, but it wasn't enough for @@ -405,8 +389,12 @@ void QSemaphore::release(int n) // 2) it did not see the new counter value, in which case its // futexWait will fail. u.fetchAndAndRelease(futexNeedsWakeAllBit - 1); - futexWakeAll(u); -#endif + if (futexHasWaiterCount) { + futexWakeAll(*futexLow32(&u)); + futexWakeAll(*futexHigh32(&u)); + } else { + futexWakeAll(u); + } } return; } diff --git a/qtbase/src/corelib/thread/qthread_p.h b/qtbase/src/corelib/thread/qthread_p.h index b2d1628e6e..f32f6f0460 100644 --- a/qtbase/src/corelib/thread/qthread_p.h +++ b/qtbase/src/corelib/thread/qthread_p.h @@ -174,7 +174,7 @@ public: int returnCode; uint stackSize; - QThread::Priority priority; + std::underlying_type::type priority; static QThread *threadForId(int id); @@ -213,6 +213,13 @@ public: QCoreApplication::instance()->postEvent(q_ptr, new QEvent(QEvent::Quit)); } } + +#ifndef Q_OS_INTEGRITY +private: + // Used in QThread(Private)::start to avoid racy access to QObject::objectName, + // unset afterwards. On INTEGRITY we set the thread name before starting it. + QString objectName; +#endif }; #else // QT_CONFIG(thread) diff --git a/qtbase/src/corelib/thread/qthread_unix.cpp b/qtbase/src/corelib/thread/qthread_unix.cpp index 659d5fb03c..cbeb870395 100644 --- a/qtbase/src/corelib/thread/qthread_unix.cpp +++ b/qtbase/src/corelib/thread/qthread_unix.cpp @@ -296,11 +296,13 @@ void *QThreadPrivate::start(void *arg) QMutexLocker locker(&thr->d_func()->mutex); // do we need to reset the thread priority? - if (int(thr->d_func()->priority) & ThreadPriorityResetFlag) { + if (thr->d_func()->priority & ThreadPriorityResetFlag) { thr->d_func()->setPriority(QThread::Priority(thr->d_func()->priority & ~ThreadPriorityResetFlag)); } - data->threadId.storeRelaxed(to_HANDLE(pthread_self())); + // threadId is set in QThread::start() + Q_ASSERT(pthread_equal(from_HANDLE(data->threadId.loadRelaxed()), + pthread_self())); set_thread_data(data); data->ref(); @@ -314,10 +316,10 @@ void *QThreadPrivate::start(void *arg) // Sets the name of the current thread. We can only do this // when the thread is starting, as we don't have a cross // platform way of setting the name of an arbitrary thread. - if (Q_LIKELY(thr->objectName().isEmpty())) + if (Q_LIKELY(thr->d_func()->objectName.isEmpty())) setCurrentThreadName(thr->metaObject()->className()); else - setCurrentThreadName(thr->objectName().toLocal8Bit()); + setCurrentThreadName(std::exchange(thr->d_func()->objectName, {}).toLocal8Bit()); } #endif @@ -384,6 +386,8 @@ void QThreadPrivate::finish(void *arg) d->interruptionRequested = false; d->isInFinish = false; + d->data->threadId.storeRelaxed(nullptr); + d->thread_done.wakeAll(); } #ifndef QT_NO_EXCEPTIONS @@ -667,7 +671,7 @@ void QThread::start(Priority priority) // could not set scheduling hints, fallback to inheriting them // we'll try again from inside the thread pthread_attr_setinheritsched(&attr, PTHREAD_INHERIT_SCHED); - d->priority = Priority(priority | ThreadPriorityResetFlag); + d->priority = static_cast::type>(priority) | ThreadPriorityResetFlag; } break; } @@ -698,7 +702,10 @@ void QThread::start(Priority priority) pthread_attr_setthreadname(&attr, metaObject()->className()); else pthread_attr_setthreadname(&attr, objectName().toLocal8Bit()); +#else + d->objectName = objectName(); #endif + pthread_t threadId; int code = pthread_create(&threadId, &attr, QThreadPrivate::start, this); if (code == EPERM) { @@ -755,6 +762,8 @@ bool QThread::wait(QDeadlineTimer deadline) if (!d->thread_done.wait(locker.mutex(), deadline)) return false; } + Q_ASSERT(d->data->threadId.loadRelaxed() == nullptr); + return true; } diff --git a/qtbase/src/corelib/thread/qthread_win.cpp b/qtbase/src/corelib/thread/qthread_win.cpp index bc70e3178a..4e76972498 100644 --- a/qtbase/src/corelib/thread/qthread_win.cpp +++ b/qtbase/src/corelib/thread/qthread_win.cpp @@ -394,10 +394,9 @@ unsigned int __stdcall QT_ENSURE_STACK_ALIGNED_FOR_SSE QThreadPrivate::start(voi #if !defined(QT_NO_DEBUG) && defined(Q_CC_MSVC) && !defined(Q_OS_WINRT) // sets the name of the current thread. - QByteArray objectName = thr->objectName().toLocal8Bit(); - qt_set_thread_name(HANDLE(-1), - objectName.isEmpty() ? - thr->metaObject()->className() : objectName.constData()); + qt_set_thread_name(HANDLE(-1), thr->d_func()->objectName.isEmpty() + ? thr->metaObject()->className() + : std::exchange(thr->d_func()->objectName, {}).toLocal8Bit().constData()); #endif emit thr->started(QThread::QPrivateSignal()); @@ -503,6 +502,7 @@ void QThread::start(Priority priority) if (d->running) return; + d->objectName = objectName(); d->running = true; d->finished = false; d->exited = false; @@ -548,7 +548,7 @@ void QThread::start(Priority priority) int prio; d->priority = priority; - switch (d->priority) { + switch (priority) { case IdlePriority: prio = THREAD_PRIORITY_IDLE; break; @@ -686,7 +686,7 @@ void QThreadPrivate::setPriority(QThread::Priority threadPriority) int prio; priority = threadPriority; - switch (priority) { + switch (threadPriority) { case QThread::IdlePriority: prio = THREAD_PRIORITY_IDLE; break; diff --git a/qtbase/src/corelib/thread/qwaitcondition_unix.cpp b/qtbase/src/corelib/thread/qwaitcondition_unix.cpp index 88b058f410..0f1da4dc9b 100644 --- a/qtbase/src/corelib/thread/qwaitcondition_unix.cpp +++ b/qtbase/src/corelib/thread/qwaitcondition_unix.cpp @@ -213,7 +213,7 @@ bool QWaitCondition::wait(QMutex *mutex, QDeadlineTimer deadline) { if (! mutex) return false; - if (mutex->isRecursive()) { + if (static_cast(mutex)->isRecursive()) { qWarning("QWaitCondition: cannot wait on recursive mutexes"); return false; } diff --git a/qtbase/src/corelib/time/qdatetime.cpp b/qtbase/src/corelib/time/qdatetime.cpp index ec12569e3f..2c0b098079 100644 --- a/qtbase/src/corelib/time/qdatetime.cpp +++ b/qtbase/src/corelib/time/qdatetime.cpp @@ -43,6 +43,7 @@ #if QT_CONFIG(datetimeparser) #include "private/qdatetimeparser_p.h" #endif +#include #include "qdatastream.h" #include "qset.h" @@ -1429,9 +1430,11 @@ QDate QDate::addDays(qint64 ndays) const if (isNull()) return QDate(); - // Due to limits on minJd() and maxJd() we know that any overflow - // will be invalid and caught by fromJulianDay(). - return fromJulianDay(jd + ndays); + qint64 r; + if (Q_UNLIKELY(add_overflow(jd, ndays, &r))) + return QDate(); + else + return fromJulianDay(r); } /*! diff --git a/qtbase/src/corelib/time/qtimezone.cpp b/qtbase/src/corelib/time/qtimezone.cpp index 0309e43e52..3d451696a1 100644 --- a/qtbase/src/corelib/time/qtimezone.cpp +++ b/qtbase/src/corelib/time/qtimezone.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 John Layt +** Copyright (C) 2020 John Layt ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -975,9 +975,15 @@ QList QTimeZone::windowsIdToIanaIds(const QByteArray &windowsId, } #ifndef QT_NO_DATASTREAM +// Invalid, as an IANA ID: too long, starts with - and has other invalid characters in it +static inline QString invalidId() { return QStringLiteral("-No Time Zone Specified!"); } + QDataStream &operator<<(QDataStream &ds, const QTimeZone &tz) { - tz.d->serialize(ds); + if (tz.isValid()) + tz.d->serialize(ds); + else + ds << invalidId(); return ds; } @@ -985,7 +991,9 @@ QDataStream &operator>>(QDataStream &ds, QTimeZone &tz) { QString ianaId; ds >> ianaId; - if (ianaId == QLatin1String("OffsetFromUtc")) { + if (ianaId == invalidId()) { + tz = QTimeZone(); + } else if (ianaId == QLatin1String("OffsetFromUtc")) { int utcOffset; QString name; QString abbreviation; diff --git a/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp b/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp index b98fe6327a..dc584ad1bd 100644 --- a/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp +++ b/qtbase/src/corelib/time/qtimezoneprivate_tz.cpp @@ -42,6 +42,7 @@ #include "qtimezone.h" #include "qtimezoneprivate_p.h" #include "private/qlocale_tools_p.h" +#include "private/qlocking_p.h" #include #include @@ -62,6 +63,10 @@ QT_BEGIN_NAMESPACE +#if QT_CONFIG(icu) +static QBasicMutex s_icu_mutex; +#endif + /* Private @@ -670,6 +675,9 @@ QTzTimeZonePrivate::~QTzTimeZonePrivate() QTzTimeZonePrivate *QTzTimeZonePrivate::clone() const { +#if QT_CONFIG(icu) + const auto lock = qt_scoped_lock(s_icu_mutex); +#endif return new QTzTimeZonePrivate(*this); } @@ -913,12 +921,14 @@ QString QTzTimeZonePrivate::displayName(qint64 atMSecsSinceEpoch, const QLocale &locale) const { #if QT_CONFIG(icu) + auto lock = qt_unique_lock(s_icu_mutex); if (!m_icu) m_icu = new QIcuTimeZonePrivate(m_id); // TODO small risk may not match if tran times differ due to outdated files // TODO Some valid TZ names are not valid ICU names, use translation table? if (m_icu->isValid()) return m_icu->displayName(atMSecsSinceEpoch, nameType, locale); + lock.unlock(); #else Q_UNUSED(nameType) Q_UNUSED(locale) @@ -932,12 +942,14 @@ QString QTzTimeZonePrivate::displayName(QTimeZone::TimeType timeType, const QLocale &locale) const { #if QT_CONFIG(icu) + auto lock = qt_unique_lock(s_icu_mutex); if (!m_icu) m_icu = new QIcuTimeZonePrivate(m_id); // TODO small risk may not match if tran times differ due to outdated files // TODO Some valid TZ names are not valid ICU names, use translation table? if (m_icu->isValid()) return m_icu->displayName(timeType, nameType, locale); + lock.unlock(); #else Q_UNUSED(timeType) Q_UNUSED(nameType) diff --git a/qtbase/src/corelib/tools/qfreelist_p.h b/qtbase/src/corelib/tools/qfreelist_p.h index 5ba23b344b..9974102136 100644 --- a/qtbase/src/corelib/tools/qfreelist_p.h +++ b/qtbase/src/corelib/tools/qfreelist_p.h @@ -161,7 +161,7 @@ class QFreeList return i; x -= size; } - Q_ASSERT(false); + Q_UNREACHABLE(); return -1; } diff --git a/qtbase/src/corelib/tools/qoffsetstringarray_p.h b/qtbase/src/corelib/tools/qoffsetstringarray_p.h index 4dd9e9603b..e26a57ff43 100644 --- a/qtbase/src/corelib/tools/qoffsetstringarray_p.h +++ b/qtbase/src/corelib/tools/qoffsetstringarray_p.h @@ -55,6 +55,7 @@ #include #include +#include QT_BEGIN_NAMESPACE diff --git a/qtbase/src/corelib/tools/qsharedpointer_impl.h b/qtbase/src/corelib/tools/qsharedpointer_impl.h index 790c187cb9..8abb57586b 100644 --- a/qtbase/src/corelib/tools/qsharedpointer_impl.h +++ b/qtbase/src/corelib/tools/qsharedpointer_impl.h @@ -1012,15 +1012,11 @@ std::shared_ptr qobject_pointer_cast(std::shared_ptr &&src) using element_type = typename std::shared_ptr::element_type; auto castResult = qobject_cast(src.get()); if (castResult) { - auto result = std::shared_ptr(std::move(src), castResult); -#if __cplusplus <= 201703L // C++2a's move aliasing constructor will leave src empty. // Before C++2a we don't really know if the compiler has support for it. // The move aliasing constructor is the resolution for LWG2996, // which does not impose a feature-testing macro. So: clear src. - src.reset(); -#endif - return result; + return std::shared_ptr(qExchange(src, nullptr), castResult); } return std::shared_ptr(); } diff --git a/qtbase/src/corelib/tools/qvarlengtharray.h b/qtbase/src/corelib/tools/qvarlengtharray.h index fd0c99c032..2b30da0d2c 100644 --- a/qtbase/src/corelib/tools/qvarlengtharray.h +++ b/qtbase/src/corelib/tools/qvarlengtharray.h @@ -152,19 +152,18 @@ public: if (s == a) { // i.e. s != 0 T copy(t); realloc(s, s<<1); - const int idx = s++; - new (ptr + idx) T(std::move(copy)); + new (end()) T(std::move(copy)); } else { - const int idx = s++; - new (ptr + idx) T(t); + new (end()) T(t); } + ++s; } void append(T &&t) { if (s == a) realloc(s, s << 1); - const int idx = s++; - new (ptr + idx) T(std::move(t)); + new (end()) T(std::move(t)); + ++s; } void append(const T *buf, int size); @@ -501,14 +500,14 @@ Q_OUTOFLINE_TEMPLATE typename QVarLengthArray::iterator QVarLengthA } template -Q_OUTOFLINE_TEMPLATE typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, size_type n, const T &t) +Q_OUTOFLINE_TEMPLATE typename QVarLengthArray::iterator QVarLengthArray::insert(const_iterator before, int n, const T &t) { Q_ASSERT_X(isValidIterator(before), "QVarLengthArray::insert", "The specified const_iterator argument 'before' is invalid"); int offset = int(before - ptr); if (n != 0) { + const T copy(t); // `t` could alias an element in [begin(), end()[ resize(s + n); - const T copy(t); if (!QTypeInfoQuery::isRelocatable) { T *b = ptr + offset; T *j = ptr + s; @@ -538,6 +537,11 @@ Q_OUTOFLINE_TEMPLATE typename QVarLengthArray::iterator QVarLengthA int f = int(abegin - ptr); int l = int(aend - ptr); int n = l - f; + if (n == 0) // avoid UB in std::copy() below + return ptr + f; + + Q_ASSERT(n > 0); // aend must be reachable from abegin + if (QTypeInfo::isComplex) { std::copy(ptr + l, ptr + s, QT_MAKE_CHECKED_ARRAY_ITERATOR(ptr + f, s - f)); T *i = ptr + s; diff --git a/qtbase/src/corelib/tools/qversionnumber.h b/qtbase/src/corelib/tools/qversionnumber.h index d43b86ba51..2843f2b043 100644 --- a/qtbase/src/corelib/tools/qversionnumber.h +++ b/qtbase/src/corelib/tools/qversionnumber.h @@ -273,10 +273,10 @@ public: Q_REQUIRED_RESULT Q_CORE_EXPORT QString toString() const; #if QT_STRINGVIEW_LEVEL < 2 - Q_REQUIRED_RESULT Q_CORE_EXPORT static Q_DECL_PURE_FUNCTION QVersionNumber fromString(const QString &string, int *suffixIndex = nullptr); + Q_REQUIRED_RESULT Q_CORE_EXPORT static QVersionNumber fromString(const QString &string, int *suffixIndex = nullptr); #endif - Q_REQUIRED_RESULT Q_CORE_EXPORT static Q_DECL_PURE_FUNCTION QVersionNumber fromString(QLatin1String string, int *suffixIndex = nullptr); - Q_REQUIRED_RESULT Q_CORE_EXPORT static Q_DECL_PURE_FUNCTION QVersionNumber fromString(QStringView string, int *suffixIndex = nullptr); + Q_REQUIRED_RESULT Q_CORE_EXPORT static QVersionNumber fromString(QLatin1String string, int *suffixIndex = nullptr); + Q_REQUIRED_RESULT Q_CORE_EXPORT static QVersionNumber fromString(QStringView string, int *suffixIndex = nullptr); private: #ifndef QT_NO_DATASTREAM diff --git a/qtbase/src/dbus/qdbusmetaobject.cpp b/qtbase/src/dbus/qdbusmetaobject.cpp index 5265568f42..7e9f0f1acc 100644 --- a/qtbase/src/dbus/qdbusmetaobject.cpp +++ b/qtbase/src/dbus/qdbusmetaobject.cpp @@ -210,6 +210,9 @@ QDBusMetaObjectGenerator::findType(const QByteArray &signature, } else if (signature == "a{ss}") { result.name = "QMap"; type = qMetaTypeId >(); + } else if (signature == "aay") { + result.name = "QByteArrayList"; + type = qMetaTypeId(); } else { result.name = "{D-Bus type \"" + signature + "\"}"; type = registerComplexDBusType(result.name); diff --git a/qtbase/src/gui/configure.json b/qtbase/src/gui/configure.json index 1f08795c57..12c95742d2 100644 --- a/qtbase/src/gui/configure.json +++ b/qtbase/src/gui/configure.json @@ -834,7 +834,8 @@ "// embedded devices, are not intended to be used together with X. EGL support", "// has to be disabled in plugins like xcb in this case since the native display,", "// window and pixmap types will be different than what an X-based platform", - "// plugin would expect." + "// plugin would expect.", + "#define USE_X11" ], "include": [ "EGL/egl.h", "X11/Xlib.h" ], "main": [ diff --git a/qtbase/src/gui/image/qimage.cpp b/qtbase/src/gui/image/qimage.cpp index a5d708661f..016431fade 100644 --- a/qtbase/src/gui/image/qimage.cpp +++ b/qtbase/src/gui/image/qimage.cpp @@ -2258,6 +2258,7 @@ bool QImage::reinterpretAsFormat(Format format) // In case detach() ran out of memory if (!d) { d = oldD; + d->ref.ref(); return false; } } diff --git a/qtbase/src/gui/image/qpixmapcache.cpp b/qtbase/src/gui/image/qpixmapcache.cpp index 9709df9e0c..b6e5e70f55 100644 --- a/qtbase/src/gui/image/qpixmapcache.cpp +++ b/qtbase/src/gui/image/qpixmapcache.cpp @@ -461,6 +461,11 @@ void QPMCache::clear() for (int i = 0; i < keys.size(); ++i) keys.at(i).d->isValid = false; QCache::clear(); + // Nothing left to flush; stop the timer + if (theid) { + killTimer(theid); + theid = 0; + } } QPixmapCache::KeyData* QPMCache::getKeyData(QPixmapCache::Key *key) diff --git a/qtbase/src/gui/image/qpnghandler.cpp b/qtbase/src/gui/image/qpnghandler.cpp index bbf44a484f..2811d2e049 100644 --- a/qtbase/src/gui/image/qpnghandler.cpp +++ b/qtbase/src/gui/image/qpnghandler.cpp @@ -649,10 +649,10 @@ bool QPngHandlerPrivate::readPngHeader() } if (primaries.areValid()) { colorSpace = QColorSpace(primaries.whitePoint, primaries.redPoint, primaries.greenPoint, primaries.bluePoint, - QColorSpace::TransferFunction::Gamma, fileGamma); + QColorSpace::TransferFunction::Gamma, 1.0f / fileGamma); } else { colorSpace = QColorSpace(QColorSpace::Primaries::SRgb, - QColorSpace::TransferFunction::Gamma, fileGamma); + QColorSpace::TransferFunction::Gamma, 1.0f / fileGamma); } colorSpaceState = GammaChrm; } diff --git a/qtbase/src/gui/image/qppmhandler.cpp b/qtbase/src/gui/image/qppmhandler.cpp index 728259ba9e..b03458bdd9 100644 --- a/qtbase/src/gui/image/qppmhandler.cpp +++ b/qtbase/src/gui/image/qppmhandler.cpp @@ -63,7 +63,7 @@ static void discard_pbm_line(QIODevice *d) } while (res > 0 && buf[res-1] != '\n'); } -static int read_pbm_int(QIODevice *d) +static int read_pbm_int(QIODevice *d, bool *ok) { char c; int val = -1; @@ -97,6 +97,8 @@ static int read_pbm_int(QIODevice *d) else break; } + if (val < 0) + *ok = false; return hasOverflow ? -1 : val; } @@ -113,16 +115,17 @@ static bool read_pbm_header(QIODevice *device, char& type, int& w, int& h, int& if (type < '1' || type > '6') return false; - w = read_pbm_int(device); // get image width - h = read_pbm_int(device); // get image height + bool ok = true; + w = read_pbm_int(device, &ok); // get image width + h = read_pbm_int(device, &ok); // get image height if (type == '1' || type == '4') mcc = 1; // ignore max color component else - mcc = read_pbm_int(device); // get max color component + mcc = read_pbm_int(device, &ok); // get max color component - if (w <= 0 || w > 32767 || h <= 0 || h > 32767 || mcc <= 0 || mcc > 0xffff) - return false; // weird P.M image + if (!ok || w <= 0 || w > 32767 || h <= 0 || h > 32767 || mcc <= 0 || mcc > 0xffff) + return false; // weird P.M image return true; } @@ -233,18 +236,18 @@ static bool read_pbm_body(QIODevice *device, char type, int w, int h, int mcc, Q } else { // read ascii data uchar *p; int n; - char buf; - for (y = 0; (y < h) && (device->peek(&buf, 1) == 1); y++) { + bool ok = true; + for (y = 0; y < h && ok; y++) { p = outImage->scanLine(y); n = pbm_bpl; if (nbits == 1) { int b; int bitsLeft = w; - while (n--) { + while (n-- && ok) { b = 0; for (int i=0; i<8; i++) { if (i < bitsLeft) - b = (b << 1) | (read_pbm_int(device) & 1); + b = (b << 1) | (read_pbm_int(device, &ok) & 1); else b = (b << 1) | (0 & 1); // pad it our self if we need to } @@ -253,36 +256,38 @@ static bool read_pbm_body(QIODevice *device, char type, int w, int h, int mcc, Q } } else if (nbits == 8) { if (mcc == 255) { - while (n--) { - *p++ = read_pbm_int(device); + while (n-- && ok) { + *p++ = read_pbm_int(device, &ok); } } else { - while (n--) { - *p++ = (read_pbm_int(device) & 0xffff) * 255 / mcc; + while (n-- && ok) { + *p++ = (read_pbm_int(device, &ok) & 0xffff) * 255 / mcc; } } } else { // 32 bits n /= 4; int r, g, b; if (mcc == 255) { - while (n--) { - r = read_pbm_int(device); - g = read_pbm_int(device); - b = read_pbm_int(device); + while (n-- && ok) { + r = read_pbm_int(device, &ok); + g = read_pbm_int(device, &ok); + b = read_pbm_int(device, &ok); *((QRgb*)p) = qRgb(r, g, b); p += 4; } } else { - while (n--) { - r = read_pbm_int(device); - g = read_pbm_int(device); - b = read_pbm_int(device); + while (n-- && ok) { + r = read_pbm_int(device, &ok); + g = read_pbm_int(device, &ok); + b = read_pbm_int(device, &ok); *((QRgb*)p) = scale_pbm_color(mcc, r, g, b); p += 4; } } } } + if (!ok) + return false; } if (format == QImage::Format_Mono) { diff --git a/qtbase/src/gui/kernel/qcursor.cpp b/qtbase/src/gui/kernel/qcursor.cpp index d6ccaff8ed..455088241c 100644 --- a/qtbase/src/gui/kernel/qcursor.cpp +++ b/qtbase/src/gui/kernel/qcursor.cpp @@ -251,7 +251,8 @@ void QCursor::setPos(QScreen *screen, int x, int y) { if (screen) { if (QPlatformCursor *cursor = screen->handle()->cursor()) { - const QPoint devicePos = QHighDpi::toNativePixels(QPoint(x, y), screen); + const QPoint pos(x, y); + const QPoint devicePos = QHighDpi::toNativePixels(pos, screen->virtualSiblingAt(pos)); // Need to check, since some X servers generate null mouse move // events, causing looping in applications which call setPos() on // every mouse move event. diff --git a/qtbase/src/gui/kernel/qplatformtheme.cpp b/qtbase/src/gui/kernel/qplatformtheme.cpp index 71521c0339..2325873245 100644 --- a/qtbase/src/gui/kernel/qplatformtheme.cpp +++ b/qtbase/src/gui/kernel/qplatformtheme.cpp @@ -163,6 +163,8 @@ QT_BEGIN_NAMESPACE \value ShowShortcutsInContextMenus (bool) Whether to display shortcut key sequences in context menus. + \value ButtonPressKeys (QList) A list of keys that can be used to press buttons via keyboard input. + \sa themeHint(), QStyle::pixelMetric() */ @@ -563,6 +565,8 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint) } case MouseQuickSelectionThreshold: return QVariant(10); + case ButtonPressKeys: + return QVariant::fromValue(QList({ Qt::Key_Space, Qt::Key_Select })); } return QVariant(); } diff --git a/qtbase/src/gui/kernel/qplatformtheme.h b/qtbase/src/gui/kernel/qplatformtheme.h index 3185fc4541..7e6c9d5740 100644 --- a/qtbase/src/gui/kernel/qplatformtheme.h +++ b/qtbase/src/gui/kernel/qplatformtheme.h @@ -120,7 +120,8 @@ public: TouchDoubleTapDistance, ShowShortcutsInContextMenus, IconFallbackSearchPaths, - MouseQuickSelectionThreshold + MouseQuickSelectionThreshold, + ButtonPressKeys }; enum DialogType { diff --git a/qtbase/src/gui/kernel/qplatformwindow.cpp b/qtbase/src/gui/kernel/qplatformwindow.cpp index e75229324c..7207ff4d7e 100644 --- a/qtbase/src/gui/kernel/qplatformwindow.cpp +++ b/qtbase/src/gui/kernel/qplatformwindow.cpp @@ -229,7 +229,7 @@ bool QPlatformWindow::isActive() const */ bool QPlatformWindow::isAncestorOf(const QPlatformWindow *child) const { - for (const QPlatformWindow *parent = child->parent(); parent; parent = child->parent()) { + for (const QPlatformWindow *parent = child->parent(); parent; parent = parent->parent()) { if (parent == this) return true; } diff --git a/qtbase/src/gui/opengl/qopenglpaintdevice.cpp b/qtbase/src/gui/opengl/qopenglpaintdevice.cpp index 3920a10467..9e7d2861fd 100644 --- a/qtbase/src/gui/opengl/qopenglpaintdevice.cpp +++ b/qtbase/src/gui/opengl/qopenglpaintdevice.cpp @@ -331,7 +331,7 @@ void QOpenGLPaintDevice::setDotsPerMeterX(qreal dpmx) void QOpenGLPaintDevice::setDotsPerMeterY(qreal dpmy) { - d_ptr->dpmx = dpmy; + d_ptr->dpmy = dpmy; } /*! diff --git a/qtbase/src/gui/painting/qblendfunctions_p.h b/qtbase/src/gui/painting/qblendfunctions_p.h index 080da98ec4..6997d62b3c 100644 --- a/qtbase/src/gui/painting/qblendfunctions_p.h +++ b/qtbase/src/gui/painting/qblendfunctions_p.h @@ -246,25 +246,32 @@ void qt_transform_image_rasterize(DestT *destPixels, int dbpl, int dudx, int dvdx, int dudy, int dvdy, int u0, int v0, Blender blender) { - int fromY = qMax(qRound(topY), clip.top()); - int toY = qMin(qRound(bottomY), clip.top() + clip.height()); + qint64 fromY = qMax(qRound(topY), clip.top()); + qint64 toY = qMin(qRound(bottomY), clip.top() + clip.height()); if (fromY >= toY) return; qreal leftSlope = (bottomLeft.x - topLeft.x) / (bottomLeft.y - topLeft.y); qreal rightSlope = (bottomRight.x - topRight.x) / (bottomRight.y - topRight.y); - int dx_l = int(leftSlope * 0x10000); - int dx_r = int(rightSlope * 0x10000); - int x_l = int((topLeft.x + (qreal(0.5) + fromY - topLeft.y) * leftSlope + qreal(0.5)) * 0x10000); - int x_r = int((topRight.x + (qreal(0.5) + fromY - topRight.y) * rightSlope + qreal(0.5)) * 0x10000); - - int fromX, toX, x1, x2, u, v, i, ii; + qint64 dx_l = qint64(leftSlope * 0x10000); + qint64 dx_r = qint64(rightSlope * 0x10000); + qint64 x_l = qint64((topLeft.x + (qreal(0.5) + fromY - topLeft.y) * leftSlope + qreal(0.5)) * 0x10000); + qint64 x_r = qint64((topRight.x + (qreal(0.5) + fromY - topRight.y) * rightSlope + qreal(0.5)) * 0x10000); + + qint64 sourceRectTop = qint64(sourceRect.top()); + qint64 sourceRectLeft = qint64(sourceRect.left()); + qint64 sourceRectWidth = qint64(sourceRect.width()); + qint64 sourceRectHeight = qint64(sourceRect.height()); + qint64 clipLeft = qint64(clip.left()); + qint64 clipWidth = qint64(clip.width()); + + qint64 fromX, toX, x1, x2, u, v, i, ii; DestT *line; - for (int y = fromY; y < toY; ++y) { + for (qint64 y = fromY; y < toY; ++y) { line = reinterpret_cast(reinterpret_cast(destPixels) + y * dbpl); - fromX = qMax(x_l >> 16, clip.left()); - toX = qMin(x_r >> 16, clip.left() + clip.width()); + fromX = qMax(x_l >> 16, clipLeft); + toX = qMin(x_r >> 16, clipLeft + clipWidth); if (fromX < toX) { // Because of rounding, we can get source coordinates outside the source image. // Clamp these coordinates to the source rect to avoid segmentation fault and @@ -275,10 +282,10 @@ void qt_transform_image_rasterize(DestT *destPixels, int dbpl, u = x1 * dudx + y * dudy + u0; v = x1 * dvdx + y * dvdy + v0; for (; x1 < toX; ++x1) { - int uu = u >> 16; - int vv = v >> 16; - if (uu >= sourceRect.left() && uu < sourceRect.left() + sourceRect.width() - && vv >= sourceRect.top() && vv < sourceRect.top() + sourceRect.height()) { + qint64 uu = u >> 16; + qint64 vv = v >> 16; + if (uu >= sourceRectLeft && uu < sourceRectLeft + sourceRectWidth + && vv >= sourceRectTop && vv < sourceRectTop + sourceRectHeight) { break; } u += dudx; @@ -290,10 +297,10 @@ void qt_transform_image_rasterize(DestT *destPixels, int dbpl, u = (x2 - 1) * dudx + y * dudy + u0; v = (x2 - 1) * dvdx + y * dvdy + v0; for (; x2 > x1; --x2) { - int uu = u >> 16; - int vv = v >> 16; - if (uu >= sourceRect.left() && uu < sourceRect.left() + sourceRect.width() - && vv >= sourceRect.top() && vv < sourceRect.top() + sourceRect.height()) { + qint64 uu = u >> 16; + qint64 vv = v >> 16; + if (uu >= sourceRectLeft && uu < sourceRectLeft + sourceRectWidth + && vv >= sourceRectTop && vv < sourceRectTop + sourceRectHeight) { break; } u -= dudx; @@ -308,8 +315,8 @@ void qt_transform_image_rasterize(DestT *destPixels, int dbpl, // Beginning of the scan line, with per-pixel checks. i = x1 - fromX; while (i) { - int uu = qBound(sourceRect.left(), u >> 16, sourceRect.left() + sourceRect.width() - 1); - int vv = qBound(sourceRect.top(), v >> 16, sourceRect.top() + sourceRect.height() - 1); + qint64 uu = qBound(sourceRectLeft, u >> 16, sourceRectLeft + sourceRectWidth - 1); + qint64 vv = qBound(sourceRectTop, v >> 16, sourceRectTop + sourceRectHeight - 1); blender.write(line, reinterpret_cast(reinterpret_cast(srcPixels) + vv * sbpl)[uu]); u += dudx; v += dvdx; @@ -348,8 +355,8 @@ void qt_transform_image_rasterize(DestT *destPixels, int dbpl, // End of the scan line, with per-pixel checks. i = toX - x2; while (i) { - int uu = qBound(sourceRect.left(), u >> 16, sourceRect.left() + sourceRect.width() - 1); - int vv = qBound(sourceRect.top(), v >> 16, sourceRect.top() + sourceRect.height() - 1); + qint64 uu = qBound(sourceRectLeft, u >> 16, sourceRectLeft + sourceRectWidth - 1); + qint64 vv = qBound(sourceRectTop, v >> 16, sourceRectTop + sourceRectHeight - 1); blender.write(line, reinterpret_cast(reinterpret_cast(srcPixels) + vv * sbpl)[uu]); u += dudx; v += dvdx; diff --git a/qtbase/src/gui/painting/qpaintengine_raster.cpp b/qtbase/src/gui/painting/qpaintengine_raster.cpp index a3e199cec9..b25700692c 100644 --- a/qtbase/src/gui/painting/qpaintengine_raster.cpp +++ b/qtbase/src/gui/painting/qpaintengine_raster.cpp @@ -1793,7 +1793,7 @@ void QRasterPaintEngine::fill(const QVectorPath &path, const QBrush &brush) QRectF cpRect = path.controlPointRect(); const QRectF pathDeviceRect = s->matrix.mapRect(cpRect); // Skip paths that by conservative estimates are completely outside the paint device. - if (!pathDeviceRect.intersects(QRectF(d->deviceRect))) + if (!pathDeviceRect.intersects(QRectF(d->deviceRect)) || !pathDeviceRect.isValid()) return; ProcessSpans blend = d->getBrushFunc(pathDeviceRect, &s->brushData); diff --git a/qtbase/src/gui/painting/qpaintengineex.cpp b/qtbase/src/gui/painting/qpaintengineex.cpp index 5d8f89eadd..9fe510827a 100644 --- a/qtbase/src/gui/painting/qpaintengineex.cpp +++ b/qtbase/src/gui/painting/qpaintengineex.cpp @@ -385,7 +385,7 @@ QPainterState *QPaintEngineEx::createState(QPainterState *orig) const Q_GUI_EXPORT extern bool qt_scaleForTransform(const QTransform &transform, qreal *scale); // qtransform.cpp -void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) +void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &inPen) { #ifdef QT_DEBUG_DRAW qDebug() << "QPaintEngineEx::stroke()" << pen; @@ -403,6 +403,38 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) d->stroker.setCubicToHook(qpaintengineex_cubicTo); } + QRectF clipRect; + QPen pen = inPen; + if (pen.style() > Qt::SolidLine) { + QRectF cpRect = path.controlPointRect(); + const QTransform &xf = state()->matrix; + if (qt_pen_is_cosmetic(pen, state()->renderHints)){ + clipRect = d->exDeviceRect; + cpRect.translate(xf.dx(), xf.dy()); + } else { + clipRect = xf.inverted().mapRect(QRectF(d->exDeviceRect)); + } + // Check to avoid generating unwieldy amount of dashes that will not be visible anyway + qreal pw = pen.widthF() ? pen.widthF() : 1; + QRectF extentRect = cpRect.adjusted(-pw, -pw, pw, pw) & clipRect; + qreal extent = qMax(extentRect.width(), extentRect.height()); + qreal patternLength = 0; + const QVector pattern = pen.dashPattern(); + const int patternSize = qMin(pattern.size(), 32); + for (int i = 0; i < patternSize; i++) + patternLength += qMax(pattern.at(i), qreal(0)); + patternLength *= pw; + if (qFuzzyIsNull(patternLength)) { + pen.setStyle(Qt::NoPen); + } else if (extent / patternLength > 10000) { + // approximate stream of tiny dashes with semi-transparent solid line + pen.setStyle(Qt::SolidLine); + QColor color(pen.color()); + color.setAlpha(color.alpha() / 2); + pen.setColor(color); + } + } + if (!qpen_fast_equals(pen, d->strokerPen)) { d->strokerPen = pen; d->stroker.setJoinStyle(pen.joinStyle()); @@ -430,14 +462,8 @@ void QPaintEngineEx::stroke(const QVectorPath &path, const QPen &pen) return; } - if (pen.style() > Qt::SolidLine) { - if (qt_pen_is_cosmetic(pen, state()->renderHints)){ - d->activeStroker->setClipRect(d->exDeviceRect); - } else { - QRectF clipRect = state()->matrix.inverted().mapRect(QRectF(d->exDeviceRect)); - d->activeStroker->setClipRect(clipRect); - } - } + if (!clipRect.isNull()) + d->activeStroker->setClipRect(clipRect); if (d->activeStroker == &d->stroker) d->stroker.setForceOpen(path.hasExplicitOpen()); diff --git a/qtbase/src/gui/painting/qpainterpath.cpp b/qtbase/src/gui/painting/qpainterpath.cpp index f9544a3241..d80fafeaf1 100644 --- a/qtbase/src/gui/painting/qpainterpath.cpp +++ b/qtbase/src/gui/painting/qpainterpath.cpp @@ -1253,7 +1253,7 @@ void QPainterPath::addText(const QPointF &point, const QFont &f, const QString & if (si.analysis.flags < QScriptAnalysis::TabOrObject) { QGlyphLayout glyphs = eng->shapedGlyphs(&si); - QFontEngine *fe = f.d->engineForScript(si.analysis.script); + QFontEngine *fe = eng->fontEngine(si); Q_ASSERT(fe); fe->addOutlineToPath(x, y, glyphs, this, si.analysis.bidiLevel % 2 diff --git a/qtbase/src/gui/painting/qpathclipper_p.h b/qtbase/src/gui/painting/qpathclipper_p.h index 9444a87b71..18f64c5e8c 100644 --- a/qtbase/src/gui/painting/qpathclipper_p.h +++ b/qtbase/src/gui/painting/qpathclipper_p.h @@ -156,7 +156,7 @@ public: int vertex(Direction direction) const; private: - int m_next[2][2]; + int m_next[2][2] = { { -1, -1 }, { -1, -1 } }; }; class QPathSegments @@ -296,10 +296,6 @@ inline QPathEdge::QPathEdge(int a, int b) , angle(0) , invAngle(0) { - m_next[0][0] = -1; - m_next[1][0] = -1; - m_next[0][0] = -1; - m_next[1][0] = -1; } inline int QPathEdge::next(Traversal traversal, Direction direction) const diff --git a/qtbase/src/gui/painting/qpdf.cpp b/qtbase/src/gui/painting/qpdf.cpp index de9fc13331..2c8d3c3b53 100644 --- a/qtbase/src/gui/painting/qpdf.cpp +++ b/qtbase/src/gui/painting/qpdf.cpp @@ -856,14 +856,14 @@ void QPdfEngine::drawRects (const QRectF *rects, int rectCount) if (!d->hasPen && !d->hasBrush) return; - if (d->simplePen || !d->hasPen) { - // draw strokes natively in this case for better output - if(!d->simplePen && !d->stroker.matrix.isIdentity()) + if ((d->simplePen && !d->needsTransform) || !d->hasPen) { + // draw natively in this case for better output + if (!d->hasPen && d->needsTransform) // i.e. this is just a fillrect *d->currentPage << "q\n" << QPdf::generateMatrix(d->stroker.matrix); for (int i = 0; i < rectCount; ++i) *d->currentPage << rects[i].x() << rects[i].y() << rects[i].width() << rects[i].height() << "re\n"; *d->currentPage << (d->hasPen ? (d->hasBrush ? "B\n" : "S\n") : "f\n"); - if(!d->simplePen && !d->stroker.matrix.isIdentity()) + if (!d->hasPen && d->needsTransform) *d->currentPage << "Q\n"; } else { QPainterPath p; @@ -920,7 +920,8 @@ void QPdfEngine::drawPath (const QPainterPath &p) if (d->simplePen) { // draw strokes natively in this case for better output - *d->currentPage << QPdf::generatePath(p, QTransform(), d->hasBrush ? QPdf::FillAndStrokePath : QPdf::StrokePath); + *d->currentPage << QPdf::generatePath(p, d->needsTransform ? d->stroker.matrix : QTransform(), + d->hasBrush ? QPdf::FillAndStrokePath : QPdf::StrokePath); } else { if (d->hasBrush) *d->currentPage << QPdf::generatePath(p, d->stroker.matrix, QPdf::FillPath); @@ -967,7 +968,7 @@ void QPdfEngine::drawPixmap (const QRectF &rectangle, const QPixmap &pixmap, con *d->currentPage << QPdf::generateMatrix(QTransform(rectangle.width() / sr.width(), 0, 0, rectangle.height() / sr.height(), - rectangle.x(), rectangle.y()) * (d->simplePen ? QTransform() : d->stroker.matrix)); + rectangle.x(), rectangle.y()) * (!d->needsTransform ? QTransform() : d->stroker.matrix)); if (bitmap) { // set current pen as d->brush d->brush = d->pen.brush(); @@ -1007,7 +1008,7 @@ void QPdfEngine::drawImage(const QRectF &rectangle, const QImage &image, const Q *d->currentPage << QPdf::generateMatrix(QTransform(rectangle.width() / sr.width(), 0, 0, rectangle.height() / sr.height(), - rectangle.x(), rectangle.y()) * (d->simplePen ? QTransform() : d->stroker.matrix)); + rectangle.x(), rectangle.y()) * (!d->needsTransform ? QTransform() : d->stroker.matrix)); setBrush(); d->currentPage->streamImage(im.width(), im.height(), object); *d->currentPage << "Q\n"; @@ -1056,7 +1057,7 @@ void QPdfEngine::drawTextItem(const QPointF &p, const QTextItem &textItem) } *d->currentPage << "q\n"; - if(!d->simplePen) + if (d->needsTransform) *d->currentPage << QPdf::generateMatrix(d->stroker.matrix); bool hp = d->hasPen; @@ -1135,12 +1136,12 @@ void QPdfEngine::updateState(const QPaintEngineState &state) d->pen = state.pen(); } d->hasPen = d->pen.style() != Qt::NoPen; + bool oldCosmetic = d->stroker.cosmeticPen; d->stroker.setPen(d->pen, state.renderHints()); QBrush penBrush = d->pen.brush(); - bool cosmeticPen = qt_pen_is_cosmetic(d->pen, state.renderHints()); bool oldSimple = d->simplePen; - d->simplePen = (d->hasPen && !cosmeticPen && (penBrush.style() == Qt::SolidPattern) && penBrush.isOpaque() && d->opacity == 1.0); - if (oldSimple != d->simplePen) + d->simplePen = (d->hasPen && (penBrush.style() == Qt::SolidPattern) && penBrush.isOpaque() && d->opacity == 1.0); + if (oldSimple != d->simplePen || oldCosmetic != d->stroker.cosmeticPen) flags |= DirtyTransform; } else if (flags & DirtyHints) { d->stroker.setPen(d->pen, state.renderHints()); @@ -1224,8 +1225,13 @@ void QPdfEngine::setupGraphicsState(QPaintEngine::DirtyFlags flags) if (flags & DirtyTransform) { *d->currentPage << "q\n"; - if (d->simplePen && !d->stroker.matrix.isIdentity()) - *d->currentPage << QPdf::generateMatrix(d->stroker.matrix); + d->needsTransform = false; + if (!d->stroker.matrix.isIdentity()) { + if (d->simplePen && !d->stroker.cosmeticPen) + *d->currentPage << QPdf::generateMatrix(d->stroker.matrix); + else + d->needsTransform = true; // I.e. page-wide xf not set, local xf needed + } } if (flags & DirtyBrush) setBrush(); @@ -1480,7 +1486,7 @@ int QPdfEngine::metric(QPaintDevice::PaintDeviceMetric metricType) const QPdfEnginePrivate::QPdfEnginePrivate() : clipEnabled(false), allClipped(false), hasPen(true), hasBrush(false), simplePen(false), - pdfVersion(QPdfEngine::Version_1_4), + needsTransform(false), pdfVersion(QPdfEngine::Version_1_4), outDevice(nullptr), ownsDevice(false), embedFonts(true), grayscale(false), @@ -1539,6 +1545,7 @@ bool QPdfEngine::begin(QPaintDevice *pdev) d->graphicsState = 0; d->patternColorSpace = 0; d->simplePen = false; + d->needsTransform = false; d->pages.clear(); d->imageCache.clear(); @@ -2753,6 +2760,8 @@ int QPdfEnginePrivate::addBrushPattern(const QTransform &m, bool *specifyColor, return gradientBrush(brush, matrix, gStateObject); } + matrix = brush.transform() * matrix; + if ((!brush.isOpaque() && brush.style() < Qt::LinearGradientPattern) || opacity != 1.0) *gStateObject = addConstantAlphaObject(qRound(brush.color().alpha() * opacity), qRound(pen.color().alpha() * opacity)); diff --git a/qtbase/src/gui/painting/qpdf_p.h b/qtbase/src/gui/painting/qpdf_p.h index 4ff540e67b..6964c67d93 100644 --- a/qtbase/src/gui/painting/qpdf_p.h +++ b/qtbase/src/gui/painting/qpdf_p.h @@ -271,6 +271,7 @@ public: bool hasPen; bool hasBrush; bool simplePen; + bool needsTransform; qreal opacity; QPdfEngine::PdfVersion pdfVersion; diff --git a/qtbase/src/gui/painting/qstroker.cpp b/qtbase/src/gui/painting/qstroker.cpp index 22302f9790..07fd1ac105 100644 --- a/qtbase/src/gui/painting/qstroker.cpp +++ b/qtbase/src/gui/painting/qstroker.cpp @@ -1179,6 +1179,7 @@ void QDashStroker::processCurrentSubpath() bool done = pos >= estop; + int maxDashes = dashCount; if (clipping) { // Check if the entire line can be clipped away. if (!lineIntersectsRect(prev, e, clip_tl, clip_br)) { @@ -1196,7 +1197,7 @@ void QDashStroker::processCurrentSubpath() done = true; } else { // Dash is on this line pos = dpos + estart; - done = pos >= estop; + done = --maxDashes > 0 ? pos >= estop : estop; if (++idash >= dashCount) idash = 0; doffset = 0; // full segment so no offset on next. diff --git a/qtbase/src/gui/text/qfont.cpp b/qtbase/src/gui/text/qfont.cpp index 5a1fa36e5c..3d044edd5a 100644 --- a/qtbase/src/gui/text/qfont.cpp +++ b/qtbase/src/gui/text/qfont.cpp @@ -220,8 +220,10 @@ QFontPrivate::~QFontPrivate() if (engineData && !engineData->ref.deref()) delete engineData; engineData = nullptr; - if (scFont && scFont != this) - scFont->ref.deref(); + if (scFont && scFont != this) { + if (!scFont->ref.deref()) + delete scFont; + } scFont = nullptr; } @@ -630,8 +632,10 @@ void QFont::detach() if (d->engineData && !d->engineData->ref.deref()) delete d->engineData; d->engineData = nullptr; - if (d->scFont && d->scFont != d.data()) - d->scFont->ref.deref(); + if (d->scFont && d->scFont != d.data()) { + if (!d->scFont->ref.deref()) + delete d->scFont; + } d->scFont = nullptr; return; } diff --git a/qtbase/src/gui/text/qfontdatabase.cpp b/qtbase/src/gui/text/qfontdatabase.cpp index 72dcac6904..feb8ce22f2 100644 --- a/qtbase/src/gui/text/qfontdatabase.cpp +++ b/qtbase/src/gui/text/qfontdatabase.cpp @@ -503,12 +503,10 @@ void QFontDatabasePrivate::invalidate() emit static_cast(QCoreApplication::instance())->fontDatabaseChanged(); } -QtFontFamily *QFontDatabasePrivate::family(const QString &family, FamilyRequestFlags flags) +QtFontFamily *QFontDatabasePrivate::family(const QString &f, FamilyRequestFlags flags) { QtFontFamily *fam = nullptr; - const QString f = family.trimmed(); - int low = 0; int high = count; int pos = count / 2; @@ -966,7 +964,7 @@ QFontEngine *loadSingleEngine(int script, if (style->key.stretch != 0 && request.stretch != 0 && (request.styleName.isEmpty() || request.styleName != style->styleName)) { def.stretch = (request.stretch * 100 + style->key.stretch / 2) / style->key.stretch; - } else { + } else if (request.stretch == QFont::AnyStretch) { def.stretch = 100; } diff --git a/qtbase/src/gui/text/qtextdocumentlayout.cpp b/qtbase/src/gui/text/qtextdocumentlayout.cpp index 9d70873590..28610711ef 100644 --- a/qtbase/src/gui/text/qtextdocumentlayout.cpp +++ b/qtbase/src/gui/text/qtextdocumentlayout.cpp @@ -2123,7 +2123,7 @@ void QTextDocumentLayoutPrivate::drawListItem(const QPointF &offset, QPainter *p { Q_Q(const QTextDocumentLayout); const QTextBlockFormat blockFormat = bl.blockFormat(); - const QTextCharFormat charFormat = QTextCursor(bl).charFormat(); + const QTextCharFormat charFormat = bl.charFormat(); QFont font(charFormat.font()); if (q->paintDevice()) font = QFont(font, q->paintDevice()); @@ -2357,9 +2357,10 @@ QTextLayoutStruct QTextDocumentLayoutPrivate::layoutCell(QTextTable *t, const QT floatMinWidth = qMax(floatMinWidth, cd->minimumWidth); } - // constraint the maximumWidth by the minimum width of the fixed size floats, to - // keep them visible + // constraint the maximum/minimumWidth by the minimum width of the fixed size floats, + // to keep them visible layoutStruct.maximumWidth = qMax(layoutStruct.maximumWidth, floatMinWidth); + layoutStruct.minimumWidth = qMax(layoutStruct.minimumWidth, floatMinWidth); // as floats in cells get added to the table's float list but must not affect // floats in other cells we must clear the list here. @@ -2536,6 +2537,8 @@ recalc_minmax_widths: for (int n = 0; n < cspan; ++n) { const int col = i + n; QFixed w = widthToDistribute / (cspan - n); + if (td->maxWidths[col] != QFIXED_MAX) + w = qMax(td->maxWidths[col], w); td->maxWidths[col] = qMax(td->minWidths.at(col), w); widthToDistribute -= td->maxWidths.at(col); if (widthToDistribute <= 0) diff --git a/qtbase/src/gui/text/qtextengine.cpp b/qtbase/src/gui/text/qtextengine.cpp index 8af64f9cf8..ec38d66b1c 100644 --- a/qtbase/src/gui/text/qtextengine.cpp +++ b/qtbase/src/gui/text/qtextengine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtGui module of the Qt Toolkit. @@ -258,7 +258,7 @@ struct QBidiAlgorithm { for (int i = 0; i < length; ++i) { int pos = i; uint uc = text[i].unicode(); - if (QChar::isHighSurrogate(uc) && i < length - 1) { + if (QChar::isHighSurrogate(uc) && i < length - 1 && text[i + 1].isLowSurrogate()) { ++i; analysis[i].bidiDirection = QChar::DirNSM; uc = QChar::surrogateToUcs4(ushort(uc), text[i].unicode()); @@ -1559,6 +1559,12 @@ void QTextEngine::shapeText(int item) const // Overwrite with 0 token to indicate failure QGlyphLayout g = availableGlyphs(&si); g.glyphs[0] = 0; + g.attributes[0].clusterStart = true; + + ushort *log_clusters = logClusters(&si); + for (int i = 0; i < itemLength; ++i) + log_clusters[i] = 0; + return; } diff --git a/qtbase/src/gui/text/qtextodfwriter.cpp b/qtbase/src/gui/text/qtextodfwriter.cpp index 155ec43c50..b3ec43702c 100644 --- a/qtbase/src/gui/text/qtextodfwriter.cpp +++ b/qtbase/src/gui/text/qtextodfwriter.cpp @@ -455,7 +455,7 @@ void QTextOdfWriter::writeInlineCharacter(QXmlStreamWriter &writer, const QTextF name.prepend(QLatin1String("qrc")); QUrl url = QUrl(name); const QVariant variant = m_document->resource(QTextDocument::ImageResource, url); - if (variant.userType() == QMetaType::QImage) { + if (variant.userType() == QMetaType::QPixmap || variant.userType() == QMetaType::QImage) { image = qvariant_cast(variant); } else if (variant.userType() == QMetaType::QByteArray) { data = variant.toByteArray(); @@ -476,7 +476,7 @@ void QTextOdfWriter::writeInlineCharacter(QXmlStreamWriter &writer, const QTextF QBuffer imageBytes; int imgQuality = imageFormat.quality(); - if (imgQuality >= 100 || imgQuality < 0 || image.hasAlphaChannel()) { + if (imgQuality >= 100 || imgQuality <= 0 || image.hasAlphaChannel()) { QImageWriter imageWriter(&imageBytes, "png"); imageWriter.write(image); diff --git a/qtbase/src/gui/util/qdesktopservices.cpp b/qtbase/src/gui/util/qdesktopservices.cpp index fbb63a9408..1ed2178913 100644 --- a/qtbase/src/gui/util/qdesktopservices.cpp +++ b/qtbase/src/gui/util/qdesktopservices.cpp @@ -54,6 +54,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE class QOpenUrlHandlerRegistry : public QObject @@ -81,6 +83,7 @@ Q_GLOBAL_STATIC(QOpenUrlHandlerRegistry, handlerRegistry) void QOpenUrlHandlerRegistry::handlerDestroyed(QObject *handler) { + const auto lock = qt_scoped_lock(mutex); HandlerHash::Iterator it = handlers.begin(); while (it != handlers.end()) { if (it->receiver == handler) { diff --git a/qtbase/src/gui/util/qpkmhandler.cpp b/qtbase/src/gui/util/qpkmhandler.cpp index e0c3b75efe..3414f9d8ba 100644 --- a/qtbase/src/gui/util/qpkmhandler.cpp +++ b/qtbase/src/gui/util/qpkmhandler.cpp @@ -57,7 +57,7 @@ struct PkmType quint32 bytesPerBlock; }; -static PkmType typeMap[5] = { +static constexpr PkmType typeMap[5] = { { 0x8D64, 8 }, // GL_ETC1_RGB8_OES { 0x9274, 8 }, // GL_COMPRESSED_RGB8_ETC2 { 0, 0 }, // unused (obsolete) diff --git a/qtbase/src/network/access/qhttpnetworkconnection.cpp b/qtbase/src/network/access/qhttpnetworkconnection.cpp index 9745f3b322..b918da48c4 100644 --- a/qtbase/src/network/access/qhttpnetworkconnection.cpp +++ b/qtbase/src/network/access/qhttpnetworkconnection.cpp @@ -1120,31 +1120,50 @@ void QHttpNetworkConnectionPrivate::_q_startNextRequest() int normalRequests = queuedRequests - preConnectRequests; neededOpenChannels = qMax(normalRequests, preConnectRequests); } + + if (neededOpenChannels <= 0) + return; + + QQueue channelsToConnect; + + // use previously used channels first for (int i = 0; i < activeChannelCount && neededOpenChannels > 0; ++i) { - bool connectChannel = false; - if (channels[i].socket) { - if ((channels[i].socket->state() == QAbstractSocket::ConnectingState) - || (channels[i].socket->state() == QAbstractSocket::HostLookupState) - || channels[i].pendingEncrypt) // pendingEncrypt == "EncryptingState" - neededOpenChannels--; - - if (neededOpenChannels <= 0) - break; - if (!channels[i].reply && !channels[i].isSocketBusy() && (channels[i].socket->state() == QAbstractSocket::UnconnectedState)) - connectChannel = true; - } else { // not previously used channel - connectChannel = true; + if (!channels[i].socket) + continue; + + if ((channels[i].socket->state() == QAbstractSocket::ConnectingState) + || (channels[i].socket->state() == QAbstractSocket::HostLookupState) + || channels[i].pendingEncrypt) { // pendingEncrypt == "EncryptingState" + neededOpenChannels--; + continue; } - if (connectChannel) { - if (networkLayerState == IPv4) - channels[i].networkLayerPreference = QAbstractSocket::IPv4Protocol; - else if (networkLayerState == IPv6) - channels[i].networkLayerPreference = QAbstractSocket::IPv6Protocol; - channels[i].ensureConnection(); + if (!channels[i].reply && !channels[i].isSocketBusy() + && (channels[i].socket->state() == QAbstractSocket::UnconnectedState)) { + channelsToConnect.enqueue(i); neededOpenChannels--; } } + + // use other channels + for (int i = 0; i < activeChannelCount && neededOpenChannels > 0; ++i) { + if (channels[i].socket) + continue; + + channelsToConnect.enqueue(i); + neededOpenChannels--; + } + + while (!channelsToConnect.isEmpty()) { + const int channel = channelsToConnect.dequeue(); + + if (networkLayerState == IPv4) + channels[channel].networkLayerPreference = QAbstractSocket::IPv4Protocol; + else if (networkLayerState == IPv6) + channels[channel].networkLayerPreference = QAbstractSocket::IPv6Protocol; + + channels[channel].ensureConnection(); + } } diff --git a/qtbase/src/network/doc/src/ssl.qdoc b/qtbase/src/network/doc/src/ssl.qdoc index e485a1b393..efe4111cfe 100644 --- a/qtbase/src/network/doc/src/ssl.qdoc +++ b/qtbase/src/network/doc/src/ssl.qdoc @@ -36,8 +36,8 @@ the Secure Sockets Layer (SSL) protocol, using the \l{OpenSSL Toolkit} to perform encryption and protocol handling. - From Qt version 5.6 onwards, the officially supported version for OpenSSL - is 1.0.0 or later. + From Qt version 5.15 onwards, the officially supported version for OpenSSL + is 1.1.1 or later. \annotatedlist ssl diff --git a/qtbase/src/network/kernel/qauthenticator.cpp b/qtbase/src/network/kernel/qauthenticator.cpp index 86242b011f..c317d1fe39 100644 --- a/qtbase/src/network/kernel/qauthenticator.cpp +++ b/qtbase/src/network/kernel/qauthenticator.cpp @@ -50,6 +50,7 @@ #include #include #include +#include "private/qsystemlibrary_p.h" #ifdef Q_OS_WIN #include @@ -1542,7 +1543,7 @@ static bool q_SSPI_library_load() // Initialize security interface if (pSecurityFunctionTable == nullptr) { - securityDLLHandle = LoadLibrary(L"secur32.dll"); + securityDLLHandle = QSystemLibrary::load(L"secur32"); if (securityDLLHandle != nullptr) { INIT_SECURITY_INTERFACE pInitSecurityInterface = reinterpret_cast( diff --git a/qtbase/src/network/kernel/qhostinfo_unix.cpp b/qtbase/src/network/kernel/qhostinfo_unix.cpp index 9b0a2ee669..73679c9ef1 100644 --- a/qtbase/src/network/kernel/qhostinfo_unix.cpp +++ b/qtbase/src/network/kernel/qhostinfo_unix.cpp @@ -122,7 +122,6 @@ static QFunctionPointer resolveSymbol(QLibrary &lib, const char *sym) LibResolv::LibResolv() { - QLibrary lib; #ifdef LIBRESOLV_SO lib.setFileName(QStringLiteral(LIBRESOLV_SO)); if (!lib.load()) diff --git a/qtbase/src/network/socket/qhttpsocketengine.cpp b/qtbase/src/network/socket/qhttpsocketengine.cpp index ca7680b71f..6629b7eace 100644 --- a/qtbase/src/network/socket/qhttpsocketengine.cpp +++ b/qtbase/src/network/socket/qhttpsocketengine.cpp @@ -645,7 +645,7 @@ void QHttpSocketEngine::slotSocketReadNotification() d->socket->readAll(); //We're done with the reply and need to reset it for the next connection delete d->reply; - d->reply = new QHttpNetworkReply; + d->reply = new QHttpNetworkReply(QUrl(), this); } if (priv->phase == QAuthenticatorPrivate::Done) diff --git a/qtbase/src/network/ssl/qsslcontext_openssl.cpp b/qtbase/src/network/ssl/qsslcontext_openssl.cpp index c9f202f573..d0a428c2d2 100644 --- a/qtbase/src/network/ssl/qsslcontext_openssl.cpp +++ b/qtbase/src/network/ssl/qsslcontext_openssl.cpp @@ -409,7 +409,7 @@ init_context: break; case QSsl::DtlsV1_0OrLater: minVersion = DTLS1_VERSION; - maxVersion = DTLS_MAX_VERSION; + maxVersion = 0; break; case QSsl::DtlsV1_2: minVersion = DTLS1_2_VERSION; @@ -417,7 +417,7 @@ init_context: break; case QSsl::DtlsV1_2OrLater: minVersion = DTLS1_2_VERSION; - maxVersion = DTLS_MAX_VERSION; + maxVersion = 0; break; case QSsl::TlsV1_3OrLater: #ifdef TLS1_3_VERSION diff --git a/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp b/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp index aaf8741130..b58935372c 100644 --- a/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp +++ b/qtbase/src/network/ssl/qssldiffiehellmanparameters_openssl.cpp @@ -59,57 +59,6 @@ QT_BEGIN_NAMESPACE -#ifdef OPENSSL_NO_DEPRECATED_3_0 - -static int q_DH_check(DH *dh, int *status) -{ - // DH_check was first deprecated in OpenSSL 3.0.0, as low-level - // API; the EVP_PKEY family of functions was advised as an alternative. - // As of now EVP_PKEY_params_check ends up calling ... DH_check, - // which is good enough. - - Q_ASSERT(dh); - Q_ASSERT(status); - - EVP_PKEY *key = q_EVP_PKEY_new(); - if (!key) { - qCWarning(lcSsl, "EVP_PKEY_new failed"); - QSslSocketBackendPrivate::logAndClearErrorQueue(); - return 0; - } - const auto keyDeleter = qScopeGuard([key](){ - q_EVP_PKEY_free(key); - }); - if (!q_EVP_PKEY_set1_DH(key, dh)) { - qCWarning(lcSsl, "EVP_PKEY_set1_DH failed"); - QSslSocketBackendPrivate::logAndClearErrorQueue(); - return 0; - } - - EVP_PKEY_CTX *keyCtx = q_EVP_PKEY_CTX_new(key, nullptr); - if (!keyCtx) { - qCWarning(lcSsl, "EVP_PKEY_CTX_new failed"); - QSslSocketBackendPrivate::logAndClearErrorQueue(); - return 0; - } - const auto ctxDeleter = qScopeGuard([keyCtx]{ - q_EVP_PKEY_CTX_free(keyCtx); - }); - - const int result = q_EVP_PKEY_param_check(keyCtx); - QSslSocketBackendPrivate::logAndClearErrorQueue(); - // Note: unlike DH_check, we cannot obtain the 'status', - // if the 'result' is 0 (actually the result is 1 only - // if this 'status' was 0). We could probably check the - // errors from the error queue, but it's not needed anyway - // - see the 'isSafeDH' below, how it returns immediately - // on 0. - Q_UNUSED(status) - - return result; -} -#endif // OPENSSL_NO_DEPRECATED_3_0 - static bool isSafeDH(DH *dh) { int status = 0; diff --git a/qtbase/src/network/ssl/qsslkey_openssl.cpp b/qtbase/src/network/ssl/qsslkey_openssl.cpp index 43cb8c6de8..10f6c6c26e 100644 --- a/qtbase/src/network/ssl/qsslkey_openssl.cpp +++ b/qtbase/src/network/ssl/qsslkey_openssl.cpp @@ -348,7 +348,12 @@ static QByteArray doCrypt(QSslKeyPrivate::Cipher cipher, const QByteArray &data, EVP_CIPHER_CTX *ctx = q_EVP_CIPHER_CTX_new(); q_EVP_CIPHER_CTX_reset(ctx); - q_EVP_CipherInit(ctx, type, nullptr, nullptr, enc); + if (q_EVP_CipherInit(ctx, type, nullptr, nullptr, enc) != 1) { + q_EVP_CIPHER_CTX_free(ctx); + QSslSocketBackendPrivate::logAndClearErrorQueue(); + return {}; + } + q_EVP_CIPHER_CTX_set_key_length(ctx, key.size()); if (cipher == QSslKeyPrivate::Rc2Cbc) q_EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_SET_RC2_KEY_BITS, 8 * key.size(), nullptr); diff --git a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp index 94aa5a5c1d..f89f5206a3 100644 --- a/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp +++ b/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp @@ -148,7 +148,6 @@ DEFINEFUNC(int, EVP_PKEY_up_ref, EVP_PKEY *a, a, return 0, return) DEFINEFUNC2(EVP_PKEY_CTX *, EVP_PKEY_CTX_new, EVP_PKEY *pkey, pkey, ENGINE *e, e, return nullptr, return) DEFINEFUNC(int, EVP_PKEY_param_check, EVP_PKEY_CTX *ctx, ctx, return 0, return) DEFINEFUNC(void, EVP_PKEY_CTX_free, EVP_PKEY_CTX *ctx, ctx, return, return) -DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return) DEFINEFUNC(int, RSA_bits, RSA *a, a, return 0, return) DEFINEFUNC(int, DSA_bits, DSA *a, a, return 0, return) DEFINEFUNC(int, OPENSSL_sk_num, OPENSSL_STACK *a, a, return -1, return) @@ -368,7 +367,15 @@ DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr DEFINEFUNC(int, SSL_version, const SSL *a, a, return 0, return) DEFINEFUNC2(int, SSL_get_error, SSL *a, a, int b, b, return -1, return) DEFINEFUNC(STACK_OF(X509) *, SSL_get_peer_cert_chain, SSL *a, a, return nullptr, return) + +#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3 +DEFINEFUNC(X509 *, SSL_get1_peer_certificate, SSL *a, a, return nullptr, return) +DEFINEFUNC(int, EVP_PKEY_get_base_id, const EVP_PKEY *pkey, pkey, return -1, return) +#else DEFINEFUNC(X509 *, SSL_get_peer_certificate, SSL *a, a, return nullptr, return) +DEFINEFUNC(int, EVP_PKEY_base_id, EVP_PKEY *a, a, return NID_undef, return) +#endif // OPENSSL_VERSION_MAJOR >= 3 + DEFINEFUNC(long, SSL_get_verify_result, const SSL *a, a, return -1, return) DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return nullptr, return) DEFINEFUNC(SSL_CTX *, SSL_get_SSL_CTX, SSL *a, a, return nullptr, return) @@ -489,9 +496,7 @@ DEFINEFUNC(DH *, DH_new, DUMMYARG, DUMMYARG, return nullptr, return) DEFINEFUNC(void, DH_free, DH *dh, dh, return, DUMMYARG) DEFINEFUNC3(DH *, d2i_DHparams, DH**a, a, const unsigned char **pp, pp, long length, length, return nullptr, return) DEFINEFUNC2(int, i2d_DHparams, DH *a, a, unsigned char **p, p, return -1, return) -#ifndef OPENSSL_NO_DEPRECATED_3_0 DEFINEFUNC2(int, DH_check, DH *dh, dh, int *codes, codes, return 0, return) -#endif // OPENSSL_NO_DEPRECATED_3_0 DEFINEFUNC3(BIGNUM *, BN_bin2bn, const unsigned char *s, s, int len, len, BIGNUM *ret, ret, return nullptr, return) #ifndef OPENSSL_NO_EC @@ -852,7 +857,6 @@ bool q_resolveOpenSslSymbols() RESOLVEFUNC(EVP_PKEY_CTX_new) RESOLVEFUNC(EVP_PKEY_param_check) RESOLVEFUNC(EVP_PKEY_CTX_free) - RESOLVEFUNC(EVP_PKEY_base_id) RESOLVEFUNC(RSA_bits) RESOLVEFUNC(OPENSSL_sk_new_null) RESOLVEFUNC(OPENSSL_sk_push) @@ -1077,7 +1081,15 @@ bool q_resolveOpenSslSymbols() RESOLVEFUNC(SSL_version) RESOLVEFUNC(SSL_get_error) RESOLVEFUNC(SSL_get_peer_cert_chain) + +#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3 + RESOLVEFUNC(SSL_get1_peer_certificate) + RESOLVEFUNC(EVP_PKEY_get_base_id) +#else RESOLVEFUNC(SSL_get_peer_certificate) + RESOLVEFUNC(EVP_PKEY_base_id) +#endif // OPENSSL_VERSION_MAJOR >= 3 + RESOLVEFUNC(SSL_get_verify_result) RESOLVEFUNC(SSL_new) RESOLVEFUNC(SSL_get_SSL_CTX) @@ -1176,9 +1188,7 @@ bool q_resolveOpenSslSymbols() RESOLVEFUNC(DH_free) RESOLVEFUNC(d2i_DHparams) RESOLVEFUNC(i2d_DHparams) -#ifndef OPENSSL_NO_DEPRECATED_3_0 RESOLVEFUNC(DH_check) -#endif // OPENSSL_NO_DEPRECATED_3_0 RESOLVEFUNC(BN_bin2bn) #ifndef OPENSSL_NO_EC diff --git a/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h b/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h index c46afcf53e..b36d0bc126 100644 --- a/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h +++ b/qtbase/src/network/ssl/qsslsocket_openssl_symbols_p.h @@ -236,7 +236,6 @@ Q_AUTOTEST_EXPORT int q_EVP_PKEY_up_ref(EVP_PKEY *a); EVP_PKEY_CTX *q_EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); void q_EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); int q_EVP_PKEY_param_check(EVP_PKEY_CTX *ctx); -int q_EVP_PKEY_base_id(EVP_PKEY *a); int q_RSA_bits(RSA *a); Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a); Q_AUTOTEST_EXPORT void q_OPENSSL_sk_pop_free(OPENSSL_STACK *a, void (*b)(void *)); @@ -509,7 +508,6 @@ const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a); int q_SSL_version(const SSL *a); int q_SSL_get_error(SSL *a, int b); STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a); -X509 *q_SSL_get_peer_certificate(SSL *a); long q_SSL_get_verify_result(const SSL *a); SSL *q_SSL_new(SSL_CTX *a); SSL_CTX *q_SSL_get_SSL_CTX(SSL *a); @@ -581,10 +579,7 @@ DH *q_DH_new(); void q_DH_free(DH *dh); DH *q_d2i_DHparams(DH **a, const unsigned char **pp, long length); int q_i2d_DHparams(DH *a, unsigned char **p); - -#ifndef OPENSSL_NO_DEPRECATED_3_0 int q_DH_check(DH *dh, int *codes); -#endif // OPENSSL_NO_DEPRECATED_3_0 BIGNUM *q_BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); #define q_SSL_CTX_set_tmp_dh(ctx, dh) q_SSL_CTX_ctrl((ctx), SSL_CTRL_SET_TMP_DH, 0, (char *)dh) @@ -751,6 +746,17 @@ void *q_CRYPTO_malloc(size_t num, const char *file, int line); int q_SSL_CTX_get_security_level(const SSL_CTX *ctx); void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level); +// Here we have the ones that make difference between OpenSSL pre/post v3: +#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3 +X509 *q_SSL_get1_peer_certificate(SSL *a); +#define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate +int q_EVP_PKEY_get_base_id(const EVP_PKEY *pkey); +#define q_EVP_PKEY_base_id q_EVP_PKEY_get_base_id +#else +X509 *q_SSL_get_peer_certificate(SSL *a); +int q_EVP_PKEY_base_id(EVP_PKEY *a); +#endif // OPENSSL_VERSION_MAJOR >= 3 + QT_END_NAMESPACE #endif diff --git a/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h b/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h index bf37d07fd8..dbd42fb799 100644 --- a/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h +++ b/qtbase/src/platformsupport/eglconvenience/qt_egl_p.h @@ -61,7 +61,11 @@ # if !defined(Q_OS_INTEGRITY) # define WIN_INTERFACE_CUSTOM // NV # endif // Q_OS_INTEGRITY -#endif // QT_EGL_NO_X11 +#else // QT_EGL_NO_X11 +// If one has an eglplatform.h with https://github.com/KhronosGroup/EGL-Registry/pull/130 +// that needs USE_X11 to be defined. +# define USE_X11 +#endif #ifdef QT_EGL_WAYLAND # define WAYLAND // NV diff --git a/qtbase/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp b/qtbase/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp index f57e1540e0..80a911a210 100644 --- a/qtbase/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp +++ b/qtbase/src/platformsupport/input/evdevtouch/qevdevtouchhandler.cpp @@ -756,7 +756,7 @@ QRect QEvdevTouchScreenData::screenGeometry() const if (m_screen) screen = m_screen; } - return QHighDpi::toNativePixels(screen->geometry(), screen); + return screen ? QHighDpi::toNativePixels(screen->geometry(), screen) : QRect(); } void QEvdevTouchScreenData::reportPoints() diff --git a/qtbase/src/platformsupport/input/libinput/qlibinputtouch.cpp b/qtbase/src/platformsupport/input/libinput/qlibinputtouch.cpp index 446218e4b3..6eb3a8a355 100644 --- a/qtbase/src/platformsupport/input/libinput/qlibinputtouch.cpp +++ b/qtbase/src/platformsupport/input/libinput/qlibinputtouch.cpp @@ -82,7 +82,7 @@ QPointF QLibInputTouch::getPos(libinput_event_touch *e) if (m_screen) screen = m_screen; } - const QRect geom = QHighDpi::toNativePixels(screen->geometry(), screen); + const QRect geom = screen ? QHighDpi::toNativePixels(screen->geometry(), screen) : QRect(); const double x = libinput_event_touch_get_x_transformed(e, geom.width()); const double y = libinput_event_touch_get_y_transformed(e, geom.height()); return geom.topLeft() + QPointF(x, y); diff --git a/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp b/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp index 877c5d848f..f1e478274c 100644 --- a/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp +++ b/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon.cpp @@ -93,6 +93,7 @@ static constexpr const auto KeyTbl = qMakeArray( Xkb2Qt, Xkb2Qt, Xkb2Qt, + Xkb2Qt, Xkb2Qt<0x1005FF60, Qt::Key_SysReq>, // hardcoded Sun SysReq Xkb2Qt<0x1007ff00, Qt::Key_SysReq>, // hardcoded X386 SysReq @@ -469,7 +470,7 @@ QVector QXkbCommon::toKeysym(QKeyEvent *event) } else if (event->modifiers() & Qt::KeypadModifier) { if (qtKey >= Qt::Key_0 && qtKey <= Qt::Key_9) keysyms.append(XKB_KEY_KP_0 + (qtKey - Qt::Key_0)); - } else if (isLatin(qtKey) && event->text().isUpper()) { + } else if (isLatin1(qtKey) && event->text().isUpper()) { keysyms.append(qtKey); } @@ -521,7 +522,7 @@ int QXkbCommon::keysymToQtKey(xkb_keysym_t keysym, Qt::KeyboardModifiers modifie // With standard shortcuts we should prefer a latin character, this is // for checks like "some qkeyevent == QKeySequence::Copy" to work even // when using for example 'russian' keyboard layout. - if (!QXkbCommon::isLatin(keysym)) { + if (!QXkbCommon::isLatin1(keysym)) { xkb_keysym_t latinKeysym = QXkbCommon::lookupLatinKeysym(state, code); if (latinKeysym != XKB_KEY_NoSymbol) keysym = latinKeysym; @@ -544,7 +545,7 @@ static int keysymToQtKey_internal(xkb_keysym_t keysym, Qt::KeyboardModifiers mod } else if (keysym >= XKB_KEY_KP_0 && keysym <= XKB_KEY_KP_9) { // numeric keypad keys qtKey = Qt::Key_0 + (keysym - XKB_KEY_KP_0); - } else if (QXkbCommon::isLatin(keysym)) { + } else if (QXkbCommon::isLatin1(keysym)) { qtKey = QXkbCommon::qxkbcommon_xkb_keysym_to_upper(keysym); } else { // check if we have a direct mapping @@ -674,7 +675,7 @@ QList QXkbCommon::possibleKeys(xkb_state *state, const QKeyEvent *event, Qt::KeyboardModifiers neededMods = ModsTbl[i]; if ((modifiers & neededMods) == neededMods) { if (i == 8) { - if (isLatin(baseQtKey)) + if (isLatin1(baseQtKey)) continue; // add a latin key as a fall back key sym = lookupLatinKeysym(state, keycode); @@ -729,7 +730,7 @@ void QXkbCommon::verifyHasLatinLayout(xkb_keymap *keymap) for (xkb_layout_index_t layout = 0; layout < layoutCount; ++layout) { for (xkb_keycode_t code = minKeycode; code < maxKeycode; ++code) { xkb_keymap_key_get_syms_by_level(keymap, code, layout, 0, &keysyms); - if (keysyms && isLatin(keysyms[0])) + if (keysyms && isLatin1(keysyms[0])) nrLatinKeys++; if (nrLatinKeys > 10) // arbitrarily chosen threshold return; @@ -762,7 +763,7 @@ xkb_keysym_t QXkbCommon::lookupLatinKeysym(xkb_state *state, xkb_keycode_t keyco xkb_level_index_t level = xkb_state_key_get_level(state, keycode, layout); if (xkb_keymap_key_get_syms_by_level(keymap, keycode, layout, level, &syms) != 1) continue; - if (isLatin(syms[0])) { + if (isLatin1(syms[0])) { sym = syms[0]; break; } diff --git a/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon_p.h b/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon_p.h index 561eae03db..8389bd8f5a 100644 --- a/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon_p.h +++ b/qtbase/src/platformsupport/input/xkbcommon/qxkbcommon_p.h @@ -94,8 +94,8 @@ public: static void verifyHasLatinLayout(xkb_keymap *keymap); static xkb_keysym_t lookupLatinKeysym(xkb_state *state, xkb_keycode_t keycode); - static bool isLatin(xkb_keysym_t sym) { - return ((sym >= 'a' && sym <= 'z') || (sym >= 'A' && sym <= 'Z')); + static bool isLatin1(xkb_keysym_t sym) { + return sym <= 0xff; } static bool isKeypad(xkb_keysym_t sym) { return sym >= XKB_KEY_KP_Space && sym <= XKB_KEY_KP_9; diff --git a/qtbase/src/platformsupport/linuxaccessibility/dbusconnection.cpp b/qtbase/src/platformsupport/linuxaccessibility/dbusconnection.cpp index 45ddc8e496..17fc130ed8 100644 --- a/qtbase/src/platformsupport/linuxaccessibility/dbusconnection.cpp +++ b/qtbase/src/platformsupport/linuxaccessibility/dbusconnection.cpp @@ -69,6 +69,14 @@ QT_BEGIN_NAMESPACE DBusConnection::DBusConnection(QObject *parent) : QObject(parent), m_a11yConnection(QString()), m_enabled(false) { + // If the bus is explicitly set via env var it overrides everything else. + QByteArray addressEnv = qgetenv("AT_SPI_BUS_ADDRESS"); + if (!addressEnv.isEmpty()) { + m_enabled = true; + connectA11yBus(QString::fromLocal8Bit(addressEnv)); + return; + } + // Start monitoring if "org.a11y.Bus" is registered as DBus service. QDBusConnection c = QDBusConnection::sessionBus(); if (!c.isConnected()) { diff --git a/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp b/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp index 1a3cab275d..f0d1722c95 100644 --- a/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp +++ b/qtbase/src/platformsupport/services/genericunix/qgenericunixservices.cpp @@ -142,6 +142,8 @@ static inline bool detectWebBrowser(const QByteArray &desktop, } if (desktop == QByteArray("KDE")) { + if (checkExecutable(QStringLiteral("kde-open5"), browser)) + return true; // Konqueror launcher if (checkExecutable(QStringLiteral("kfmclient"), browser)) { browser->append(QLatin1String(" exec")); diff --git a/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection.cpp b/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection.cpp index 09470bccc6..345a853b1b 100644 --- a/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection.cpp +++ b/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection.cpp @@ -105,13 +105,7 @@ void QDBusMenuConnection::unregisterTrayIconMenu(QDBusTrayIcon *item) bool QDBusMenuConnection::registerTrayIcon(QDBusTrayIcon *item) { - bool success = connection().registerService(item->instanceId()); - if (!success) { - qWarning() << "failed to register service" << item->instanceId(); - return false; - } - - success = connection().registerObject(StatusNotifierItemPath, item); + bool success = connection().registerObject(StatusNotifierItemPath, item); if (!success) { unregisterTrayIcon(item); qWarning() << "failed to register" << item->instanceId() << StatusNotifierItemPath; @@ -126,21 +120,18 @@ bool QDBusMenuConnection::registerTrayIcon(QDBusTrayIcon *item) bool QDBusMenuConnection::registerTrayIconWithWatcher(QDBusTrayIcon *item) { + Q_UNUSED(item); QDBusMessage registerMethod = QDBusMessage::createMethodCall( StatusNotifierWatcherService, StatusNotifierWatcherPath, StatusNotifierWatcherService, QLatin1String("RegisterStatusNotifierItem")); - registerMethod.setArguments(QVariantList() << item->instanceId()); + registerMethod.setArguments(QVariantList() << m_connection.baseService()); return m_connection.callWithCallback(registerMethod, this, SIGNAL(trayIconRegistered()), SLOT(dbusError(QDBusError))); } -bool QDBusMenuConnection::unregisterTrayIcon(QDBusTrayIcon *item) +void QDBusMenuConnection::unregisterTrayIcon(QDBusTrayIcon *item) { unregisterTrayIconMenu(item); connection().unregisterObject(StatusNotifierItemPath); - bool success = connection().unregisterService(item->instanceId()); - if (!success) - qWarning() << "failed to unregister service" << item->instanceId(); - return success; } #endif // QT_NO_SYSTEMTRAYICON diff --git a/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection_p.h b/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection_p.h index f484795fbb..11c7e56534 100644 --- a/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection_p.h +++ b/qtbase/src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection_p.h @@ -78,7 +78,7 @@ public: void unregisterTrayIconMenu(QDBusTrayIcon *item); bool registerTrayIcon(QDBusTrayIcon *item); bool registerTrayIconWithWatcher(QDBusTrayIcon *item); - bool unregisterTrayIcon(QDBusTrayIcon *item); + void unregisterTrayIcon(QDBusTrayIcon *item); #endif // QT_NO_SYSTEMTRAYICON Q_SIGNALS: diff --git a/qtbase/src/platformsupport/themes/genericunix/dbustray/qdbustrayicon.cpp b/qtbase/src/platformsupport/themes/genericunix/dbustray/qdbustrayicon.cpp index bede70975a..76bfec5e5a 100644 --- a/qtbase/src/platformsupport/themes/genericunix/dbustray/qdbustrayicon.cpp +++ b/qtbase/src/platformsupport/themes/genericunix/dbustray/qdbustrayicon.cpp @@ -71,8 +71,12 @@ Q_LOGGING_CATEGORY(qLcTray, "qt.qpa.tray") static QString iconTempPath() { QString tempPath = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); - if (!tempPath.isEmpty()) + if (!tempPath.isEmpty()) { + QString flatpakId = qEnvironmentVariable("FLATPAK_ID"); + if (!flatpakId.isEmpty() && QFileInfo::exists(QLatin1String("/.flatpak-info"))) + tempPath += QLatin1String("/app/") + flatpakId; return tempPath; + } tempPath = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation); diff --git a/qtbase/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/qtbase/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index cb1b39db64..6e01af052c 100644 --- a/qtbase/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/qtbase/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -755,6 +755,9 @@ QVariant QGnomeTheme::themeHint(QPlatformTheme::ThemeHint hint) const return QVariant(QChar(0x2022)); case QPlatformTheme::UiEffects: return QVariant(int(HoverEffect)); + case QPlatformTheme::ButtonPressKeys: + return QVariant::fromValue( + QList({ Qt::Key_Space, Qt::Key_Return, Qt::Key_Enter, Qt::Key_Select })); default: break; } diff --git a/qtbase/src/plugins/platforms/android/androidjniinput.cpp b/qtbase/src/plugins/platforms/android/androidjniinput.cpp index fe1aff0cc4..e0232e2b2d 100644 --- a/qtbase/src/plugins/platforms/android/androidjniinput.cpp +++ b/qtbase/src/plugins/platforms/android/androidjniinput.cpp @@ -80,16 +80,15 @@ namespace QtAndroidInput candidatesEnd); } - void showSoftwareKeyboard(int left, int top, int width, int height, int editorHeight, int inputHints, int enterKeyType) + void showSoftwareKeyboard(int left, int top, int width, int height, int inputHints, int enterKeyType) { QJNIObjectPrivate::callStaticMethod(applicationClass(), "showSoftwareKeyboard", - "(IIIIIII)V", + "(IIIIII)V", left, top, width, height, - editorHeight, inputHints, enterKeyType); #ifdef QT_DEBUG_ANDROID_IM_PROTOCOL @@ -131,17 +130,6 @@ namespace QtAndroidInput anchor.x(), anchor.y(), rtl); } - void updateInputItemRectangle(int left, int top, int width, int height) - { - QJNIObjectPrivate::callStaticMethod(applicationClass(), - "updateInputItemRectangle", - "(IIII)V", - left, - top, - width, - height); - } - static void mouseDown(JNIEnv */*env*/, jobject /*thiz*/, jint /*winId*/, jint x, jint y) { if (m_ignoreMouseEvents) diff --git a/qtbase/src/plugins/platforms/android/androidjniinput.h b/qtbase/src/plugins/platforms/android/androidjniinput.h index c1442f1904..cc3070c4aa 100644 --- a/qtbase/src/plugins/platforms/android/androidjniinput.h +++ b/qtbase/src/plugins/platforms/android/androidjniinput.h @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE namespace QtAndroidInput { // Software keyboard support - void showSoftwareKeyboard(int top, int left, int width, int editorHeight, int height, int inputHints, int enterKeyType); + void showSoftwareKeyboard(int top, int left, int width, int height, int inputHints, int enterKeyType); void resetSoftwareKeyboard(); void hideSoftwareKeyboard(); bool isSoftwareKeyboardVisible(); @@ -57,8 +57,6 @@ namespace QtAndroidInput void updateSelection(int selStart, int selEnd, int candidatesStart, int candidatesEnd); // Software keyboard support - // edit field resize - void updateInputItemRectangle(int left, int top, int width, int height); // cursor/selection handles void updateHandles(int handleCount, QPoint editMenuPos = QPoint(), uint32_t editButtons = 0, QPoint cursor = QPoint(), QPoint anchor = QPoint(), bool rtl = false); diff --git a/qtbase/src/plugins/platforms/android/qandroidinputcontext.cpp b/qtbase/src/plugins/platforms/android/qandroidinputcontext.cpp index 687cced1e2..c716bb814d 100644 --- a/qtbase/src/plugins/platforms/android/qandroidinputcontext.cpp +++ b/qtbase/src/plugins/platforms/android/qandroidinputcontext.cpp @@ -506,7 +506,7 @@ QAndroidInputContext::QAndroidInputContext() m_androidInputContext = this; QObject::connect(QGuiApplication::inputMethod(), &QInputMethod::cursorRectangleChanged, - this, &QAndroidInputContext::updateInputItemRectangle); + this, &QAndroidInputContext::updateSelectionHandles); QObject::connect(QGuiApplication::inputMethod(), &QInputMethod::anchorRectangleChanged, this, &QAndroidInputContext::updateSelectionHandles); QObject::connect(QGuiApplication::inputMethod(), &QInputMethod::inputItemClipRectangleChanged, this, [this]{ @@ -931,50 +931,12 @@ void QAndroidInputContext::showInputPanel() else m_updateCursorPosConnection = connect(qGuiApp->focusObject(), SIGNAL(cursorPositionChanged()), this, SLOT(updateCursorPosition())); - QRect rect = cursorRect(); + QRect rect = screenInputItemRectangle(); QtAndroidInput::showSoftwareKeyboard(rect.left(), rect.top(), rect.width(), rect.height(), - inputItemRectangle().height(), query->value(Qt::ImHints).toUInt(), query->value(Qt::ImEnterKeyType).toUInt()); } -QRect QAndroidInputContext::cursorRect() -{ - QSharedPointer query = focusObjectInputMethodQuery(); - // if single line, we do not want to mess with the editor's position, as we do not - // have to follow the cursor in vertical axis - if (query.isNull() - || (query->value(Qt::ImHints).toUInt() & Qt::ImhMultiLine) != Qt::ImhMultiLine) - return {}; - - auto im = qGuiApp->inputMethod(); - if (!im) - return {}; - - const auto cursorRect= im->cursorRectangle().toRect(); - QRect finalRect(inputItemRectangle()); - const QWindow *window = qGuiApp->focusWindow(); - const double pd = window - ? QHighDpiScaling::factor(window) - : QHighDpiScaling::factor(QtAndroid::androidPlatformIntegration()->screen()); - finalRect.setY(cursorRect.y() * pd); - finalRect.setHeight(cursorRect.height() * pd); - //fiddle a bit with vert margins, so the tracking rectangle is not too tight. - finalRect += QMargins(0, cursorRect.height() / 4, 0, cursorRect.height() / 4); - return finalRect; -} - -void QAndroidInputContext::updateInputItemRectangle() -{ - QRect rect = cursorRect(); - - if (!rect.isValid()) - return; - QtAndroidInput::updateInputItemRectangle(rect.left(), rect.top(), - rect.width(), rect.height()); - updateSelectionHandles(); -} - void QAndroidInputContext::showInputPanelLater(Qt::ApplicationState state) { if (state != Qt::ApplicationActive) diff --git a/qtbase/src/plugins/platforms/android/qandroidinputcontext.h b/qtbase/src/plugins/platforms/android/qandroidinputcontext.h index 02a66c367a..e9bfb98e66 100644 --- a/qtbase/src/plugins/platforms/android/qandroidinputcontext.h +++ b/qtbase/src/plugins/platforms/android/qandroidinputcontext.h @@ -138,7 +138,6 @@ public: public slots: void safeCall(const std::function &func, Qt::ConnectionType conType = Qt::BlockingQueuedConnection); void updateCursorPosition(); - void updateInputItemRectangle(); void updateSelectionHandles(); void handleLocationChanged(int handleId, int x, int y); void touchDown(int x, int y); @@ -155,7 +154,6 @@ private: bool focusObjectIsComposing() const; void focusObjectStartComposing(); bool focusObjectStopComposing(); - QRect cursorRect(); private: ExtractedText m_extractedText; diff --git a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h index e070ba977d..0896917334 100644 --- a/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h +++ b/qtbase/src/plugins/platforms/cocoa/qiosurfacegraphicsbuffer.h @@ -43,6 +43,8 @@ #include #include +#include + QT_BEGIN_NAMESPACE class QIOSurfaceGraphicsBuffer : public QPlatformGraphicsBuffer diff --git a/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.cpp b/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.cpp index 141fb68a23..d4294d425a 100644 --- a/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.cpp +++ b/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.cpp @@ -122,11 +122,13 @@ QOffscreenIntegration::QOffscreenIntegration() #endif m_services.reset(new QPlatformServices); - QWindowSystemInterface::handleScreenAdded(new QOffscreenScreen); + m_screen = new QOffscreenScreen; + QWindowSystemInterface::handleScreenAdded(m_screen); } QOffscreenIntegration::~QOffscreenIntegration() { + QWindowSystemInterface::handleScreenRemoved(m_screen); } void QOffscreenIntegration::initialize() diff --git a/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.h b/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.h index 0ea90f6c2f..fe00fde07c 100644 --- a/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.h +++ b/qtbase/src/plugins/platforms/offscreen/qoffscreenintegration.h @@ -84,6 +84,7 @@ protected: #endif QScopedPointer m_inputContext; QScopedPointer m_services; + QPlatformScreen *m_screen; mutable QScopedPointer m_nativeInterface; }; diff --git a/qtbase/src/plugins/platforms/windows/qwindowsglcontext.cpp b/qtbase/src/plugins/platforms/windows/qwindowsglcontext.cpp index 6fa5a8a2b3..1f49f0aefd 100644 --- a/qtbase/src/plugins/platforms/windows/qwindowsglcontext.cpp +++ b/qtbase/src/plugins/platforms/windows/qwindowsglcontext.cpp @@ -48,6 +48,7 @@ #include #include +#include #include #include @@ -162,19 +163,25 @@ QFunctionPointer QWindowsOpengl32DLL::resolve(const char *name) bool QWindowsOpengl32DLL::init(bool softwareRendering) { - const QByteArray opengl32 = QByteArrayLiteral("opengl32.dll"); - const QByteArray swopengl = QByteArrayLiteral("opengl32sw.dll"); + const QByteArray opengl32 = QByteArrayLiteral("opengl32"); + const QByteArray swopengl = QByteArrayLiteral("opengl32sw"); + bool useSystemLib = false; QByteArray openglDll = qgetenv("QT_OPENGL_DLL"); - if (openglDll.isEmpty()) + if (openglDll.isEmpty()) { openglDll = softwareRendering ? swopengl : opengl32; + useSystemLib = !softwareRendering; + } openglDll = openglDll.toLower(); m_nonOpengl32 = openglDll != opengl32; qCDebug(lcQpaGl) << "Qt: Using WGL and OpenGL from" << openglDll; - m_lib = ::LoadLibraryA(openglDll.constData()); + if (useSystemLib) + m_lib = QSystemLibrary::load((wchar_t*)(QString::fromLatin1(openglDll).utf16())); + else + m_lib = LoadLibraryA(openglDll.constData()); if (!m_lib) { qErrnoWarning(::GetLastError(), "Failed to load %s", openglDll.constData()); return false; @@ -184,7 +191,7 @@ bool QWindowsOpengl32DLL::init(bool softwareRendering) // Load opengl32.dll always. GDI functions like ChoosePixelFormat do // GetModuleHandle for opengl32.dll and behave differently (and call back into // opengl32) when the module is present. This is fine for dummy contexts and windows. - ::LoadLibraryA("opengl32.dll"); + QSystemLibrary::load(L"opengl32"); } wglCreateContext = reinterpret_cast(resolve("wglCreateContext")); diff --git a/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp b/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp index d7d186e804..9eb4011bf2 100644 --- a/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp +++ b/qtbase/src/plugins/platforms/windows/qwindowsopengltester.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #ifndef QT_NO_OPENGL #include @@ -396,7 +397,7 @@ bool QWindowsOpenGLTester::testDesktopGL() // Test #1: Load opengl32.dll and try to resolve an OpenGL 2 function. // This will typically fail on systems that do not have a real OpenGL driver. - lib = LoadLibraryA("opengl32.dll"); + lib = QSystemLibrary::load(L"opengl32"); if (lib) { CreateContext = reinterpret_cast( reinterpret_cast(::GetProcAddress(lib, "wglCreateContext"))); diff --git a/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp b/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp index 0a4d675606..dabdfcb6c5 100644 --- a/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp +++ b/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp @@ -835,6 +835,8 @@ QByteArray QXcbClipboard::clipboardReadIncrementalProperty(xcb_window_t win, xcb alloc_error = buf.size() != nbytes+1; } + QElapsedTimer timer; + timer.start(); for (;;) { connection()->flush(); xcb_generic_event_t *ge = waitForClipboardEvent(win, XCB_PROPERTY_NOTIFY); @@ -870,9 +872,11 @@ QByteArray QXcbClipboard::clipboardReadIncrementalProperty(xcb_window_t win, xcb tmp_buf.resize(0); offset += length; } - } else { - break; } + + const auto elapsed = timer.elapsed(); + if (elapsed > clipboard_timeout) + break; } // timed out ... create a new requestor window, otherwise the requestor diff --git a/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp b/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp index 9abdae6a7c..8477e28df1 100644 --- a/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp +++ b/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp @@ -795,7 +795,13 @@ xcb_timestamp_t QXcbConnection::getTimestamp() xcb_window_t QXcbConnection::getSelectionOwner(xcb_atom_t atom) const { - return Q_XCB_REPLY(xcb_get_selection_owner, xcb_connection(), atom)->owner; + auto reply = Q_XCB_REPLY(xcb_get_selection_owner, xcb_connection(), atom); + if (!reply) { + qCDebug(lcQpaXcb) << "failed to query selection owner"; + return XCB_NONE; + } + + return reply->owner; } xcb_window_t QXcbConnection::getQtSelectionOwner() diff --git a/qtbase/src/plugins/platforms/xcb/qxcbconnection_basic.cpp b/qtbase/src/plugins/platforms/xcb/qxcbconnection_basic.cpp index 18dee89adb..9dd608cdc0 100644 --- a/qtbase/src/plugins/platforms/xcb/qxcbconnection_basic.cpp +++ b/qtbase/src/plugins/platforms/xcb/qxcbconnection_basic.cpp @@ -179,7 +179,13 @@ xcb_atom_t QXcbBasicConnection::internAtom(const char *name) if (!name || *name == 0) return XCB_NONE; - return Q_XCB_REPLY(xcb_intern_atom, m_xcbConnection, false, strlen(name), name)->atom; + auto reply = Q_XCB_REPLY(xcb_intern_atom, m_xcbConnection, false, strlen(name), name); + if (!reply) { + qCDebug(lcQpaXcb) << "failed to query intern atom: " << name; + return XCB_NONE; + } + + return reply->atom; } QByteArray QXcbBasicConnection::atomName(xcb_atom_t atom) diff --git a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp index 42c7a52bd4..a032085f0b 100644 --- a/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp +++ b/qtbase/src/plugins/platforms/xcb/qxcbcursor.cpp @@ -668,7 +668,8 @@ void QXcbCursor::setPos(const QPoint &pos) { QXcbVirtualDesktop *virtualDesktop = nullptr; queryPointer(connection(), &virtualDesktop, nullptr); - xcb_warp_pointer(xcb_connection(), XCB_NONE, virtualDesktop->root(), 0, 0, 0, 0, pos.x(), pos.y()); + if (virtualDesktop) + xcb_warp_pointer(xcb_connection(), XCB_NONE, virtualDesktop->root(), 0, 0, 0, 0, pos.x(), pos.y()); xcb_flush(xcb_connection()); } diff --git a/qtbase/src/plugins/platforms/xcb/qxcbintegration.cpp b/qtbase/src/plugins/platforms/xcb/qxcbintegration.cpp index 76869ced60..02d2eebb56 100644 --- a/qtbase/src/plugins/platforms/xcb/qxcbintegration.cpp +++ b/qtbase/src/plugins/platforms/xcb/qxcbintegration.cpp @@ -274,8 +274,7 @@ QPlatformWindow *QXcbIntegration::createForeignWindow(QWindow *window, WId nativ #ifndef QT_NO_OPENGL QPlatformOpenGLContext *QXcbIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const { - QXcbScreen *screen = static_cast(context->screen()->handle()); - QXcbGlIntegration *glIntegration = screen->connection()->glIntegration(); + QXcbGlIntegration *glIntegration = defaultConnection()->glIntegration(); if (!glIntegration) { qWarning("QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled"); return nullptr; diff --git a/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp b/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp index 050182537d..fff280fe4f 100644 --- a/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp +++ b/qtbase/src/plugins/platforms/xcb/qxcbwindow.cpp @@ -698,7 +698,7 @@ void QXcbWindow::show() if (isTransient(window())) { const QWindow *tp = window()->transientParent(); if (tp && tp->handle()) - transientXcbParent = static_cast(tp->handle())->winId(); + transientXcbParent = tp->handle()->winId(); // Default to client leader if there is no transient parent, else modal dialogs can // be hidden by their parents. if (!transientXcbParent) @@ -1619,7 +1619,7 @@ void QXcbWindow::setWmWindowType(QXcbWindowFunctions::WmWindowTypes types, Qt::W break; } - if ((flags & Qt::FramelessWindowHint) && !(type & QXcbWindowFunctions::KdeOverride)) { + if ((flags & Qt::FramelessWindowHint) && !(types & QXcbWindowFunctions::KdeOverride)) { // override netwm type - quick and easy for KDE noborder atoms.append(atom(QXcbAtom::_KDE_NET_WM_WINDOW_TYPE_OVERRIDE)); } diff --git a/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp b/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp index 0048bbc1e6..81b63a67fd 100644 --- a/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp +++ b/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp @@ -302,6 +302,7 @@ void QXdgDesktopPortalFileDialog::openPortal() this, SLOT(gotResponse(uint,QVariantMap))); } + watcher->deleteLater(); }); } diff --git a/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp b/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp index fb324afbd8..2fc3167fd5 100644 --- a/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp +++ b/qtbase/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportaltheme.cpp @@ -111,6 +111,7 @@ QXdgDesktopPortalTheme::QXdgDesktopPortalTheme() if (reply.isValid()) { d->fileChooserPortalVersion = reply.value().toUInt(); } + watcher->deleteLater(); }); } diff --git a/qtbase/src/plugins/printsupport/cups/qcupsprintengine.cpp b/qtbase/src/plugins/printsupport/cups/qcupsprintengine.cpp index 43d5e119ad..1f9cbc4565 100644 --- a/qtbase/src/plugins/printsupport/cups/qcupsprintengine.cpp +++ b/qtbase/src/plugins/printsupport/cups/qcupsprintengine.cpp @@ -89,8 +89,10 @@ void QCupsPrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &v break; case PPK_Duplex: { QPrint::DuplexMode mode = QPrint::DuplexMode(value.toInt()); - if (mode != d->duplex && d->m_printDevice.supportedDuplexModes().contains(mode)) + if (d->m_printDevice.supportedDuplexModes().contains(mode)) { d->duplex = mode; + d->duplexRequestedExplicitly = true; + } break; } case PPK_PrinterName: @@ -277,9 +279,12 @@ void QCupsPrintEnginePrivate::changePrinter(const QString &newPrinter) m_printDevice.swap(printDevice); printerName = m_printDevice.id(); - // Check if new printer supports current settings, otherwise us defaults - if (duplex != QPrint::DuplexAuto && !m_printDevice.supportedDuplexModes().contains(duplex)) + // in case a duplex value was explicitly set, check if new printer supports current value, + // otherwise use device default + if (!duplexRequestedExplicitly || !m_printDevice.supportedDuplexModes().contains(duplex)) { duplex = m_printDevice.defaultDuplexMode(); + duplexRequestedExplicitly = false; + } QPrint::ColorMode colorMode = grayscale ? QPrint::GrayScale : QPrint::Color; if (!m_printDevice.supportedColorModes().contains(colorMode)) grayscale = m_printDevice.defaultColorMode() == QPrint::GrayScale; diff --git a/qtbase/src/plugins/printsupport/cups/qcupsprintengine_p.h b/qtbase/src/plugins/printsupport/cups/qcupsprintengine_p.h index c021b0c643..8f81fe478d 100644 --- a/qtbase/src/plugins/printsupport/cups/qcupsprintengine_p.h +++ b/qtbase/src/plugins/printsupport/cups/qcupsprintengine_p.h @@ -100,6 +100,7 @@ private: QStringList cupsOptions; QString cupsTempFile; QPrint::DuplexMode duplex; + bool duplexRequestedExplicitly = false; }; QT_END_NAMESPACE diff --git a/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp index a641935dc5..6bc9d46755 100644 --- a/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +++ b/qtbase/src/plugins/sqldrivers/mysql/qsql_mysql.cpp @@ -158,6 +158,20 @@ static inline QVariant qDateTimeFromString(QString &val) #endif } +// check if this client and server version of MySQL/MariaDB support prepared statements +static inline bool checkPreparedQueries(MYSQL *mysql) +{ + std::unique_ptr stmt(mysql_stmt_init(mysql), &mysql_stmt_close); + if (!stmt) + return false; + + static const char dummyQuery[] = "SELECT ? + ?"; + if (mysql_stmt_prepare(stmt.get(), dummyQuery, sizeof(dummyQuery) - 1)) + return false; + + return mysql_stmt_param_count(stmt.get()) == 2; +} + class QMYSQLResultPrivate; class QMYSQLResult : public QSqlResult @@ -209,7 +223,7 @@ public: struct QMyField { char *outField = nullptr; - MYSQL_FIELD *myField = nullptr; + const MYSQL_FIELD *myField = nullptr; QMetaType::Type type = QMetaType::UnknownType; my_bool nullIndicator = false; ulong bufLength = 0ul; @@ -347,7 +361,7 @@ static bool qIsInteger(int t) void QMYSQLResultPrivate::bindBlobs() { int i; - MYSQL_FIELD *fieldInfo; + const MYSQL_FIELD *fieldInfo; MYSQL_BIND *bind; for(i = 0; i < fields.count(); ++i) { @@ -365,7 +379,6 @@ void QMYSQLResultPrivate::bindBlobs() bool QMYSQLResultPrivate::bindInValues() { MYSQL_BIND *bind; - char *field; int i = 0; if (!meta) @@ -378,35 +391,34 @@ bool QMYSQLResultPrivate::bindInValues() inBinds = new MYSQL_BIND[fields.size()]; memset(inBinds, 0, fields.size() * sizeof(MYSQL_BIND)); - MYSQL_FIELD *fieldInfo; + const MYSQL_FIELD *fieldInfo; while((fieldInfo = mysql_fetch_field(meta))) { + bind = &inBinds[i]; + QMyField &f = fields[i]; f.myField = fieldInfo; - + bind->buffer_length = f.bufLength = fieldInfo->length + 1; + bind->buffer_type = fieldInfo->type; f.type = qDecodeMYSQLType(fieldInfo->type, fieldInfo->flags); if (qIsBlob(fieldInfo->type)) { // the size of a blob-field is available as soon as we call // mysql_stmt_store_result() // after mysql_stmt_exec() in QMYSQLResult::exec() - fieldInfo->length = 0; + bind->buffer_length = f.bufLength = 0; hasBlobs = true; } else if (qIsInteger(f.type)) { - fieldInfo->length = 8; + bind->buffer_length = f.bufLength = 8; } else { - fieldInfo->type = MYSQL_TYPE_STRING; + bind->buffer_type = MYSQL_TYPE_STRING; } - bind = &inBinds[i]; - field = new char[fieldInfo->length + 1]; - memset(field, 0, fieldInfo->length + 1); - bind->buffer_type = fieldInfo->type; - bind->buffer = field; - bind->buffer_length = f.bufLength = fieldInfo->length + 1; bind->is_null = &f.nullIndicator; bind->length = &f.bufLength; bind->is_unsigned = fieldInfo->flags & UNSIGNED_FLAG ? 1 : 0; - f.outField=field; + + char *field = new char[bind->buffer_length + 1]{}; + bind->buffer = f.outField = field; ++i; } @@ -1355,24 +1367,23 @@ bool QMYSQLDriver::open(const QString& db, } #if MYSQL_VERSION_ID >= 50007 - if (mysql_get_client_version() >= 50503 && mysql_get_server_version(d->mysql) >= 50503) { - // force the communication to be utf8mb4 (only utf8mb4 supports 4-byte characters) - mysql_set_character_set(d->mysql, "utf8mb4"); + // force the communication to be utf8mb4 (only utf8mb4 supports 4-byte characters) + if (mysql_set_character_set(d->mysql, "utf8mb4")) { + // this failed, try forcing it to utf (BMP only) + if (mysql_set_character_set(d->mysql, "utf8")) + qWarning() << "MySQL: Unable to set the client character set to utf8."; #if QT_CONFIG(textcodec) - d->tc = QTextCodec::codecForName("UTF-8"); + else + d->tc = codec(d->mysql); #endif - } else - { - // force the communication to be utf8 - mysql_set_character_set(d->mysql, "utf8"); + } #if QT_CONFIG(textcodec) - d->tc = codec(d->mysql); + else + d->tc = QTextCodec::codecForName("UTF-8"); #endif - } #endif // MYSQL_VERSION_ID >= 50007 - d->preparedQuerysEnabled = mysql_get_client_version() >= 40108 - && mysql_get_server_version(d->mysql) >= 40100; + d->preparedQuerysEnabled = checkPreparedQueries(d->mysql); #if QT_CONFIG(thread) mysql_thread_init(); diff --git a/qtbase/src/plugins/sqldrivers/oci/qsql_oci.cpp b/qtbase/src/plugins/sqldrivers/oci/qsql_oci.cpp index 8da9837a59..feff54de4a 100644 --- a/qtbase/src/plugins/sqldrivers/oci/qsql_oci.cpp +++ b/qtbase/src/plugins/sqldrivers/oci/qsql_oci.cpp @@ -1483,6 +1483,7 @@ bool QOCICols::execBatch(QOCIResultPrivate *d, QVector &boundValues, b columns[i].lengths[row] = columns[i].maxLen; QOCIDateTime *date = new QOCIDateTime(d->env, d->err, val.toDateTime()); *reinterpret_cast(dataPtr) = date->dateTime; + tmpStorage.dateTimes.append(date); break; } case QVariant::Int: diff --git a/qtbase/src/printsupport/dialogs/images/print-24.png b/qtbase/src/printsupport/dialogs/images/printer-24.png similarity index 100% rename from src/printsupport/dialogs/images/print-24.png rename to src/printsupport/dialogs/images/printer-24.png diff --git a/qtbase/src/printsupport/dialogs/images/print-32.png b/qtbase/src/printsupport/dialogs/images/printer-32.png similarity index 100% rename from src/printsupport/dialogs/images/print-32.png rename to src/printsupport/dialogs/images/printer-32.png diff --git a/qtbase/src/printsupport/dialogs/images/view-page-sided-24.png b/qtbase/src/printsupport/dialogs/images/view-pages-facing-24.png similarity index 100% rename from src/printsupport/dialogs/images/view-page-sided-24.png rename to src/printsupport/dialogs/images/view-pages-facing-24.png diff --git a/qtbase/src/printsupport/dialogs/images/view-page-sided-32.png b/qtbase/src/printsupport/dialogs/images/view-pages-facing-32.png similarity index 100% rename from src/printsupport/dialogs/images/view-page-sided-32.png rename to src/printsupport/dialogs/images/view-pages-facing-32.png diff --git a/qtbase/src/printsupport/dialogs/images/view-page-multi-24.png b/qtbase/src/printsupport/dialogs/images/view-pages-overview-24.png similarity index 100% rename from src/printsupport/dialogs/images/view-page-multi-24.png rename to src/printsupport/dialogs/images/view-pages-overview-24.png diff --git a/qtbase/src/printsupport/dialogs/images/view-page-multi-32.png b/qtbase/src/printsupport/dialogs/images/view-pages-overview-32.png similarity index 100% rename from src/printsupport/dialogs/images/view-page-multi-32.png rename to src/printsupport/dialogs/images/view-pages-overview-32.png diff --git a/qtbase/src/printsupport/dialogs/images/view-page-one-24.png b/qtbase/src/printsupport/dialogs/images/view-pages-single-24.png similarity index 100% rename from src/printsupport/dialogs/images/view-page-one-24.png rename to src/printsupport/dialogs/images/view-pages-single-24.png diff --git a/qtbase/src/printsupport/dialogs/images/view-page-one-32.png b/qtbase/src/printsupport/dialogs/images/view-pages-single-32.png similarity index 100% rename from src/printsupport/dialogs/images/view-page-one-32.png rename to src/printsupport/dialogs/images/view-pages-single-32.png diff --git a/qtbase/src/printsupport/dialogs/images/fit-page-24.png b/qtbase/src/printsupport/dialogs/images/zoom-fit-page-24.png similarity index 100% rename from src/printsupport/dialogs/images/fit-page-24.png rename to src/printsupport/dialogs/images/zoom-fit-page-24.png diff --git a/qtbase/src/printsupport/dialogs/images/fit-page-32.png b/qtbase/src/printsupport/dialogs/images/zoom-fit-page-32.png similarity index 100% rename from src/printsupport/dialogs/images/fit-page-32.png rename to src/printsupport/dialogs/images/zoom-fit-page-32.png diff --git a/qtbase/src/printsupport/dialogs/images/fit-width-24.png b/qtbase/src/printsupport/dialogs/images/zoom-fit-width-24.png similarity index 100% rename from src/printsupport/dialogs/images/fit-width-24.png rename to src/printsupport/dialogs/images/zoom-fit-width-24.png diff --git a/qtbase/src/printsupport/dialogs/images/fit-width-32.png b/qtbase/src/printsupport/dialogs/images/zoom-fit-width-32.png similarity index 100% rename from src/printsupport/dialogs/images/fit-width-32.png rename to src/printsupport/dialogs/images/zoom-fit-width-32.png diff --git a/qtbase/src/printsupport/dialogs/qpagesetupdialog_unix.cpp b/qtbase/src/printsupport/dialogs/qpagesetupdialog_unix.cpp index 78e5b8d1ef..2a28516719 100644 --- a/qtbase/src/printsupport/dialogs/qpagesetupdialog_unix.cpp +++ b/qtbase/src/printsupport/dialogs/qpagesetupdialog_unix.cpp @@ -532,6 +532,7 @@ void QPageSetupWidget::updateWidget() void QPageSetupWidget::setupPrinter() const { m_printer->setPageLayout(m_pageLayout); + m_printer->setPageOrientation(m_pageLayout.orientation()); #if QT_CONFIG(cups) QCUPSSupport::PagesPerSheet pagesPerSheet = qvariant_cast(m_ui.pagesPerSheetCombo->currentData() ); diff --git a/qtbase/src/printsupport/dialogs/qprintdialog.qrc b/qtbase/src/printsupport/dialogs/qprintdialog.qrc index 5a579baa55..10b8e1d341 100644 --- a/qtbase/src/printsupport/dialogs/qprintdialog.qrc +++ b/qtbase/src/printsupport/dialogs/qprintdialog.qrc @@ -1,9 +1,9 @@ -images/fit-page-24.png -images/fit-page-32.png -images/fit-width-24.png -images/fit-width-32.png +images/zoom-fit-page-24.png +images/zoom-fit-page-32.png +images/zoom-fit-width-24.png +images/zoom-fit-width-32.png images/go-first-24.png images/go-first-32.png images/go-last-24.png @@ -18,14 +18,14 @@ images/layout-portrait-32.png images/page-setup-24.png images/page-setup-32.png -images/print-24.png -images/print-32.png -images/view-page-multi-24.png -images/view-page-multi-32.png -images/view-page-one-24.png -images/view-page-one-32.png -images/view-page-sided-24.png -images/view-page-sided-32.png +images/printer-24.png +images/printer-32.png +images/view-pages-overview-24.png +images/view-pages-overview-32.png +images/view-pages-single-24.png +images/view-pages-single-32.png +images/view-pages-facing-24.png +images/view-pages-facing-32.png images/zoom-in-24.png images/zoom-in-32.png images/zoom-out-24.png diff --git a/qtbase/src/printsupport/dialogs/qprintdialog_unix.cpp b/qtbase/src/printsupport/dialogs/qprintdialog_unix.cpp index bf77666c41..236e9b4980 100644 --- a/qtbase/src/printsupport/dialogs/qprintdialog_unix.cpp +++ b/qtbase/src/printsupport/dialogs/qprintdialog_unix.cpp @@ -702,13 +702,14 @@ void QPrintDialogPrivate::selectPrinter(const QPrinter::OutputFormat outputForma else options.grayscale->setChecked(true); - // keep duplex value explicitly set by user, if any, and selected printer supports it; - // use device default otherwise + // duplex priorities to be as follows: + // 1) a user-selected duplex value in the dialog has highest prority + // 2) duplex value set in the QPrinter QPrint::DuplexMode duplex; if (explicitDuplexMode != QPrint::DuplexAuto && supportedDuplexMode.contains(explicitDuplexMode)) duplex = explicitDuplexMode; else - duplex = top->d->m_currentPrintDevice.defaultDuplexMode(); + duplex = static_cast(p->duplex()); switch (duplex) { case QPrint::DuplexNone: options.noDuplex->setChecked(true); break; @@ -1184,6 +1185,8 @@ void QUnixPrintWidgetPrivate::updateWidget() widget.printers->insertSeparator(widget.printers->count()); widget.printers->addItem(QPrintDialog::tr("Print to File (PDF)")); filePrintersAdded = true; + if (widget.printers->count() == 1) + _q_printerChanged(0); } if (!printToFile && filePrintersAdded) { widget.printers->removeItem(widget.printers->count()-1); diff --git a/qtbase/src/printsupport/dialogs/qprintpreviewdialog.cpp b/qtbase/src/printsupport/dialogs/qprintpreviewdialog.cpp index 39575d5f57..23b7e89538 100644 --- a/qtbase/src/printsupport/dialogs/qprintpreviewdialog.cpp +++ b/qtbase/src/printsupport/dialogs/qprintpreviewdialog.cpp @@ -352,7 +352,7 @@ void QPrintPreviewDialogPrivate::init(QPrinter *_printer) static inline void qt_setupActionIcon(QAction *action, QLatin1String name) { QLatin1String imagePrefix(":/qt-project.org/dialogs/qprintpreviewdialog/images/"); - QIcon icon; + QIcon icon = QIcon::fromTheme(name); icon.addFile(imagePrefix + name + QLatin1String("-24.png"), QSize(24, 24)); icon.addFile(imagePrefix + name + QLatin1String("-32.png"), QSize(32, 32)); action->setIcon(icon); @@ -383,8 +383,8 @@ void QPrintPreviewDialogPrivate::setupActions() fitPageAction->setObjectName(QLatin1String("fitPageAction")); fitWidthAction->setCheckable(true); fitPageAction->setCheckable(true); - qt_setupActionIcon(fitWidthAction, QLatin1String("fit-width")); - qt_setupActionIcon(fitPageAction, QLatin1String("fit-page")); + qt_setupActionIcon(fitWidthAction, QLatin1String("zoom-fit-width")); + qt_setupActionIcon(fitPageAction, QLatin1String("zoom-fit-page")); QObject::connect(fitGroup, SIGNAL(triggered(QAction*)), q, SLOT(_q_fit(QAction*))); // Zoom @@ -410,9 +410,9 @@ void QPrintPreviewDialogPrivate::setupActions() singleModeAction = modeGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Show single page")); facingModeAction = modeGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Show facing pages")); overviewModeAction = modeGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Show overview of all pages")); - qt_setupActionIcon(singleModeAction, QLatin1String("view-page-one")); - qt_setupActionIcon(facingModeAction, QLatin1String("view-page-sided")); - qt_setupActionIcon(overviewModeAction, QLatin1String("view-page-multi")); + qt_setupActionIcon(singleModeAction, QLatin1String("view-pages-single")); + qt_setupActionIcon(facingModeAction, QLatin1String("view-pages-facing")); + qt_setupActionIcon(overviewModeAction, QLatin1String("view-pages-overview")); singleModeAction->setObjectName(QLatin1String("singleModeAction")); facingModeAction->setObjectName(QLatin1String("facingModeAction")); overviewModeAction->setObjectName(QLatin1String("overviewModeAction")); @@ -426,7 +426,7 @@ void QPrintPreviewDialogPrivate::setupActions() printerGroup = new QActionGroup(q); printAction = printerGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Print")); pageSetupAction = printerGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Page setup")); - qt_setupActionIcon(printAction, QLatin1String("print")); + qt_setupActionIcon(printAction, QLatin1String("printer")); qt_setupActionIcon(pageSetupAction, QLatin1String("page-setup")); QObject::connect(printAction, SIGNAL(triggered(bool)), q, SLOT(_q_print())); QObject::connect(pageSetupAction, SIGNAL(triggered(bool)), q, SLOT(_q_pageSetup())); diff --git a/qtbase/src/sql/kernel/qsqlquery.cpp b/qtbase/src/sql/kernel/qsqlquery.cpp index 32c6166c79..60afef10c3 100644 --- a/qtbase/src/sql/kernel/qsqlquery.cpp +++ b/qtbase/src/sql/kernel/qsqlquery.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtSql module of the Qt Toolkit. @@ -377,6 +377,10 @@ bool QSqlQuery::exec(const QString& query) QElapsedTimer t; t.start(); #endif + if (!driver()) { + qWarning("QSqlQuery::exec: called before driver has been set up"); + return false; + } if (d->ref.loadRelaxed() != 1) { bool fo = isForwardOnly(); *this = QSqlQuery(driver()->createResult()); diff --git a/qtbase/src/testlib/qabstractitemmodeltester.cpp b/qtbase/src/testlib/qabstractitemmodeltester.cpp index a85b291220..2c3d6a5586 100644 --- a/qtbase/src/testlib/qabstractitemmodeltester.cpp +++ b/qtbase/src/testlib/qabstractitemmodeltester.cpp @@ -454,7 +454,7 @@ void QAbstractItemModelTesterPrivate::parent() // Common error test #2, make sure that a second level index has a parent // that is the first level index. - if (model->rowCount(topIndex) > 0) { + if (model->rowCount(topIndex) > 0 && model->columnCount(topIndex) > 0) { QModelIndex childIndex = model->index(0, 0, topIndex); MODELTESTER_VERIFY(childIndex.isValid()); MODELTESTER_COMPARE(model->parent(childIndex), topIndex); @@ -720,12 +720,12 @@ void QAbstractItemModelTesterPrivate::rowsAboutToBeRemoved(const QModelIndex &pa Changing c; c.parent = parent; c.oldSize = model->rowCount(parent); - if (start > 0) { + if (start > 0 && model->columnCount(parent) > 0) { const QModelIndex startIndex = model->index(start - 1, 0, parent); MODELTESTER_VERIFY(startIndex.isValid()); c.last = model->data(startIndex); } - if (end < c.oldSize - 1) { + if (end < c.oldSize - 1 && model->columnCount(parent) > 0) { const QModelIndex endIndex = model->index(end + 1, 0, parent); MODELTESTER_VERIFY(endIndex.isValid()); c.next = model->data(endIndex); diff --git a/qtbase/src/testlib/qasciikey.cpp b/qtbase/src/testlib/qasciikey.cpp index 9a308da2bc..93498b256f 100644 --- a/qtbase/src/testlib/qasciikey.cpp +++ b/qtbase/src/testlib/qasciikey.cpp @@ -498,6 +498,11 @@ char QTest::keyToAscii(Qt::Key key) case Qt::Key_LaunchE : return 0; // = 0x10b0, case Qt::Key_LaunchF : return 0; // = 0x10b1, + // Keypad navigation keys + case Qt::Key_Select : return 0; // = 0x01010000 + case Qt::Key_Yes : return 0; // = 0x01010001 + case Qt::Key_No : return 0; // = 0x01010002 + default: QTEST_ASSERT(false); return 0; } } diff --git a/qtbase/src/widgets/itemviews/qtableview.cpp b/qtbase/src/widgets/itemviews/qtableview.cpp index 934ac581b2..f79bb24249 100644 --- a/qtbase/src/widgets/itemviews/qtableview.cpp +++ b/qtbase/src/widgets/itemviews/qtableview.cpp @@ -1013,6 +1013,7 @@ void QTableViewPrivate::drawCell(QPainter *painter, const QStyleOptionViewItem & int QTableViewPrivate::widthHintForIndex(const QModelIndex &index, int hint, const QStyleOptionViewItem &option) const { Q_Q(const QTableView); + const int oldHint = hint; QWidget *editor = editorForIndex(index).widget.data(); if (editor && persistent.contains(editor)) { hint = qMax(hint, editor->sizeHint().width()); @@ -1021,6 +1022,17 @@ int QTableViewPrivate::widthHintForIndex(const QModelIndex &index, int hint, con hint = qBound(min, hint, max); } hint = qMax(hint, q->itemDelegate(index)->sizeHint(option, index).width()); + + if (hasSpans()) { + auto span = spans.spanAt(index.column(), index.row()); + if (span && span->m_left == index.column() && span->m_top == index.row()) { + // spans are screwed up when sections are moved + const auto left = logicalColumn(span->m_left); + for (int i = 1; i <= span->width(); ++i) + hint -= q->columnWidth(visualColumn(left + i)); + } + hint = std::max(hint, oldHint); + } return hint; } @@ -1053,6 +1065,11 @@ int QTableViewPrivate::heightHintForIndex(const QModelIndex &index, int hint, QS option.rect.setHeight(height); option.rect.setX(q->columnViewportPosition(index.column())); option.rect.setWidth(q->columnWidth(index.column())); + if (hasSpans()) { + auto span = spans.spanAt(index.column(), index.row()); + if (span && span->m_left == index.column() && span->m_top == index.row()) + option.rect.setWidth(std::max(option.rect.width(), visualSpanRect(*span).width())); + } // 1px less space when grid is shown (see drawCell) if (showGrid) option.rect.setWidth(option.rect.width() - 1); diff --git a/qtbase/src/widgets/itemviews/qtreewidget.cpp b/qtbase/src/widgets/itemviews/qtreewidget.cpp index b795b79c28..81aed27361 100644 --- a/qtbase/src/widgets/itemviews/qtreewidget.cpp +++ b/qtbase/src/widgets/itemviews/qtreewidget.cpp @@ -508,22 +508,18 @@ bool QTreeModel::insertColumns(int column, int count, const QModelIndex &parent) bool QTreeModel::removeRows(int row, int count, const QModelIndex &parent) { if (count < 1 || row < 0 || (row + count) > rowCount(parent)) return false; - - beginRemoveRows(parent, row, row + count - 1); - - QSignalBlocker blocker(this); - - QTreeWidgetItem *itm = item(parent); + QTreeWidgetItem *parentItem = item(parent); + // if parentItem is valid, begin/end RemoveRows is handled by takeChild below + if (!parentItem) + beginRemoveRows(parent, row, row + count - 1); for (int i = row + count - 1; i >= row; --i) { - QTreeWidgetItem *child = itm ? itm->takeChild(i) : rootItem->children.takeAt(i); + QTreeWidgetItem *child = parentItem ? parentItem->takeChild(i) : rootItem->children.takeAt(i); Q_ASSERT(child); child->view = nullptr; delete child; - child = nullptr; } - blocker.unblock(); - - endRemoveRows(); + if (!parentItem) + endRemoveRows(); return true; } diff --git a/qtbase/src/widgets/kernel/qaction.h b/qtbase/src/widgets/kernel/qaction.h index 258a1ea0a0..737c1e8285 100644 --- a/qtbase/src/widgets/kernel/qaction.h +++ b/qtbase/src/widgets/kernel/qaction.h @@ -81,7 +81,7 @@ class Q_WIDGETS_EXPORT QAction : public QObject Q_PROPERTY(MenuRole menuRole READ menuRole WRITE setMenuRole NOTIFY changed) Q_PROPERTY(bool iconVisibleInMenu READ isIconVisibleInMenu WRITE setIconVisibleInMenu NOTIFY changed) Q_PROPERTY(bool shortcutVisibleInContextMenu READ isShortcutVisibleInContextMenu WRITE setShortcutVisibleInContextMenu NOTIFY changed) - Q_PROPERTY(Priority priority READ priority WRITE setPriority) + Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY changed) public: // note this is copied into qplatformmenu.h, which must stay in sync diff --git a/qtbase/src/widgets/util/qcompleter.cpp b/qtbase/src/widgets/util/qcompleter.cpp index 47fee68538..beef80ef4b 100644 --- a/qtbase/src/widgets/util/qcompleter.cpp +++ b/qtbase/src/widgets/util/qcompleter.cpp @@ -1120,6 +1120,8 @@ void QCompleter::setModel(QAbstractItemModel *model) { Q_D(QCompleter); QAbstractItemModel *oldModel = d->proxy->sourceModel(); + if (oldModel == model) + return; #if QT_CONFIG(filesystemmodel) if (qobject_cast(oldModel)) setCompletionRole(Qt::EditRole); // QTBUG-54642, clear FileNameRole set by QFileSystemModel diff --git a/qtbase/src/widgets/widgets/qabstractbutton.cpp b/qtbase/src/widgets/widgets/qabstractbutton.cpp index a128b23950..dc40bf62fb 100644 --- a/qtbase/src/widgets/widgets/qabstractbutton.cpp +++ b/qtbase/src/widgets/widgets/qabstractbutton.cpp @@ -56,6 +56,7 @@ #ifndef QT_NO_ACCESSIBILITY #include "qaccessible.h" #endif +#include #include @@ -1076,19 +1077,19 @@ void QAbstractButton::keyPressEvent(QKeyEvent *e) { Q_D(QAbstractButton); bool next = true; - switch (e->key()) { - case Qt::Key_Enter: - case Qt::Key_Return: - e->ignore(); - break; - case Qt::Key_Select: - case Qt::Key_Space: - if (!e->isAutoRepeat()) { - setDown(true); - repaint(); - d->emitPressed(); - } - break; + + const auto key = static_cast(e->key()); + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(key) && !e->isAutoRepeat()) { + setDown(true); + repaint(); + d->emitPressed(); + return; + } + + switch (key) { case Qt::Key_Up: next = false; Q_FALLTHROUGH(); @@ -1153,15 +1154,15 @@ void QAbstractButton::keyReleaseEvent(QKeyEvent *e) if (!e->isAutoRepeat()) d->repeatTimer.stop(); - switch (e->key()) { - case Qt::Key_Select: - case Qt::Key_Space: - if (!e->isAutoRepeat() && d->down) - d->click(); - break; - default: - e->ignore(); + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(static_cast(e->key())) && !e->isAutoRepeat() && d->down) { + d->click(); + return; } + + e->ignore(); } /*!\reimp diff --git a/qtbase/src/widgets/widgets/qcombobox.cpp b/qtbase/src/widgets/widgets/qcombobox.cpp index 9bc346704f..7432eb4eb5 100644 --- a/qtbase/src/widgets/widgets/qcombobox.cpp +++ b/qtbase/src/widgets/widgets/qcombobox.cpp @@ -3339,7 +3339,23 @@ void QComboBox::keyPressEvent(QKeyEvent *e) Move move = NoMove; int newIndex = currentIndex(); - switch (e->key()) { + + bool pressLikeButton = !d->lineEdit; +#ifdef QT_KEYPAD_NAVIGATION + pressLikeButton |= QApplicationPrivate::keypadNavigationEnabled() && !hasEditFocus(); +#endif + auto key = static_cast(e->key()); + if (pressLikeButton) { + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(key)) { + showPopup(); + return; + } + } + + switch (key) { case Qt::Key_Up: if (e->modifiers() & Qt::ControlModifier) break; // pass to line edit for auto completion @@ -3381,26 +3397,11 @@ void QComboBox::keyPressEvent(QKeyEvent *e) return; } break; - case Qt::Key_Space: - if (!d->lineEdit) { - showPopup(); - return; - } - break; - case Qt::Key_Enter: - case Qt::Key_Return: case Qt::Key_Escape: if (!d->lineEdit) e->ignore(); break; #ifdef QT_KEYPAD_NAVIGATION - case Qt::Key_Select: - if (QApplicationPrivate::keypadNavigationEnabled() - && (!hasEditFocus() || !d->lineEdit)) { - showPopup(); - return; - } - break; case Qt::Key_Left: case Qt::Key_Right: if (QApplicationPrivate::keypadNavigationEnabled() && !hasEditFocus()) diff --git a/qtbase/src/widgets/widgets/qdatetimeedit_p.h b/qtbase/src/widgets/widgets/qdatetimeedit_p.h index 7df2b59710..e0df5b5158 100644 --- a/qtbase/src/widgets/widgets/qdatetimeedit_p.h +++ b/qtbase/src/widgets/widgets/qdatetimeedit_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtWidgets module of the Qt Toolkit. @@ -107,7 +107,7 @@ public: if (keyboardTracking) return maximum.toDateTime(); if (spec != Qt::LocalTime) - return QDateTime(QDATETIMEEDIT_DATE_MIN.startOfDay(spec)); + return QDateTime(QDATETIMEEDIT_DATE_MAX.endOfDay(spec)); return QDateTimeParser::getMaximum(); } QLocale locale() const override { return q_func()->locale(); } diff --git a/qtbase/src/widgets/widgets/qgroupbox.cpp b/qtbase/src/widgets/widgets/qgroupbox.cpp index 02a0bed325..3f3eccc370 100644 --- a/qtbase/src/widgets/widgets/qgroupbox.cpp +++ b/qtbase/src/widgets/widgets/qgroupbox.cpp @@ -54,6 +54,8 @@ #include "qaccessible.h" #endif #include +#include +#include #include "qdebug.h" @@ -360,7 +362,10 @@ bool QGroupBox::event(QEvent *e) return true; case QEvent::KeyPress: { QKeyEvent *k = static_cast(e); - if (!k->isAutoRepeat() && (k->key() == Qt::Key_Select || k->key() == Qt::Key_Space)) { + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (!k->isAutoRepeat() && buttonPressKeys.contains(static_cast(k->key()))) { d->pressedControl = QStyle::SC_GroupBoxCheckBox; update(style()->subControlRect(QStyle::CC_GroupBox, &box, QStyle::SC_GroupBoxCheckBox, this)); return true; @@ -369,7 +374,10 @@ bool QGroupBox::event(QEvent *e) } case QEvent::KeyRelease: { QKeyEvent *k = static_cast(e); - if (!k->isAutoRepeat() && (k->key() == Qt::Key_Select || k->key() == Qt::Key_Space)) { + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (!k->isAutoRepeat() && buttonPressKeys.contains(static_cast(k->key()))) { bool toggle = (d->pressedControl == QStyle::SC_GroupBoxLabel || d->pressedControl == QStyle::SC_GroupBoxCheckBox); d->pressedControl = QStyle::SC_None; diff --git a/qtbase/src/widgets/widgets/qlabel.cpp b/qtbase/src/widgets/widgets/qlabel.cpp index 30ff80cbb0..cf2605c17c 100644 --- a/qtbase/src/widgets/widgets/qlabel.cpp +++ b/qtbase/src/widgets/widgets/qlabel.cpp @@ -421,9 +421,6 @@ void QLabel::setPixmap(const QPixmap &pixmap) d->pixmap = new QPixmap(pixmap); } - if (d->pixmap->depth() == 1 && !d->pixmap->mask()) - d->pixmap->setMask(*((QBitmap *)d->pixmap)); - d->updateLabel(); } diff --git a/qtbase/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp b/qtbase/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp index da5327594c..4a04e0f7c6 100644 --- a/qtbase/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp +++ b/qtbase/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp @@ -561,7 +561,8 @@ protected: qint64 readData(char *data, qint64 maxSize) override { maxSize = qMin(maxSize, qint64(buf->size() - offset)); - memcpy(data, buf->constData() + offset, maxSize); + if (maxSize > 0) + memcpy(data, buf->constData() + offset, maxSize); offset += maxSize; return maxSize; } @@ -604,13 +605,15 @@ protected: qint64 readData(char *data, qint64 maxSize) override { maxSize = qMin(maxSize, qint64(buf.size() - pos())); - memcpy(data, buf.constData() + pos(), maxSize); + if (maxSize > 0) + memcpy(data, buf.constData() + pos(), maxSize); return maxSize; } qint64 writeData(const char *data, qint64 maxSize) override { maxSize = qMin(maxSize, qint64(buf.size() - pos())); - memcpy(buf.data() + pos(), data, maxSize); + if (maxSize > 0) + memcpy(buf.data() + pos(), data, maxSize); return maxSize; } diff --git a/qtbase/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/qtbase/tests/auto/corelib/io/qprocess/tst_qprocess.cpp index bc9df3f1f3..33051d3803 100644 --- a/qtbase/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +++ b/qtbase/tests/auto/corelib/io/qprocess/tst_qprocess.cpp @@ -1,7 +1,7 @@ /**************************************************************************** ** ** Copyright (C) 2020 The Qt Company Ltd. -** Copyright (C) 2020 Intel Corporation. +** Copyright (C) 2022 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. @@ -149,6 +149,8 @@ private slots: void startStopStartStopBuffers(); void processEventsInAReadyReadSlot_data(); void processEventsInAReadyReadSlot(); + void startFromCurrentWorkingDir_data(); + void startFromCurrentWorkingDir(); // keep these at the end, since they use lots of processes and sometimes // caused obscure failures to occur in tests that followed them (esp. on the Mac) @@ -2732,5 +2734,94 @@ void tst_QProcess::finishProcessBeforeReadingDone_deprecated() #endif +enum class ChdirMode { + None = 0, + InParent, + InChild +}; +Q_DECLARE_METATYPE(ChdirMode) + +void tst_QProcess::startFromCurrentWorkingDir_data() +{ + qRegisterMetaType(); + QTest::addColumn("programPrefix"); + QTest::addColumn("chdirMode"); + QTest::addColumn("success"); + + constexpr bool IsWindows = true +#ifdef Q_OS_UNIX + && false +#endif + ; + + // baseline: trying to execute the directory, this can't possibly succeed! + QTest::newRow("plain-same-cwd") << QString() << ChdirMode::None << false; + + // cross-platform behavior: neither OS searches the setWorkingDirectory() + // dir without "./" + QTest::newRow("plain-child-chdir") << QString() << ChdirMode::InChild << false; + + // cross-platform behavior: both OSes search the parent's CWD with "./" + QTest::newRow("prefixed-parent-chdir") << "./" << ChdirMode::InParent << true; + + // opposite behaviors: Windows searches the parent's CWD and Unix searches + // the child's with "./" + QTest::newRow("prefixed-child-chdir") << "./" << ChdirMode::InChild << !IsWindows; + + // Windows searches the parent's CWD without "./" + QTest::newRow("plain-parent-chdir") << QString() << ChdirMode::InParent << IsWindows; +} + +void tst_QProcess::startFromCurrentWorkingDir() +{ + QFETCH(QString, programPrefix); + QFETCH(ChdirMode, chdirMode); + QFETCH(bool, success); + + QProcess process; + qRegisterMetaType(); + QSignalSpy errorSpy(&process, &QProcess::errorOccurred); + QVERIFY(errorSpy.isValid()); + + // both the dir name and the executable name + const QString target = QStringLiteral("testProcessNormal"); + process.setProgram(programPrefix + target); + +#ifdef Q_OS_UNIX + // Reset PATH, to be sure it doesn't contain . or the empty path. + // We can't do this on Windows because DLLs are searched in PATH + // and Windows always searches "." anyway. + auto restoreEnv = qScopeGuard([old = qgetenv("PATH")] { + qputenv("PATH", old); + }); + qputenv("PATH", "/"); +#endif + + switch (chdirMode) { + case ChdirMode::InParent: { + auto restoreCwd = qScopeGuard([old = QDir::currentPath()] { + QDir::setCurrent(old); + }); + QVERIFY(QDir::setCurrent(target)); + process.start(); + break; + } + case ChdirMode::InChild: + process.setWorkingDirectory(target); + Q_FALLTHROUGH(); + case ChdirMode::None: + process.start(); + break; + } + + QCOMPARE(process.waitForStarted(), success); + QCOMPARE(errorSpy.count(), int(!success)); + if (success) { + QVERIFY(process.waitForFinished()); + } else { + QCOMPARE(process.error(), QProcess::FailedToStart); + } +} + QTEST_MAIN(tst_QProcess) #include "tst_qprocess.moc" diff --git a/qtbase/tests/auto/corelib/itemmodels/qconcatenatetablesproxymodel/tst_qconcatenatetablesproxymodel.cpp b/qtbase/tests/auto/corelib/itemmodels/qconcatenatetablesproxymodel/tst_qconcatenatetablesproxymodel.cpp index e1ea7a4552..90972caa57 100644 --- a/qtbase/tests/auto/corelib/itemmodels/qconcatenatetablesproxymodel/tst_qconcatenatetablesproxymodel.cpp +++ b/qtbase/tests/auto/corelib/itemmodels/qconcatenatetablesproxymodel/tst_qconcatenatetablesproxymodel.cpp @@ -117,6 +117,7 @@ private Q_SLOTS: void shouldPropagateDropAfterLastRow_data(); void shouldPropagateDropAfterLastRow(); void qtbug91788(); + void qtbug91878(); private: QStandardItemModel mod; @@ -843,6 +844,22 @@ void tst_QConcatenateTablesProxyModel::qtbug91788() QCOMPARE(proxyConcat.columnCount(), 0); } +void tst_QConcatenateTablesProxyModel::qtbug91878() +{ + QStandardItemModel m; + m.setRowCount(4); + m.setColumnCount(4); + + QConcatenateTablesProxyModel pm; + QSortFilterProxyModel proxyFilter; + proxyFilter.setSourceModel(&pm); + proxyFilter.setFilterFixedString("something"); + pm.addSourceModel(&m); // This should not assert + + QCOMPARE(pm.columnCount(), 4); + QCOMPARE(pm.rowCount(), 4); +} + QTEST_GUILESS_MAIN(tst_QConcatenateTablesProxyModel) #include "tst_qconcatenatetablesproxymodel.moc" diff --git a/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp b/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp index 6f608854ae..a6e1f49be2 100644 --- a/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp +++ b/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.cpp @@ -2220,6 +2220,40 @@ void tst_QSortFilterProxyModel::changeSourceDataProxySendDataChanged_qtbug87781( QCOMPARE(afterDataChangedSpy.size(), 1); } +void tst_QSortFilterProxyModel::changeSourceDataTreeModel() +{ + QStandardItemModel treeModel; + QSortFilterProxyModel treeProxyModelBefore; + QSortFilterProxyModel treeProxyModelAfter; + + QSignalSpy treeBaseDataChangedSpy(&treeModel, &QStandardItemModel::dataChanged); + QSignalSpy treeBeforeDataChangedSpy(&treeProxyModelBefore, &QSortFilterProxyModel::dataChanged); + QSignalSpy treeAfterDataChangedSpy(&treeProxyModelAfter, &QSortFilterProxyModel::dataChanged); + + QVERIFY(treeBaseDataChangedSpy.isValid()); + QVERIFY(treeBeforeDataChangedSpy.isValid()); + QVERIFY(treeAfterDataChangedSpy.isValid()); + + treeProxyModelBefore.setSourceModel(&treeModel); + QStandardItem treeNode1("data1"); + QStandardItem treeNode11("data11"); + QStandardItem treeNode111("data111"); + + treeNode1.appendRow(&treeNode11); + treeNode11.appendRow(&treeNode111); + treeModel.appendRow(&treeNode1); + treeProxyModelAfter.setSourceModel(&treeModel); + + QCOMPARE(treeBaseDataChangedSpy.size(), 0); + QCOMPARE(treeBeforeDataChangedSpy.size(), 0); + QCOMPARE(treeAfterDataChangedSpy.size(), 0); + + treeNode111.setData(QStringLiteral("new data"), Qt::DisplayRole); + QCOMPARE(treeBaseDataChangedSpy.size(), 1); + QCOMPARE(treeBeforeDataChangedSpy.size(), 1); + QCOMPARE(treeAfterDataChangedSpy.size(), 1); +} + void tst_QSortFilterProxyModel::changeSourceDataProxyFilterSingleColumn() { enum modelRow { Row0, Row1, RowCount }; diff --git a/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h b/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h index 7bf87a86c2..97862e804b 100644 --- a/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h +++ b/qtbase/tests/auto/corelib/itemmodels/qsortfilterproxymodel_common/tst_qsortfilterproxymodel.h @@ -91,6 +91,7 @@ private slots: void changeSourceDataKeepsStableSorting_qtbug1548(); void changeSourceDataForwardsRoles_qtbug35440(); void changeSourceDataProxySendDataChanged_qtbug87781(); + void changeSourceDataTreeModel(); void changeSourceDataProxyFilterSingleColumn(); void changeSourceDataProxyFilterMultipleColumns(); void resortingDoesNotBreakTreeModels(); diff --git a/qtbase/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/qtbase/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp index 0ea422ecbc..1a3256534b 100644 --- a/qtbase/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp +++ b/qtbase/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp @@ -70,15 +70,15 @@ static inline QString testSuiteWarning() QString result; QTextStream str(&result); - str << "\nCannot find the shared-mime-info test suite\nstarting from: " + str << "\nCannot find the shared-mime-info test suite\nin the parent of: " << QDir::toNativeSeparators(QDir::currentPath()) << "\n" "cd " << QDir::toNativeSeparators(QStringLiteral("tests/auto/corelib/mimetypes/qmimedatabase")) << "\n" - "wget http://cgit.freedesktop.org/xdg/shared-mime-info/snapshot/Release-1-10.zip\n" - "unzip Release-1-10.zip\n"; + "wget https://gitlab.freedesktop.org/xdg/shared-mime-info/-/archive/2.1/shared-mime-info-2.1.zip\n" + "unzip shared-mime-info-2.1.zip\n"; #ifdef Q_OS_WIN - str << "mkdir testfiles\nxcopy /s Release-1-10 s-m-i\n"; + str << "mkdir testfiles\nxcopy /s shared-mime-info-2.1 s-m-i\n"; #else - str << "ln -s Release-1-10 s-m-i\n"; + str << "ln -s shared-mime-info-2.1 s-m-i\n"; #endif return result; } @@ -154,7 +154,7 @@ void tst_QMimeDatabase::initTestCase() QVERIFY2(copyResourceFile(xmlFileName, xmlTargetFileName, &errorMessage), qPrintable(errorMessage)); #endif - m_testSuite = QFINDTESTDATA("s-m-i/tests"); + m_testSuite = QFINDTESTDATA("s-m-i/tests/mime-detection"); if (m_testSuite.isEmpty()) qWarning("%s", qPrintable(testSuiteWarning())); @@ -611,7 +611,7 @@ void tst_QMimeDatabase::allMimeTypes() QVERIFY(!lst.isEmpty()); // Hardcoding this is the only way to check both providers find the same number of mimetypes. - QCOMPARE(lst.count(), 779); + QCOMPARE(lst.count(), 811); foreach (const QMimeType &mime, lst) { const QString name = mime.name(); @@ -631,10 +631,9 @@ void tst_QMimeDatabase::suffixes_data() QTest::newRow("mimetype with a single pattern") << "application/pdf" << "*.pdf" << "pdf"; QTest::newRow("mimetype with multiple patterns") << "application/x-kpresenter" << "*.kpr;*.kpt" << "kpr"; - QTest::newRow("jpeg") << "image/jpeg" << "*.jpe;*.jpg;*.jpeg" << "jpeg"; - //if (KMimeType::sharedMimeInfoVersion() > KDE_MAKE_VERSION(0, 60, 0)) { - QTest::newRow("mimetype with many patterns") << "application/vnd.wordperfect" << "*.wp;*.wp4;*.wp5;*.wp6;*.wpd;*.wpp" << "wp"; - //} + // The preferred suffix for image/jpeg is *.jpg, as per https://bugs.kde.org/show_bug.cgi?id=176737 + QTest::newRow("jpeg") << "image/jpeg" << "*.jpe;*.jpg;*.jpeg" << "jpg"; + QTest::newRow("mimetype with many patterns") << "application/vnd.wordperfect" << "*.wp;*.wp4;*.wp5;*.wp6;*.wpd;*.wpp" << "wp"; QTest::newRow("oasis text mimetype") << "application/vnd.oasis.opendocument.text" << "*.odt" << "odt"; QTest::newRow("oasis presentation mimetype") << "application/vnd.oasis.opendocument.presentation" << "*.odp" << "odp"; QTest::newRow("mimetype with multiple patterns") << "text/plain" << "*.asc;*.txt;*,v" << "txt"; diff --git a/qtbase/tests/auto/corelib/text/qstring/tst_qstring.cpp b/qtbase/tests/auto/corelib/text/qstring/tst_qstring.cpp index 8f53824050..4c4a8f0416 100644 --- a/qtbase/tests/auto/corelib/text/qstring/tst_qstring.cpp +++ b/qtbase/tests/auto/corelib/text/qstring/tst_qstring.cpp @@ -1674,7 +1674,7 @@ void tst_QString::lastIndexOf() QCOMPARE(haystack.lastIndexOf(needle.toLatin1(), from, cs), expected); QCOMPARE(haystack.lastIndexOf(needle.toLatin1().data(), from, cs), expected); - if (from >= -1 && from < haystack.size() && needle.size() > 0) { + if (from >= -1 && from < haystack.size()) { // unfortunately, QString and QRegExp don't have the same out of bound semantics // I think QString is wrong -- See file log for contact information. { diff --git a/qtbase/tests/auto/corelib/thread/qthread/tst_qthread.cpp b/qtbase/tests/auto/corelib/thread/qthread/tst_qthread.cpp index 7be2f48758..ad8556de81 100644 --- a/qtbase/tests/auto/corelib/thread/qthread/tst_qthread.cpp +++ b/qtbase/tests/auto/corelib/thread/qthread/tst_qthread.cpp @@ -106,6 +106,7 @@ private slots: void quitLock(); void create(); + void threadIdReuse(); }; enum { one_minute = 60 * 1000, five_minutes = 5 * one_minute }; @@ -1631,5 +1632,57 @@ void tst_QThread::requestTermination() QVERIFY(!thread.isInterruptionRequested()); } +/* + This is a regression test for QTBUG-96846. + + Incorrect system thread ID cleanup can cause QThread::wait() to report that + a thread is trying to wait for itself. +*/ +void tst_QThread::threadIdReuse() +{ + // It's important that those thread ID's are not accessed concurrently + Qt::HANDLE threadId1; + + auto thread1Fn = [&threadId1]() -> void { threadId1 = QThread::currentThreadId(); }; + QScopedPointer thread1(QThread::create(thread1Fn)); + thread1->start(); + QVERIFY(thread1->wait()); + + // If the system thread allocated for thread1 is destroyed before thread2 is started, + // at least on some versions of Linux the system thread ID for thread2 would be the + // same as one that was used for thread1. + + // The system thread may be alive for some time after returning from QThread::wait() + // because the implementation is using detachable threads, so some additional time is + // required for the system thread to terminate. Not waiting long enough here would result + // in a new system thread ID being allocated for thread2 and this test passing even without + // a fix for QTBUG-96846. + bool threadIdReused = false; + + for (int i = 0; i < 42; i++) { + QThread::msleep(1); + + Qt::HANDLE threadId2; + auto waitForThread1 = [&thread1, &threadId2]() -> void { + threadId2 = QThread::currentThreadId(); + QVERIFY(thread1->wait()); + }; + + QScopedPointer thread2(QThread::create(waitForThread1)); + thread2->start(); + QVERIFY(thread2->wait()); + + if (threadId1 == threadId2) { + qDebug("Thread ID reused at iteration %d", i); + threadIdReused = true; + break; + } + } + + if (!threadIdReused) { + QSKIP("Thread ID was not reused"); + } +} + QTEST_MAIN(tst_QThread) #include "tst_qthread.moc" diff --git a/qtbase/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp b/qtbase/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp index a59b58d57f..241c3e84ac 100644 --- a/qtbase/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp +++ b/qtbase/tests/auto/corelib/time/qtimezone/tst_qtimezone.cpp @@ -63,6 +63,7 @@ private slots: void isValidId_data(); void isValidId(); void malformed(); + void serialize(); // Backend tests void utcTest(); void icuTest(); @@ -947,6 +948,33 @@ void tst_QTimeZone::malformed() barf.offsetFromUtc(now); } +void tst_QTimeZone::serialize() +{ + int parts = 0; +#ifndef QT_NO_DEBUG_STREAM + qDebug() << QTimeZone(); // to verify no crash + parts++; +#endif +#ifndef QT_NO_DATASTREAM + QByteArray blob; + { + QDataStream stream(&blob, QIODevice::WriteOnly); + stream << QTimeZone("Europe/Oslo") << QTimeZone(420) << QTimeZone() << qint64(-1); + } + QDataStream stream(&blob, QIODevice::ReadOnly); + QTimeZone invalid, offset, oslo; + qint64 minusone; + stream >> oslo >> offset >> invalid >> minusone; + QCOMPARE(oslo, QTimeZone("Europe/Oslo")); + QCOMPARE(offset, QTimeZone(420)); + QVERIFY(!invalid.isValid()); + QCOMPARE(minusone, qint64(-1)); + parts++; +#endif + if (!parts) + QSKIP("No serialization enabled"); +} + void tst_QTimeZone::utcTest() { #ifdef QT_BUILD_INTERNAL diff --git a/qtbase/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp b/qtbase/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp index 5443cf120b..625da129c4 100644 --- a/qtbase/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp +++ b/qtbase/tests/auto/corelib/tools/qvarlengtharray/tst_qvarlengtharray.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include @@ -40,6 +41,7 @@ private slots: void removeLast(); void oldTests(); void appendCausingRealloc(); + void appendIsStronglyExceptionSafe(); void resize(); void realloc(); void reverseIterators(); @@ -245,6 +247,49 @@ void tst_QVarLengthArray::appendCausingRealloc() d.append(i); } +void tst_QVarLengthArray::appendIsStronglyExceptionSafe() +{ +#ifdef QT_NO_EXCEPTIONS + QSKIP("This test requires exception support enabled in the compiler."); +#else + static bool throwOnCopyNow = false; + static bool throwOnMoveNow = false; + struct Thrower { + Thrower() = default; + Thrower(const Thrower &) + { + if (throwOnCopyNow) + throw 1; + } + Thrower &operator=(const Thrower &) = default; + Thrower(Thrower &&) + { + if (throwOnMoveNow) + throw 1; + } + Thrower &operator=(Thrower &&) = default; + ~Thrower() = default; + }; + + { + // ### TODO: QVLA isn't exception-safe when throwing during reallocation, + // ### so check with size() < capacity() for now + QVarLengthArray vla(1); + { + Thrower t; + const QScopedValueRollback rb(throwOnCopyNow, true); + QVERIFY_EXCEPTION_THROWN(vla.push_back(t), int); + QCOMPARE(vla.size(), 1); + } + { + const QScopedValueRollback rb(throwOnMoveNow, true); + QVERIFY_EXCEPTION_THROWN(vla.push_back({}), int); + QCOMPARE(vla.size(), 1); + } + } +#endif +} + void tst_QVarLengthArray::resize() { //MOVABLE diff --git a/qtbase/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/qtbase/tests/auto/gui/painting/qpainter/tst_qpainter.cpp index 42e98ce363..d7c3f95f1d 100644 --- a/qtbase/tests/auto/gui/painting/qpainter/tst_qpainter.cpp +++ b/qtbase/tests/auto/gui/painting/qpainter/tst_qpainter.cpp @@ -308,6 +308,7 @@ private slots: void fillPolygon(); void drawImageAtPointF(); + void scaledDashes(); private: void fillData(); @@ -5468,6 +5469,36 @@ void tst_QPainter::drawImageAtPointF() paint.end(); } +void tst_QPainter::scaledDashes() +{ + // Test that we do not hit the limit-huge-number-of-dashes path + QRgb fore = qRgb(0, 0, 0xff); + QRgb back = qRgb(0xff, 0xff, 0); + QImage image(5, 32, QImage::Format_RGB32); + image.fill(back); + QPainter p(&image); + QPen pen(QColor(fore), 3, Qt::DotLine); + p.setPen(pen); + p.scale(1, 2); + p.drawLine(2, 0, 2, 16); + p.end(); + + bool foreFound = false; + bool backFound = false; + int i = 0; + while (i < 32 && (!foreFound || !backFound)) { + QRgb pix = image.pixel(3, i); + if (pix == fore) + foreFound = true; + else if (pix == back) + backFound = true; + i++; + } + + QVERIFY(foreFound); + QVERIFY(backFound); +} + QTEST_MAIN(tst_QPainter) #include "tst_qpainter.moc" diff --git a/qtbase/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp b/qtbase/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp index bbb7276bfb..6f783f6b6c 100644 --- a/qtbase/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp +++ b/qtbase/tests/auto/gui/text/qfontdatabase/tst_qfontdatabase.cpp @@ -79,6 +79,8 @@ private slots: void registerOpenTypePreferredNamesSystem(); void registerOpenTypePreferredNamesApplication(); + void stretchRespected(); + private: QString m_ledFont; QString m_testFont; @@ -353,6 +355,28 @@ static QString testString() return QStringLiteral("foo bar"); } +void tst_QFontDatabase::stretchRespected() +{ + int italicId = QFontDatabase::addApplicationFont(m_testFontItalic); + QVERIFY(italicId != -1); + + QVERIFY(!QFontDatabase::applicationFontFamilies(italicId).isEmpty()); + + QString italicFontName = QFontDatabase::applicationFontFamilies(italicId).first(); + + QFont italicFont = QFontDatabase().font(italicFontName, + QString::fromLatin1("Italic"), 14); + QVERIFY(italicFont.italic()); + + QFont italicStretchedFont = italicFont; + italicStretchedFont.setStretch( 400 ); + + QVERIFY(QFontMetricsF(italicFont).horizontalAdvance(QStringLiteral("foobar")) < + QFontMetricsF(italicStretchedFont).horizontalAdvance(QStringLiteral("foobar"))); + + QFontDatabase::removeApplicationFont(italicId); +} + void tst_QFontDatabase::condensedFontWidthNoFontMerging() { int regularFontId = QFontDatabase::addApplicationFont(m_testFont); diff --git a/qtbase/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp b/qtbase/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp index 474079037b..93bbf9f34f 100644 --- a/qtbase/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp +++ b/qtbase/tests/auto/gui/text/qtexttable/tst_qtexttable.cpp @@ -29,7 +29,7 @@ #include - +#include #include #include #include @@ -44,6 +44,7 @@ #include #include #endif +#include #include typedef QList IntList; @@ -100,6 +101,13 @@ private slots: void checkBorderAttributes_data(); void checkBorderAttributes(); +#ifndef QT_NO_WIDGETS + void columnWidthWithSpans(); + + void columnWidthWithImage_data(); + void columnWidthWithImage(); +#endif + private: QTextTable *create2x2Table(); QTextTable *create4x4Table(); @@ -1278,5 +1286,84 @@ void tst_QTextTable::checkBorderAttributes() } } +#ifndef QT_NO_WIDGETS +void tst_QTextTable::columnWidthWithSpans() +{ + cleanup(); + init(); + QTextTable *table = cursor.insertTable(4, 4); + QTextEdit textEdit; + textEdit.setDocument(doc); + textEdit.show(); + QVERIFY(QTest::qWaitForWindowExposed(&textEdit)); + + for (int i = 0; i < table->columns(); ++i) + table->cellAt(0, i).firstCursorPosition().insertText(QString("Header %1").arg(i)); + + QTextBlock block = table->cellAt(0, 0).firstCursorPosition().block(); + const QRectF beforeRect = table->document()->documentLayout()->blockBoundingRect(block); + table->mergeCells(1, 0, 1, table->columns()); + block = table->cellAt(0, 0).firstCursorPosition().block(); + const QRectF afterRect = table->document()->documentLayout()->blockBoundingRect(block); + QCOMPARE(afterRect, beforeRect); +} + +void tst_QTextTable::columnWidthWithImage_data() +{ + const auto imageHtml = [](int width, int height) { + QImage image(width, height, QImage::Format_RGB32); + image.fill(Qt::red); + QByteArray imageBytes; + QBuffer buffer(&imageBytes); + buffer.open(QIODevice::WriteOnly); + image.save(&buffer, "png"); + return QString("").arg(QString(imageBytes.toBase64())); + }; + + QTest::addColumn("leftHtml"); + QTest::addColumn("rightHtml"); + QTest::addColumn("imageSize"); + QTest::addRow("image") + << imageHtml(500, 32) << "" << QSize(500, 32); + QTest::addRow("image, text") + << imageHtml(32, 32) << "abc" << QSize(32, 32); + QTest::addRow("image, 100%% text") + << imageHtml(32, 32) << "abc" + << QSize(32, 32); + QTest::addRow("image, image") + << imageHtml(256, 32) << imageHtml(256, 32) << QSize(256, 32); +} + +void tst_QTextTable::columnWidthWithImage() +{ + const QString tableTemplate = "%1 %2
"; + + QFETCH(QString, leftHtml); + QFETCH(QString, rightHtml); + QFETCH(QSize, imageSize); + + QTextDocument doc; + doc.setHtml(tableTemplate.arg(leftHtml).arg(rightHtml)); + QTextEdit textEdit; + textEdit.setDocument(&doc); + textEdit.show(); + QVERIFY(QTest::qWaitForWindowExposed(&textEdit)); + + QTextCursor cursor(doc.firstBlock()); + cursor.movePosition(QTextCursor::Right); + + QTextTable *currentTable = cursor.currentTable(); + QVERIFY(currentTable); + + QTextBlock block = currentTable->cellAt(0, 0).firstCursorPosition().block(); + const QRectF leftRect = currentTable->document()->documentLayout()->blockBoundingRect(block); + block = currentTable->cellAt(0, 1).firstCursorPosition().block(); + const QRectF rightRect = currentTable->document()->documentLayout()->blockBoundingRect(block); + QCOMPARE(leftRect.size().toSize(), imageSize); + QVERIFY(rightRect.left() > leftRect.right()); +} +#endif + + QTEST_MAIN(tst_QTextTable) #include "tst_qtexttable.moc" diff --git a/qtbase/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp b/qtbase/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp index 115d111974..445e6a2d98 100644 --- a/qtbase/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp +++ b/qtbase/tests/auto/network/ssl/qsslcertificate/tst_qsslcertificate.cpp @@ -1128,6 +1128,7 @@ void tst_QSslCertificate::verify() #if QT_CONFIG(securetransport) QSKIP("Not implemented in SecureTransport"); #endif + QList errors; QList toVerify; diff --git a/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.cert b/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.cert index 069fa6b341..4cc4d9a5ea 100644 --- a/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.cert +++ b/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.cert @@ -1,75 +1,34 @@ -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 0 (0x0) - Signature Algorithm: sha1WithRSAEncryption - Issuer: C=NO, ST=Oslo, L=Nydalen, O=Nokia Corporation and/or its subsidiary(-ies), OU=Development, CN=fluke.troll.no/emailAddress=ahanssen@trolltech.com - Validity - Not Before: Dec 4 01:10:32 2007 GMT - Not After : Apr 21 01:10:32 2035 GMT - Subject: C=NO, ST=Oslo, O=Nokia Corporation and/or its subsidiary(-ies), OU=Development, CN=fluke.troll.no - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:a7:c8:a0:4a:c4:19:05:1b:66:ba:32:e2:d2:f1: - 1c:6f:17:82:e4:39:2e:01:51:90:db:04:34:32:11: - 21:c2:0d:6f:59:d8:53:90:54:3f:83:8f:a9:d3:b3: - d5:ee:1a:9b:80:ae:c3:25:c9:5e:a5:af:4b:60:05: - aa:a0:d1:91:01:1f:ca:04:83:e3:58:1c:99:32:45: - 84:70:72:58:03:98:4a:63:8b:41:f5:08:49:d2:91: - 02:60:6b:e4:64:fe:dd:a0:aa:74:08:e9:34:4c:91: - 5f:12:3d:37:4d:54:2c:ad:7f:5b:98:60:36:02:8c: - 3b:f6:45:f3:27:6a:9b:94:9d - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - OpenSSL Generated Certificate - X509v3 Subject Key Identifier: - 21:85:04:3D:23:01:66:E5:F7:9F:1A:84:24:8A:AF:0A:79:F4:E5:AC - X509v3 Authority Key Identifier: - DirName:/C=NO/ST=Oslo/L=Nydalen/O=Nokia Corporation and/or its subsidiary(-ies)/OU=Development/CN=fluke.troll.no/emailAddress=ahanssen@trolltech.com - serial:8E:A8:B4:E8:91:B7:54:2E - - Signature Algorithm: sha1WithRSAEncryption - 6d:57:5f:d1:05:43:f0:62:05:ec:2a:71:a5:dc:19:08:f2:c4: - a6:bd:bb:25:d9:ca:89:01:0e:e4:cf:1f:c1:8c:c8:24:18:35: - 53:59:7b:c0:43:b4:32:e6:98:b2:a6:ef:15:05:0b:48:5f:e1: - a0:0c:97:a9:a1:77:d8:35:18:30:bc:a9:8f:d3:b7:54:c7:f1: - a9:9e:5d:e6:19:bf:f6:3c:5b:2b:d8:e4:3e:62:18:88:8b:d3: - 24:e1:40:9b:0c:e6:29:16:62:ab:ea:05:24:70:36:aa:55:93: - ef:02:81:1b:23:10:a2:04:eb:56:95:75:fc:f8:94:b1:5d:42: - c5:3f:36:44:85:5d:3a:2e:90:46:8a:a2:b9:6f:87:ae:0c:15: - 40:19:31:90:fc:3b:25:bb:ae:f1:66:13:0d:85:90:d9:49:34: - 8f:f2:5d:f9:7a:db:4d:5d:27:f6:76:9d:35:8c:06:a6:4c:a3: - b1:b2:b6:6f:1d:d7:a3:00:fd:72:eb:9e:ea:44:a1:af:21:34: - 7d:c7:42:e2:49:91:19:8b:c0:ad:ba:82:80:a8:71:70:f4:35: - 31:91:63:84:20:95:e9:60:af:64:8b:cc:ff:3d:8a:76:74:3d: - c8:55:6d:e4:8e:c3:2b:1c:e8:42:18:ae:9f:e6:6b:9c:34:06: - ec:6a:f2:c3 -----BEGIN CERTIFICATE----- -MIIEEzCCAvugAwIBAgIBADANBgkqhkiG9w0BAQUFADCBnDELMAkGA1UEBhMCTk8x -DTALBgNVBAgTBE9zbG8xEDAOBgNVBAcTB055ZGFsZW4xFjAUBgNVBAoTDVRyb2xs -dGVjaCBBU0ExFDASBgNVBAsTC0RldmVsb3BtZW50MRcwFQYDVQQDEw5mbHVrZS50 -cm9sbC5ubzElMCMGCSqGSIb3DQEJARYWYWhhbnNzZW5AdHJvbGx0ZWNoLmNvbTAe -Fw0wNzEyMDQwMTEwMzJaFw0zNTA0MjEwMTEwMzJaMGMxCzAJBgNVBAYTAk5PMQ0w -CwYDVQQIEwRPc2xvMRYwFAYDVQQKEw1Ucm9sbHRlY2ggQVNBMRQwEgYDVQQLEwtE -ZXZlbG9wbWVudDEXMBUGA1UEAxMOZmx1a2UudHJvbGwubm8wgZ8wDQYJKoZIhvcN -AQEBBQADgY0AMIGJAoGBAKfIoErEGQUbZroy4tLxHG8XguQ5LgFRkNsENDIRIcIN -b1nYU5BUP4OPqdOz1e4am4CuwyXJXqWvS2AFqqDRkQEfygSD41gcmTJFhHByWAOY -SmOLQfUISdKRAmBr5GT+3aCqdAjpNEyRXxI9N01ULK1/W5hgNgKMO/ZF8ydqm5Sd -AgMBAAGjggEaMIIBFjAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NM -IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUIYUEPSMBZuX3nxqEJIqv -Cnn05awwgbsGA1UdIwSBszCBsKGBoqSBnzCBnDELMAkGA1UEBhMCTk8xDTALBgNV -BAgTBE9zbG8xEDAOBgNVBAcTB055ZGFsZW4xFjAUBgNVBAoTDVRyb2xsdGVjaCBB -U0ExFDASBgNVBAsTC0RldmVsb3BtZW50MRcwFQYDVQQDEw5mbHVrZS50cm9sbC5u -bzElMCMGCSqGSIb3DQEJARYWYWhhbnNzZW5AdHJvbGx0ZWNoLmNvbYIJAI6otOiR -t1QuMA0GCSqGSIb3DQEBBQUAA4IBAQBtV1/RBUPwYgXsKnGl3BkI8sSmvbsl2cqJ -AQ7kzx/BjMgkGDVTWXvAQ7Qy5piypu8VBQtIX+GgDJepoXfYNRgwvKmP07dUx/Gp -nl3mGb/2PFsr2OQ+YhiIi9Mk4UCbDOYpFmKr6gUkcDaqVZPvAoEbIxCiBOtWlXX8 -+JSxXULFPzZEhV06LpBGiqK5b4euDBVAGTGQ/Dslu67xZhMNhZDZSTSP8l35ettN -XSf2dp01jAamTKOxsrZvHdejAP1y657qRKGvITR9x0LiSZEZi8CtuoKAqHFw9DUx -kWOEIJXpYK9ki8z/PYp2dD3IVW3kjsMrHOhCGK6f5mucNAbsavLD +MIIF6zCCA9OgAwIBAgIUfo9amJtJGWqWE6f+SkAO85zkGr4wDQYJKoZIhvcNAQEL +BQAwgYMxCzAJBgNVBAYTAk5PMQ0wCwYDVQQIDARPc2xvMQ0wCwYDVQQHDARPc2xv +MRcwFQYDVQQKDA5UaGUgUXQgQ29tcGFueTEMMAoGA1UECwwDUiZEMRIwEAYDVQQD +DAlIMiBUZXN0ZXIxGzAZBgkqhkiG9w0BCQEWDG1pbmltaUBxdC5pbzAgFw0yMDEw +MjYxMjAxMzFaGA8yMTIwMTAwMjEyMDEzMVowgYMxCzAJBgNVBAYTAk5PMQ0wCwYD +VQQIDARPc2xvMQ0wCwYDVQQHDARPc2xvMRcwFQYDVQQKDA5UaGUgUXQgQ29tcGFu +eTEMMAoGA1UECwwDUiZEMRIwEAYDVQQDDAlIMiBUZXN0ZXIxGzAZBgkqhkiG9w0B +CQEWDG1pbmltaUBxdC5pbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +AOiUp5+E4blouKH7q+rVNR8NoYX2XkBW+q+rpy1zu5ssRSzbqxAjDx9dkht7Qlnf +VlDT00JvpOWdeuPon5915edQRsY4Unl6mKH29ra3OtUa1/yCJXsGVJTKCj7k4Bxb +5mZzb/fTlZntMLdTIBMfUbw62FKir1WjKIcJ9fCoG8JaGeKVO4Rh5p0ezd4UUUId +r1BXl5Nqdqy2vTMsEDnjOsD3egkv8I2SKN4O6n/C3wWYpMOWYZkGoZiKz7rJs/i/ +ez7bsV7JlwdzTlhpJzkcOSVFBP6JlEOxTNNxZ1wtKy7PtZGmsSSATq2e6+bw38Ae +Op0XnzzqcGjtDDofBmT7OFzZWjS9VZS6+DOOe2QHWle1nCHcHyH4ku6IRlsr9xkR +NAIlOfnvHHxqJUenoeaZ4oQDjCBKS1KXygJO/tL7BLTQVn/xK1EmPvKNnjzWk4tR +PnibUhhs5635qpOU/YPqFBh1JjVruZbsWcDAhRcew0uxONXOa9E+4lttQ9ySYa1A +LvWqJuAX7gu2BsBMLyqfm811YnA7CIFMyO+HlqmkLFfv5L/xIRAXR7l26YGO0VwX +CGjMfz4NVPMMke4nB7qa9NkpXQBQKMms3Qzd5JW0Hy9Ruj5O8GPcFZmV0twjd1uJ +PD/cAjkWLaXjdNsJ16QWc2nghQRS6HYqKRX6j+CXOxupAgMBAAGjUzBRMB0GA1Ud +DgQWBBRSCOU58j9NJZkMamt623qyCrhN3TAfBgNVHSMEGDAWgBRSCOU58j9NJZkM +amt623qyCrhN3TAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4ICAQCq +q4jxsWeNDv5Nq14hJtF9HB+ZL64zcZtRjJP1YgNs0QppKICmjPOL2nIMGmI/jKrs +0eGAL/9XXNVHPxm1OPOncvimMMmU6emZfpMdEtTfKP43+Pg9HgKRjLoQp406vGeQ +8ki/mbBhrItVPgEm3tu2AFA02XTYi+YxCI9kRZLGkM3FbgtOuTLPl0Z9y+kiPc9F +uCSC03anBEqv+vDSI8+wODymQ/IJ3Jyz1lxIRDfp4qAekmy0jU2c91VOHHEmOmqq +kqygGFRdwbe99m9yP63r6q0b5K3X2UnJ6bns0hmTwThYwpVPXLU8jdaTddbMukN2 +/Ef96Tsw8nWOEOPMySHOTIPgwyZRp26b0kA9EmhLwOP401SxXVQCmSRmtwNagmtg +jJKmZoYBN+//D45ibK8z6Q0oOm9P+Whf/uUXehcRxBxyV3xz7k0wKGQbHj/ddwcy +IUoIN4lrAlib+lK170kTKN352PDmrpo2gmIzPEsfurKAIMSelDl6H+kih16BtZ8y +Nz6fh9Soqrg3OSAware8pxV7k51crBMoPLN78KoRV8MFCK4K7Fddq4rRISq6hiXq +r1nsjoEPuKM9huprmZVZe9t5YcDa2I+wb3IiE3uwpZbAdaLDyQ5n6F/qpsiIkZXn +gtcF7oqpG5oYrwCcZ53y/ezUgUg7PlSz2XwAGvQtgg== -----END CERTIFICATE----- diff --git a/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.key b/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.key index 9d1664d609..337ce541a6 100644 --- a/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.key +++ b/qtbase/tests/auto/network/ssl/qsslsocket/certs/fluke.key @@ -1,15 +1,52 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQCnyKBKxBkFG2a6MuLS8RxvF4LkOS4BUZDbBDQyESHCDW9Z2FOQ -VD+Dj6nTs9XuGpuArsMlyV6lr0tgBaqg0ZEBH8oEg+NYHJkyRYRwclgDmEpji0H1 -CEnSkQJga+Rk/t2gqnQI6TRMkV8SPTdNVCytf1uYYDYCjDv2RfMnapuUnQIDAQAB -AoGANFzLkanTeSGNFM0uttBipFT9F4a00dqHz6JnO7zXAT26I5r8sU1pqQBb6uLz -/+Qz5Zwk8RUAQcsMRgJetuPQUb0JZjF6Duv24hNazqXBCu7AZzUenjafwmKC/8ri -KpX3fTwqzfzi//FKGgbXQ80yykSSliDL3kn/drATxsLCgQECQQDXhEFWLJ0vVZ1s -1Ekf+3NITE+DR16X+LQ4W6vyEHAjTbaNWtcTKdAWLA2l6N4WAAPYSi6awm+zMxx4 -VomVTsjdAkEAx0z+e7natLeFcrrq8pbU+wa6SAP1VfhQWKitxL1e7u/QO90NCpxE -oQYKzMkmmpOOFjQwEMAy1dvFMbm4LHlewQJAC/ksDBaUcQHHqjktCtrUb8rVjAyW -A8lscckeB2fEYyG5J6dJVaY4ClNOOs5yMDS2Afk1F6H/xKvtQ/5CzInA/QJATDub -K+BPU8jO9q+gpuIi3VIZdupssVGmCgObVCHLakG4uO04y9IyPhV9lA9tALtoIf4c -VIvv5fWGXBrZ48kZAQJBAJmVCdzQxd9LZI5vxijUCj5EI4e+x5DRqVUvyP8KCZrC -AiNyoDP85T+hBZaSXK3aYGpVwelyj3bvo1GrTNwNWLw= ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDolKefhOG5aLih ++6vq1TUfDaGF9l5AVvqvq6ctc7ubLEUs26sQIw8fXZIbe0JZ31ZQ09NCb6TlnXrj +6J+fdeXnUEbGOFJ5epih9va2tzrVGtf8giV7BlSUygo+5OAcW+Zmc2/305WZ7TC3 +UyATH1G8OthSoq9VoyiHCfXwqBvCWhnilTuEYeadHs3eFFFCHa9QV5eTanastr0z +LBA54zrA93oJL/CNkijeDup/wt8FmKTDlmGZBqGYis+6ybP4v3s+27FeyZcHc05Y +aSc5HDklRQT+iZRDsUzTcWdcLSsuz7WRprEkgE6tnuvm8N/AHjqdF5886nBo7Qw6 +HwZk+zhc2Vo0vVWUuvgzjntkB1pXtZwh3B8h+JLuiEZbK/cZETQCJTn57xx8aiVH +p6HmmeKEA4wgSktSl8oCTv7S+wS00FZ/8StRJj7yjZ481pOLUT54m1IYbOet+aqT +lP2D6hQYdSY1a7mW7FnAwIUXHsNLsTjVzmvRPuJbbUPckmGtQC71qibgF+4LtgbA +TC8qn5vNdWJwOwiBTMjvh5appCxX7+S/8SEQF0e5dumBjtFcFwhozH8+DVTzDJHu +Jwe6mvTZKV0AUCjJrN0M3eSVtB8vUbo+TvBj3BWZldLcI3dbiTw/3AI5Fi2l43Tb +CdekFnNp4IUEUuh2KikV+o/glzsbqQIDAQABAoICAFw1q6tr5I48vY7DF+rXsuLn +5ZUWE1IQ6fzB4lr72nJv/9EEGnMgYzt9PpMUsD6vdCpBgS2C0+6RHArFzJtNA+RM +iHLIG7K7702veyr/xBx/MwiSlMeMv/XpkFxVI6E6skMGG2s3AMXxKvJTy5CpRx+I +eQFyLG+Ya1X2lgJes/q+/CpAHkOjCOpcLySQC5NZ74q734V7nSdmn+Zs3tYEh+O/ +eiuwTP/j5b38Te5vVTqDxTciJPmljmXLCwa0N100lWlbcpvw8qbqiTI2Jm3XCbUE +AzHjW9vmrF3cRS1fXxKFGShw3SRqlkbxjfeWoi8qDPUBS4m8LOr8qG9Wo5Nfon0z +zLP4bci3zHDvVcaaZrrsUBs/yZbg+Dgka1DmX7ekmeccr2yTdKDFgPupYUyxVbTl +a9ZLJysjFD7rgBv1ZclHonLp6Vbm+ZoTqvteo4ikAy6L9RtBWJ23XEK34PkP/+c5 +2vWZaOrnjSeBHbFce8cdJSxqWpP+eSCI5I9XbDrYFIsQ/gqKgtzDKy2ihJ2Y8STL +yO4hyFPFjxc+Gg4/P2PpmT5CY2ty44M0BWs+JGW96CJPrrplf2lmQUQJj5LZY66X +Z/4C9L7ZYtKZ+bs5SvU46yWugAvQZX22Xm9xLXWyVXRdx3bj+3M3fDnF9di/zdbh +CgLx7oWPNrXc7FCajnn9AoIBAQD5FMYwRpw9NWT9WDxQwx+cSI4Icbd88ByTW63S +LzeRwZA0J9/SfwO+aBRupzc9GkGXCiZcGMw3AGsCtig8yFlw8E5KnzN7KlftDMnM +9NUxxzlR8VwKyLnZfG7sDTl057ZlUujnqhmt/F8F7dIy7FVO1dE/8nngA+FYTCOG +UZdGjwyBDlDM0JJdUWGY3xslutcpCDN5mzSTKjy9drMvImAshRawxRF6WBpn7vr2 +nC6vciqfx1Mzx1vyk0Jm0ilaydDdLMADjt/iL4Nkr0BEs4k+UzQiKDwp8gu7abQ1 +eBfxd9Iar4htQa2I1Ewl6P01G/q+ZYwgHhJ9RVn4AxQXefILAoIBAQDvCouORdQX +C8wsyp7MwXlF/3NQeNN5/+B2mhbxrBOf7PmMCXLnkRWcjwJtzypWFqJ0sqai/2+0 +bqbMcjX5maT8stT2shl3zXe/Ejt2e3TBYpc1tyuses8Kb5BMU8hu6tTd3G2CMXpD +dT6DVemJZCTtwj9aBNIxSizvlgMolJnCpzhPnlfHSI6E+g3m/LTTo3HwbjMSw/Uq +irgjOpI2wSBB6LZPSgjvfcYPRyWUk16L4A5uSX0cADnovDFLa5/h0wJvN/OoCSQg +rLCXG5E18EyL5Wc58BCY1ZvxmjG3lQtgPxYu2Jwc36R/y/JKlxW5suER5ZNpbbD4 +uOyTt2VxMQ2bAoIBAQC5+MzRFqdo/AjfL5Y5JrbfVTzXCTDa09xCGd16ZU60QTWN ++4ed/r+o1sUKqUcRFB2MzEM/2DQBjQpZB/CbEWvWa1XJWXxypXbowveZU+QqOnmN +uQvj8WLyA3o+PNF9e9QvauwCrHpn8VpxbtPWuaYoKnUFreFZZQxHhPGxRBIS2JOZ +eDrT8ZaWnkCkh1AZp5smQ71LOprSlmKrg4jd1GjCVMxQR5N5KXbtyv0OTCZ/UFqK +2aRBsMPyJgkaBChkZPLRcKwc+/wlQRx1fHQb14DNTApMxoXFO7eOwqmOkpAt9iyl +SBIwoS0UUI5ab88+bBmXNvKcuFdNuQ4nowTJUn9pAoIBADMNkILBXSvS5DeIyuO2 +Sp1tkoZUV+5NfPY3sMDK3KIibaW/+t+EOBZo4L7tKQCb8vRzl21mmsfxfgRaPDbj +3r3tv9g0b4YLxxBy52pFscj/soXRai17SS7UZwA2QK+XzgDYbDcLNC6mIsTQG4Gx +dsWk3/zs3KuUSQaehmwrWK+fIUK38c1pLK8v7LoxrLkqxlHwZ04RthHw8KTthH7X +Pnl1J0LF8CSeOyfWLSuPUfkT0GEzptnNHpEbaHfQM6R6eaGhVJPF6AZme4y6YYgg +m2ihhSt1n0XVEWpHYWjxFy3mK2mz75unFC4LM+NEY2p2zuUQoCw7NjnY3QYrfCnx +rRMCggEAXeXsMSLFjjyuoL7iKbAxo52HD/P0fBoy58LyRcwfNVr0lvYan4pYEx+o +KijIh9K16PqXZXKMA9v003B+ulmF8bJ7SddCZ5NGvnFhUTDe4DdTKgp2RuwQ3Bsc +3skPIDbhVETyOLCtys34USHrq8U/0DlGY3eLRfxw9GnbKxSBGa/KEu/qQLPNUo50 +7xHZDg7GKeC3kqNJeqKM9rkp0VzIGkEnaD9127LeNDmERDfftxJzFoC/THvUBLfU +6Sus2ZYwRE8VFvKC30Q45t/c54X3IuhYvAuiCuTmyfE4ruyzyOwKzhUkeeLq1APX +g0veFbyfzlJ0q8qzD/iffqqIa2ZSmQ== +-----END PRIVATE KEY----- diff --git a/qtbase/tests/auto/other/lancelot/scripts/tinydashes.qps b/qtbase/tests/auto/other/lancelot/scripts/tinydashes.qps new file mode 100644 index 0000000000..d41ced7f5f --- /dev/null +++ b/qtbase/tests/auto/other/lancelot/scripts/tinydashes.qps @@ -0,0 +1,34 @@ +# Version: 1 +# CheckVsReference: 5% + +path_addEllipse mypath 20.0 20.0 200.0 200.0 + +save +setPen blue 20 SolidLine FlatCap +pen_setCosmetic true +pen_setDashPattern [ 0.0004 0.0004 ] +setBrush yellow + +drawPath mypath +translate 300 0 +setRenderHint Antialiasing true +drawPath mypath +restore + +path_addEllipse bigpath 200000.0 200000.0 2000000.0 2000000.0 + +setPen blue 20 DotLine FlatCap +setBrush yellow + +save +translate 0 300 +scale 0.0001 0.00011 +drawPath bigpath +restore + +save +translate 300 300 +setRenderHint Antialiasing true +scale 0.0001 0.00011 +drawPath bigpath +restore diff --git a/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp index 76df61c892..6d6d65b791 100644 --- a/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp +++ b/qtbase/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the test suite of the Qt Toolkit. @@ -68,6 +68,8 @@ private slots: void query_exec(); void execErrorRecovery_data() { generic_data(); } void execErrorRecovery(); + void prematureExec_data() { generic_data(); } + void prematureExec(); void first_data() { generic_data(); } void first(); void next_data() { generic_data(); } @@ -2770,6 +2772,35 @@ void tst_QSqlQuery::execErrorRecovery() QVERIFY_SQL( q, exec() ); } +void tst_QSqlQuery::prematureExec() +{ + QFETCH(QString, dbName); + // We only want the engine name, for addDatabase(): + int cut = dbName.indexOf(QChar('@')); + if (cut < 0) + QSKIP("Failed to parse database type out of name"); + dbName.truncate(cut); + cut = dbName.indexOf(QChar('_')); + if (cut >= 0) + dbName = dbName.mid(cut + 1); + + auto db = QSqlDatabase::addDatabase(dbName); + QSqlQuery q(db); + + QTest::ignoreMessage(QtWarningMsg, + "QSqlDatabasePrivate::removeDatabase: connection " + "'qt_sql_default_connection' is still in use, all " + "queries will cease to work."); + QTest::ignoreMessage(QtWarningMsg, + "QSqlDatabasePrivate::addDatabase: duplicate connection name " + "'qt_sql_default_connection', old connection removed."); + auto otherDb = QSqlDatabase::addDatabase(dbName); + + QTest::ignoreMessage(QtWarningMsg, "QSqlQuery::exec: called before driver has been set up"); + // QTBUG-100037: shouldn't crash ! + QVERIFY(!q.exec("select stuff from TheVoid")); +} + void tst_QSqlQuery::lastInsertId() { QFETCH( QString, dbName ); diff --git a/qtbase/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp b/qtbase/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp index 08419b335e..d2050a61aa 100644 --- a/qtbase/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp +++ b/qtbase/tests/auto/testlib/qabstractitemmodeltester/tst_qabstractitemmodeltester.cpp @@ -105,13 +105,20 @@ void tst_QAbstractItemModelTester::standardItemModel() model.insertColumns(0, 5, model.index(1, 3)); } -void tst_QAbstractItemModelTester::standardItemModelZeroColumns() // QTBUG-92220 +void tst_QAbstractItemModelTester::standardItemModelZeroColumns() { QStandardItemModel model; - QAbstractItemModelTester t1(&model); + // QTBUG-92220 model.insertRows(0, 5); model.removeRows(0, 5); + // QTBUG-92886 + model.insertRows(0, 5); + model.removeRows(1, 2); + + const QModelIndex parentIndex = model.index(0, 0); + model.insertRows(0, 5, parentIndex); + model.removeRows(1, 2, parentIndex); } void tst_QAbstractItemModelTester::testInsertThroughProxy() diff --git a/qtbase/tests/auto/tools/moc/allmocs_baseline_in.json b/qtbase/tests/auto/tools/moc/allmocs_baseline_in.json index 6d17bebb5f..7fa93b9c47 100644 --- a/qtbase/tests/auto/tools/moc/allmocs_baseline_in.json +++ b/qtbase/tests/auto/tools/moc/allmocs_baseline_in.json @@ -668,50 +668,6 @@ "inputFile": "task192552.h", "outputRevision": 67 }, - { - "classes": [ - { - "className": "InlineSlotsWithThrowDeclaration", - "object": true, - "qualifiedClassName": "InlineSlotsWithThrowDeclaration", - "slots": [ - { - "access": "public", - "name": "a", - "returnType": "void" - }, - { - "access": "public", - "name": "b", - "returnType": "void" - }, - { - "access": "public", - "name": "c", - "returnType": "void" - }, - { - "access": "public", - "name": "d", - "returnType": "void" - }, - { - "access": "public", - "name": "e", - "returnType": "void" - } - ], - "superClasses": [ - { - "access": "public", - "name": "QObject" - } - ] - } - ], - "inputFile": "task189996.h", - "outputRevision": 67 - }, { "classes": [ { diff --git a/qtbase/tests/auto/tools/moc/moc.pro b/qtbase/tests/auto/tools/moc/moc.pro index cafc7bc184..c56179f0ce 100644 --- a/qtbase/tests/auto/tools/moc/moc.pro +++ b/qtbase/tests/auto/tools/moc/moc.pro @@ -15,7 +15,7 @@ cross_compile: DEFINES += MOC_CROSS_COMPILED HEADERS += using-namespaces.h no-keywords.h task87883.h c-comments.h backslash-newlines.h oldstyle-casts.h \ slots-with-void-template.h qinvokable.h namespaced-flags.h trigraphs.h \ escapes-in-string-literals.h cstyle-enums.h qprivateslots.h gadgetwithnoenums.h \ - dir-in-include-path.h single_function_keyword.h task192552.h task189996.h \ + dir-in-include-path.h single_function_keyword.h task192552.h \ task234909.h task240368.h pure-virtual-signals.h cxx11-enums.h \ cxx11-final-classes.h \ cxx11-explicit-override-control.h \ diff --git a/qtbase/tests/auto/tools/moc/task189996.h b/qtbase/tests/auto/tools/moc/task189996.h deleted file mode 100644 index f94a051b3a..0000000000 --- a/qtbase/tests/auto/tools/moc/task189996.h +++ /dev/null @@ -1,47 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -// inline functions can have throw declarations - -#ifndef TASK189996_H -#define TASK189996_H - -#include - -class InlineSlotsWithThrowDeclaration : public QObject -{ - Q_OBJECT - -public slots: - void a() throw() { } - void b() const throw() { } - void c() throw(); - void d() throw(int) { } - void e() const throw(int,double) { } -}; - -#endif diff --git a/qtbase/tests/auto/tools/moc/tst_moc.cpp b/qtbase/tests/auto/tools/moc/tst_moc.cpp index 0f801fe902..a1ad07185f 100644 --- a/qtbase/tests/auto/tools/moc/tst_moc.cpp +++ b/qtbase/tests/auto/tools/moc/tst_moc.cpp @@ -630,7 +630,6 @@ public: private slots: void initTestCase(); - void slotWithException() throw(MyStruct); void dontStripNamespaces(); void oldStyleCasts(); void warnOnExtraSignalSlotQualifiaction(); @@ -672,7 +671,6 @@ private slots: void templateGtGt(); void qprivateslots(); void qprivateproperties(); - void inlineSlotsWithThrowDeclaration(); void warnOnPropertyWithoutREAD(); void constructors(); void typenameWithUnsigned(); @@ -782,12 +780,6 @@ void tst_Moc::initTestCase() #endif } -void tst_Moc::slotWithException() throw(MyStruct) -{ - // be happy - QVERIFY(true); -} - void tst_Moc::dontStripNamespaces() { Sender sender; @@ -822,7 +814,7 @@ void tst_Moc::oldStyleCasts() QStringList args; args << "-c" << "-x" << "c++" << "-Wold-style-cast" << "-I" << "." - << "-I" << qtIncludePath << "-o" << "/dev/null" << "-fPIC" << "-std=c++11" << "-"; + << "-I" << qtIncludePath << "-o" << "/dev/null" << "-fPIC" << "-std=c++1z" << "-"; proc.start("gcc", args); QVERIFY(proc.waitForStarted()); proc.write(mocOut); @@ -892,7 +884,7 @@ void tst_Moc::inputFileNameWithDotsButNoExtension() QStringList args; args << "-c" << "-x" << "c++" << "-I" << ".." - << "-I" << qtIncludePath << "-o" << "/dev/null" << "-fPIC" << "-std=c++11" << "-"; + << "-I" << qtIncludePath << "-o" << "/dev/null" << "-fPIC" << "-std=c++1z" << "-"; proc.start("gcc", args); QVERIFY(proc.waitForStarted()); proc.write(mocOut); @@ -1172,7 +1164,7 @@ void tst_Moc::ignoreOptionClashes() QStringList gccArgs; gccArgs << "-c" << "-x" << "c++" << "-I" << ".." << "-I" << qtIncludePath << "-I" << includeDir << "-o" << "/dev/null" - << "-fPIC" << "-std=c++11" << "-"; + << "-fPIC" << "-std=c++1z" << "-"; proc.start("gcc", gccArgs); QVERIFY(proc.waitForStarted()); proc.write(mocOut); @@ -1591,21 +1583,6 @@ void tst_Moc::qprivateproperties() } -#include "task189996.h" - -void InlineSlotsWithThrowDeclaration::c() throw() {} - -void tst_Moc::inlineSlotsWithThrowDeclaration() -{ - InlineSlotsWithThrowDeclaration tst; - const QMetaObject *mobj = tst.metaObject(); - QVERIFY(mobj->indexOfSlot("a()") != -1); - QVERIFY(mobj->indexOfSlot("b()") != -1); - QVERIFY(mobj->indexOfSlot("c()") != -1); - QVERIFY(mobj->indexOfSlot("d()") != -1); - QVERIFY(mobj->indexOfSlot("e()") != -1); -} - void tst_Moc::warnOnPropertyWithoutREAD() { #ifdef MOC_CROSS_COMPILED @@ -1867,7 +1844,7 @@ void tst_Moc::notifyError() QStringList args; args << "-c" << "-x" << "c++" << "-I" << "." - << "-I" << qtIncludePath << "-o" << "/dev/null" << "-fPIC" << "-std=c++11" << "-"; + << "-I" << qtIncludePath << "-o" << "/dev/null" << "-fPIC" << "-std=c++1z" << "-"; proc.start("gcc", args); QVERIFY(proc.waitForStarted()); proc.write(mocOut); diff --git a/qtbase/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp b/qtbase/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp index 761357b252..06bb706074 100644 --- a/qtbase/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp +++ b/qtbase/tests/auto/widgets/itemviews/qtableview/tst_qtableview.cpp @@ -397,6 +397,7 @@ private slots: void checkHeaderMinSize(); void resizeToContents(); + void resizeToContentsSpans(); void tabFocus(); void bigModel(); @@ -3721,6 +3722,70 @@ void tst_QTableView::resizeToContents() } + +class SpanModel : public QAbstractTableModel +{ +public: + SpanModel(bool sectionsMoved) + : _sectionsMoved(sectionsMoved) + {} + int columnCount(const QModelIndex & = {}) const override { return 2; } + int rowCount(const QModelIndex & = {}) const override { return 1; } + QVariant data(const QModelIndex &idx, int role = Qt::DisplayRole) const override + { + if (role != Qt::DisplayRole) + return QVariant(); + const int col = _sectionsMoved ? 1 - idx.column() : idx.column(); + if (col == 0) + return "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."; + return QVariant(); + } +private: + bool _sectionsMoved; +}; + + +void tst_QTableView::resizeToContentsSpans() +{ + SpanModel model1(false); + SpanModel model2(true); + QTableView view1, view2, view3; + view1.setModel(&model1); + view2.setModel(&model2); + view2.horizontalHeader()->moveSection(0, 1); + view3.setModel(&model1); + + view1.setSpan(0, 0, 1, 2); + view2.setSpan(0, 1, 1, 2); + view1.show(); + view2.show(); + view3.show(); + QVERIFY(QTest::qWaitForWindowExposed(&view1)); + QVERIFY(QTest::qWaitForWindowExposed(&view2)); + QVERIFY(QTest::qWaitForWindowExposed(&view3)); + view1.setColumnWidth(0, 100); + view1.setColumnWidth(1, 100); + view2.setColumnWidth(0, 100); + view2.setColumnWidth(1, 100); + view3.setColumnWidth(0, 200); + + view1.resizeRowToContents(0); + view2.resizeRowToContents(0); + view3.resizeRowToContents(0); + QCOMPARE(view1.rowHeight(0), view3.rowHeight(0)); + QCOMPARE(view2.rowHeight(0), view3.rowHeight(0)); + + view3.resizeColumnToContents(0); + view3.resizeRowToContents(0); + // height should be only 1 text line for easy testing + view1.setRowHeight(0, view3.verticalHeader()->sectionSize(0)); + view2.setRowHeight(0, view3.verticalHeader()->sectionSize(0)); + view1.resizeColumnToContents(0); + view2.resizeColumnToContents(1); + QCOMPARE(view1.columnWidth(0), view3.columnWidth(0) - view1.columnWidth(1)); + QCOMPARE(view2.columnWidth(0), view3.columnWidth(0) - view2.columnWidth(1)); +} + QT_BEGIN_NAMESPACE extern bool Q_WIDGETS_EXPORT qt_tab_all_widgets(); // qapplication.cpp QT_END_NAMESPACE diff --git a/qtbase/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp b/qtbase/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp index 7da56ab797..b129868bbd 100644 --- a/qtbase/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp +++ b/qtbase/tests/auto/widgets/itemviews/qtreewidget/tst_qtreewidget.cpp @@ -151,6 +151,7 @@ private slots: void getMimeDataWithInvalidItem(); void testVisualItemRect(); void reparentHiddenItem(); + void persistentChildIndex(); #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) void clearItemData(); #endif @@ -3597,6 +3598,21 @@ void tst_QTreeWidget::reparentHiddenItem() QVERIFY(grandChild->isHidden()); } +void tst_QTreeWidget::persistentChildIndex() // QTBUG-90030 +{ + QTreeWidget tree; + QTreeWidgetItem *toplevel = new QTreeWidgetItem(QStringList{QStringLiteral("toplevel")}); + tree.addTopLevelItem(toplevel); + QModelIndex firstIndex = tree.model()->index(0, 0); + QTreeWidgetItem *child1 = new QTreeWidgetItem(QStringList{QStringLiteral("child1")}); + QTreeWidgetItem *child2 = new QTreeWidgetItem(QStringList{QStringLiteral("child2")}); + toplevel->addChildren({child1, child2}); + QPersistentModelIndex persistentIdx = tree.model()->index(1, 0, firstIndex); + QCOMPARE(persistentIdx.data().toString(), QStringLiteral("child2")); + tree.model()->removeRows(0, 1, firstIndex); + QCOMPARE(persistentIdx.data().toString(), QStringLiteral("child2")); +} + #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) void tst_QTreeWidget::clearItemData() { diff --git a/qtbase/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp b/qtbase/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp index a3b8ef78d8..4955cebd5d 100644 --- a/qtbase/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp +++ b/qtbase/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp @@ -1498,7 +1498,7 @@ void tst_QApplication::desktopSettingsAware() environment += QLatin1String("QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM=1"); testProcess.setEnvironment(environment); #endif - testProcess.start("desktopsettingsaware_helper"); + testProcess.start("./desktopsettingsaware_helper"); QVERIFY2(testProcess.waitForStarted(), qPrintable(QString::fromLatin1("Cannot start 'desktopsettingsaware_helper': %1").arg(testProcess.errorString()))); QVERIFY(testProcess.waitForFinished(10000)); @@ -2452,7 +2452,7 @@ void tst_QApplication::qtbug_12673() #if QT_CONFIG(process) QProcess testProcess; QStringList arguments; - testProcess.start("modal_helper", arguments); + testProcess.start("./modal_helper", arguments); QVERIFY2(testProcess.waitForStarted(), qPrintable(QString::fromLatin1("Cannot start 'modal_helper': %1").arg(testProcess.errorString()))); QVERIFY(testProcess.waitForFinished(20000)); diff --git a/qtbase/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp b/qtbase/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp index eb108a40de..dca5528c1b 100644 --- a/qtbase/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp +++ b/qtbase/tests/auto/widgets/widgets/qabstractbutton/tst_qabstractbutton.cpp @@ -41,6 +41,7 @@ #include #include +#include class tst_QAbstractButton : public QObject { @@ -76,6 +77,8 @@ private slots: void keyNavigation(); #endif + void buttonPressKeys(); + protected slots: void onClicked(); void onToggled( bool on ); @@ -269,7 +272,13 @@ void tst_QAbstractButton::setAutoRepeat() QCOMPARE(press_count, click_count); QVERIFY(click_count > 1); break; - case 4: + case 4: { + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(Qt::Key_Enter)) { + QSKIP("platform theme has Key_Enter in ButtonPressKeys"); + } // check that pressing ENTER has no effect when autorepeat is false testWidget->setDown( false ); testWidget->setAutoRepeat( false ); @@ -286,7 +295,14 @@ void tst_QAbstractButton::setAutoRepeat() QVERIFY( click_count == 0 ); break; - case 5: + } + case 5: { + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(Qt::Key_Enter)) { + QSKIP("platform theme has Key_Enter in ButtonPressKeys"); + } // check that pressing ENTER has no effect when autorepeat is true testWidget->setDown( false ); testWidget->setAutoRepeat( true ); @@ -304,6 +320,7 @@ void tst_QAbstractButton::setAutoRepeat() QVERIFY( click_count == 0 ); break; + } case 6: // verify autorepeat is off by default. MyButton tmp( 0); @@ -651,5 +668,16 @@ void tst_QAbstractButton::keyNavigation() } #endif +void tst_QAbstractButton::buttonPressKeys() +{ + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + for (int i = 0; i < buttonPressKeys.length(); ++i) { + QTest::keyClick(testWidget, buttonPressKeys[i]); + QCOMPARE(click_count, i + 1); + } +} + QTEST_MAIN(tst_QAbstractButton) #include "tst_qabstractbutton.moc" diff --git a/qtbase/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/qtbase/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp index d8bb34933a..3a7fad08a6 100644 --- a/qtbase/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp +++ b/qtbase/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp @@ -167,6 +167,7 @@ private slots: void task_QTBUG_52027_mapCompleterIndex(); void checkMenuItemPosWhenStyleSheetIsSet(); void checkEmbeddedLineEditWhenStyleSheetIsSet(); + void buttonPressKeys(); private: PlatformInputContext m_platformInputContext; @@ -1681,6 +1682,16 @@ void tst_QComboBox::setModel() QCOMPARE(box.rootModelIndex(), rootModelIndex); box.setModel(box.model()); QCOMPARE(box.rootModelIndex(), rootModelIndex); + + // check that setting the same model as the completer's doesn't crash + QCompleter *completer = new QCompleter(&box); + box.setEditable(true); + box.setCompleter(completer); + auto *listModel = new QStringListModel({ "one", "two" }, completer); + completer->setModel(listModel); + QCOMPARE(listModel->rowCount(), 2); // make sure it wasn't deleted + box.setModel(listModel); + QCOMPARE(listModel->rowCount(), 2); // make sure it wasn't deleted } void tst_QComboBox::setCustomModelAndView() @@ -3586,5 +3597,24 @@ void tst_QComboBox::checkEmbeddedLineEditWhenStyleSheetIsSet() qApp->setStyleSheet(oldCss); } +void tst_QComboBox::buttonPressKeys() +{ + QComboBox comboBox; + comboBox.setEditable(false); + comboBox.addItem(QString::number(1)); + comboBox.addItem(QString::number(2)); + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + for (int i = 0; i < buttonPressKeys.length(); ++i) { + QTest::keyClick(&comboBox, buttonPressKeys[i]); + // On some platforms, a window will not be immediately visible, + // but take some event-loop iterations to complete. + // Using QTRY_VERIFY to deal with that. + QTRY_VERIFY(comboBox.view()->isVisible()); + comboBox.hidePopup(); + } +} + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" diff --git a/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/qcommandlinkbutton.pro b/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/qcommandlinkbutton.pro index be3cfcd104..c228fdfcca 100644 --- a/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/qcommandlinkbutton.pro +++ b/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/qcommandlinkbutton.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qcommandlinkbutton -QT += widgets testlib +QT += widgets testlib gui-private SOURCES += tst_qcommandlinkbutton.cpp diff --git a/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp b/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp index 0044d33c66..4cf06296e4 100644 --- a/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp +++ b/qtbase/tests/auto/widgets/widgets/qcommandlinkbutton/tst_qcommandlinkbutton.cpp @@ -40,6 +40,9 @@ #include #include +#include +#include + class tst_QCommandLinkButton : public QObject { Q_OBJECT @@ -223,6 +226,13 @@ void tst_QCommandLinkButton::setAutoRepeat() // check that pressing ENTER has no effect resetCounters(); testWidget->setDown( false ); + // Skip after reset if ButtonPressKeys has Key_Enter + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(Qt::Key_Enter)) { + return; + } testWidget->setAutoRepeat( false ); QTest::keyPress( testWidget, Qt::Key_Enter ); @@ -255,6 +265,14 @@ void tst_QCommandLinkButton::pressed() QCOMPARE( press_count, (uint)1 ); QCOMPARE( release_count, (uint)1 ); + // Skip if ButtonPressKeys has Key_Enter + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(Qt::Key_Enter)) { + return; + } + QTest::keyPress( testWidget,Qt::Key_Enter ); QCOMPARE( press_count, (uint)1 ); QCOMPARE( release_count, (uint)1 ); diff --git a/qtbase/tests/auto/widgets/widgets/qgroupbox/qgroupbox.pro b/qtbase/tests/auto/widgets/widgets/qgroupbox/qgroupbox.pro index 4a5e76ff65..a235fa1fac 100644 --- a/qtbase/tests/auto/widgets/widgets/qgroupbox/qgroupbox.pro +++ b/qtbase/tests/auto/widgets/widgets/qgroupbox/qgroupbox.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qgroupbox -QT += widgets testlib +QT += widgets testlib gui-private SOURCES += tst_qgroupbox.cpp diff --git a/qtbase/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp b/qtbase/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp index 4fb5d262ca..d8d7562b73 100644 --- a/qtbase/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp +++ b/qtbase/tests/auto/widgets/widgets/qgroupbox/tst_qgroupbox.cpp @@ -35,6 +35,9 @@ #include #include +#include +#include + #include "qgroupbox.h" class tst_QGroupBox : public QObject @@ -69,6 +72,7 @@ private slots: void propagateFocus(); void task_QTBUG_19170_ignoreMouseReleaseEvent(); void task_QTBUG_15519_propagateMouseEvents(); + void buttonPressKeys(); private: bool checked; @@ -610,6 +614,20 @@ void tst_QGroupBox::task_QTBUG_15519_propagateMouseEvents() QCOMPARE(parent.mouseMoved, true); } +void tst_QGroupBox::buttonPressKeys() +{ + QGroupBox groupBox; + groupBox.setCheckable(true); + QSignalSpy clickedSpy(&groupBox, &QGroupBox::clicked); + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + for (int i = 0; i < buttonPressKeys.length(); ++i) { + QTest::keyClick(&groupBox, buttonPressKeys[i]); + QCOMPARE(clickedSpy.length(), i + 1); + } +} + void tst_QGroupBox::sendMouseMoveEvent(QWidget *widget, const QPoint &localPos) { // Send a MouseMove event without actually moving the pointer diff --git a/qtbase/tests/auto/widgets/widgets/qpushbutton/qpushbutton.pro b/qtbase/tests/auto/widgets/widgets/qpushbutton/qpushbutton.pro index 353ad06ca2..e55f6148f2 100644 --- a/qtbase/tests/auto/widgets/widgets/qpushbutton/qpushbutton.pro +++ b/qtbase/tests/auto/widgets/widgets/qpushbutton/qpushbutton.pro @@ -1,6 +1,6 @@ CONFIG += testcase TARGET = tst_qpushbutton -QT += widgets testlib +QT += widgets testlib gui-private SOURCES += tst_qpushbutton.cpp diff --git a/qtbase/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp b/qtbase/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp index e818514a79..4043e9326a 100644 --- a/qtbase/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp +++ b/qtbase/tests/auto/widgets/widgets/qpushbutton/tst_qpushbutton.cpp @@ -41,6 +41,9 @@ #include #include +#include +#include + class tst_QPushButton : public QObject { Q_OBJECT @@ -212,6 +215,13 @@ void tst_QPushButton::autoRepeat() // check that pressing ENTER has no effect resetCounters(); testWidget->setDown( false ); + // Skip after reset if ButtonPressKeys has Key_Enter + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(Qt::Key_Enter)) { + return; + } testWidget->setAutoRepeat( false ); QTest::keyPress( testWidget, Qt::Key_Enter ); @@ -247,6 +257,14 @@ void tst_QPushButton::pressed() QCOMPARE( press_count, (uint)1 ); QCOMPARE( release_count, (uint)1 ); + // Skip if ButtonPressKeys has Key_Enter + const auto buttonPressKeys = QGuiApplicationPrivate::platformTheme() + ->themeHint(QPlatformTheme::ButtonPressKeys) + .value>(); + if (buttonPressKeys.contains(Qt::Key_Enter)) { + return; + } + QTest::keyPress( testWidget,Qt::Key_Enter ); QCOMPARE( press_count, (uint)1 ); QCOMPARE( release_count, (uint)1 ); diff --git a/qtbase/tests/manual/rhi/cubemap_render/buildshader.bat b/qtbase/tests/manual/rhi/cubemap_render/buildshader.bat old mode 100755 new mode 100644 Submodule qtconnectivity 83ca3a24..25720ab6: diff --git a/qtconnectivity/src/bluetooth/bluez/hcimanager.cpp b/qtconnectivity/src/bluetooth/bluez/hcimanager.cpp index e2635fae..a8b8e3b9 100644 --- a/qtconnectivity/src/bluetooth/bluez/hcimanager.cpp +++ b/qtconnectivity/src/bluetooth/bluez/hcimanager.cpp @@ -563,9 +563,11 @@ void HciManager::handleHciAclPacket(const quint8 *data, int size) void HciManager::handleLeMetaEvent(const quint8 *data) { - // Spec v4.2, Vol 2, part E, 7.7.65ff + // Spec v5.3, Vol 4, part E, 7.7.65.* switch (*data) { - case 0x1: { + case 0x1: // HCI_LE_Connection_Complete + case 0xA: // HCI_LE_Enhanced_Connection_Complete + { const quint16 handle = bt_get_le16(data + 2); emit connectionComplete(handle); break; diff --git a/qtconnectivity/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp b/qtconnectivity/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp index 6a93143b..4a18cfc7 100644 --- a/qtconnectivity/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp +++ b/qtconnectivity/src/bluetooth/qbluetoothservicediscoveryagent_bluez.cpp @@ -320,7 +320,10 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_finishSdpScan(QBluetoothServiceD for (const QBluetoothUuid &id : serviceClassUuids) { if (id.minimumSize() == 16) { serviceInfo.setServiceUuid(id); - serviceInfo.setServiceName(QBluetoothServiceDiscoveryAgent::tr("Custom Service")); + if (serviceInfo.serviceName().isEmpty()) { + serviceInfo.setServiceName( + QBluetoothServiceDiscoveryAgent::tr("Custom Service")); + } QBluetoothServiceInfo::Sequence modSeq = serviceInfo.attribute(QBluetoothServiceInfo::ServiceClassIds).value(); modSeq.removeOne(QVariant::fromValue(id)); @@ -334,8 +337,10 @@ void QBluetoothServiceDiscoveryAgentPrivate::_q_finishSdpScan(QBluetoothServiceD qCDebug(QT_BT_BLUEZ) << "Discovered services" << discoveredDevices.at(0).address().toString() << serviceInfo.serviceName() << serviceInfo.serviceUuid() << ">>>" << serviceInfo.serviceClassUuids(); - - emit q->serviceDiscovered(serviceInfo); + // Use queued connection to allow us finish the service looping; the application + // might call stop() when it has detected the service-of-interest. + QMetaObject::invokeMethod(q, "serviceDiscovered", Qt::QueuedConnection, + Q_ARG(QBluetoothServiceInfo, serviceInfo)); } } } diff --git a/qtconnectivity/src/bluetooth/qbluetoothsocket_bluezdbus.cpp b/qtconnectivity/src/bluetooth/qbluetoothsocket_bluezdbus.cpp index 084aa958..d6aa17a7 100644 --- a/qtconnectivity/src/bluetooth/qbluetoothsocket_bluezdbus.cpp +++ b/qtconnectivity/src/bluetooth/qbluetoothsocket_bluezdbus.cpp @@ -284,6 +284,10 @@ void QBluetoothSocketPrivateBluezDBus::connectToService( return; } + if (service.socketProtocol() != QBluetoothServiceInfo::Protocol::UnknownProtocol) + socketType = service.socketProtocol(); + qCDebug(QT_BT_BLUEZ) << "Socket protocol used:" << socketType; + connectToService(service.device().address(), targetService, openMode); } diff --git a/qtconnectivity/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp b/qtconnectivity/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp index 05bc1a0f..a7b5ef1f 100644 --- a/qtconnectivity/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp +++ b/qtconnectivity/tests/auto/qbluetoothsocket/tst_qbluetoothsocket.cpp @@ -142,7 +142,7 @@ void tst_QBluetoothSocket::initTestCase() qDebug() << "Starting discovery"; sda->setUuidFilter(QBluetoothUuid(QString(TEST_SERVICE_UUID))); - sda->start(QBluetoothServiceDiscoveryAgent::MinimalDiscovery); + sda->start(QBluetoothServiceDiscoveryAgent::FullDiscovery); for (int connectTime = MaxConnectTime; !done_discovery && connectTime > 0; connectTime -= 1000) QTest::qWait(1000); Submodule qtdeclarative 04ea6df1..51efb2ed: diff --git a/qtdeclarative/src/3rdparty/masm/yarr/Yarr.h b/qtdeclarative/src/3rdparty/masm/yarr/Yarr.h index ccf78f9880..2955ea7e72 100644 --- a/qtdeclarative/src/3rdparty/masm/yarr/Yarr.h +++ b/qtdeclarative/src/3rdparty/masm/yarr/Yarr.h @@ -28,6 +28,7 @@ #pragma once #include +#include #include "YarrErrorCode.h" namespace JSC { namespace Yarr { diff --git a/qtdeclarative/src/qml/common/qqmljsfixedpoolarray_p.h b/qtdeclarative/src/qml/common/qqmljsfixedpoolarray_p.h index b65b994d6c..15a8cd6878 100644 --- a/qtdeclarative/src/qml/common/qqmljsfixedpoolarray_p.h +++ b/qtdeclarative/src/qml/common/qqmljsfixedpoolarray_p.h @@ -86,7 +86,7 @@ public: if (QTypeInfo::isComplex) { for (int i = 0; i < count; ++i) new (data + i) T(vector.at(i)); - } else { + } else if (count) { memcpy(data, static_cast(vector.constData()), count * sizeof(T)); } } diff --git a/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp b/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp index 9899c9274e..272b85069f 100644 --- a/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp +++ b/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp @@ -1160,8 +1160,7 @@ void Heap::QObjectWrapper::markObjects(Heap::Base *that, QV4::MarkStack *markSta void QObjectWrapper::destroyObject(bool lastCall) { Heap::QObjectWrapper *h = d(); - if (!h->internalClass) - return; // destroyObject already got called + Q_ASSERT(h->internalClass); if (h->object()) { QQmlData *ddata = QQmlData::get(h->object(), false); @@ -1191,7 +1190,7 @@ void QObjectWrapper::destroyObject(bool lastCall) } } - h->~Data(); + h->destroy(); } diff --git a/qtdeclarative/src/qml/memory/qv4mm.cpp b/qtdeclarative/src/qml/memory/qv4mm.cpp index 06caf04e5a..da149a67c4 100644 --- a/qtdeclarative/src/qml/memory/qv4mm.cpp +++ b/qtdeclarative/src/qml/memory/qv4mm.cpp @@ -981,7 +981,7 @@ void MemoryManager::sweep(bool lastSweep, ClassDestroyStatsCallback classCountPt if (MultiplyWrappedQObjectMap *multiplyWrappedQObjects = engine->m_multiplyWrappedQObjects) { for (MultiplyWrappedQObjectMap::Iterator it = multiplyWrappedQObjects->begin(); it != multiplyWrappedQObjects->end();) { - if (!it.value().isNullOrUndefined()) + if (it.value().isNullOrUndefined()) it = multiplyWrappedQObjects->erase(it); else ++it; diff --git a/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h b/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h index a7e37d1964..01b2f58f16 100644 --- a/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h +++ b/qtdeclarative/src/qmldebug/qqmlprofilerevent_p.h @@ -48,6 +48,7 @@ #include #include +#include #include // diff --git a/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp b/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp index 26ded63c41..53e511303e 100644 --- a/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp +++ b/qtdeclarative/src/qmlmodels/qqmldelegatemodel.cpp @@ -389,6 +389,12 @@ void QQmlDelegateModelPrivate::connectToAbstractItemModel() q, QQmlDelegateModel, SLOT(_q_rowsRemoved(QModelIndex,int,int))); qmlobject_connect(aim, QAbstractItemModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), q, QQmlDelegateModel, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + qmlobject_connect(aim, QAbstractItemModel, SIGNAL(columnsInserted(QModelIndex,int,int)), + q, QQmlDelegateModel, SLOT(_q_columnsInserted(QModelIndex,int,int))); + qmlobject_connect(aim, QAbstractItemModel, SIGNAL(columnsRemoved(QModelIndex,int,int)), + q, QQmlDelegateModel, SLOT(_q_columnsRemoved(QModelIndex,int,int))); + qmlobject_connect(aim, QAbstractItemModel, SIGNAL(columnsMoved(QModelIndex,int,int,QModelIndex,int)), + q, QQmlDelegateModel, SLOT(_q_columnsMoved(QModelIndex,int,int,QModelIndex,int))); qmlobject_connect(aim, QAbstractItemModel, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector)), q, QQmlDelegateModel, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector))); qmlobject_connect(aim, QAbstractItemModel, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), @@ -413,6 +419,12 @@ void QQmlDelegateModelPrivate::disconnectFromAbstractItemModel() q, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); QObject::disconnect(aim, SIGNAL(rowsRemoved(QModelIndex,int,int)), q, SLOT(_q_rowsRemoved(QModelIndex,int,int))); + QObject::disconnect(aim, SIGNAL(columnsInserted(QModelIndex,int,int)), q, + SLOT(_q_columnsInserted(QModelIndex,int,int))); + QObject::disconnect(aim, SIGNAL(columnsRemoved(QModelIndex,int,int)), q, + SLOT(_q_columnsRemoved(QModelIndex,int,int))); + QObject::disconnect(aim, SIGNAL(columnsMoved(QModelIndex,int,int,QModelIndex,int)), q, + SLOT(_q_columnsMoved(QModelIndex,int,int,QModelIndex,int))); QObject::disconnect(aim, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector)), q, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector))); QObject::disconnect(aim, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), @@ -1958,6 +1970,38 @@ void QQmlDelegateModel::_q_rowsMoved( } } +void QQmlDelegateModel::_q_columnsInserted(const QModelIndex &parent, int begin, int end) +{ + Q_D(QQmlDelegateModel); + Q_UNUSED(end); + if (parent == d->m_adaptorModel.rootIndex && begin == 0) { + // mark all items as changed + _q_itemsChanged(0, d->m_count, QVector()); + } +} + +void QQmlDelegateModel::_q_columnsRemoved(const QModelIndex &parent, int begin, int end) +{ + Q_D(QQmlDelegateModel); + Q_UNUSED(end); + if (parent == d->m_adaptorModel.rootIndex && begin == 0) { + // mark all items as changed + _q_itemsChanged(0, d->m_count, QVector()); + } +} + +void QQmlDelegateModel::_q_columnsMoved(const QModelIndex &parent, int start, int end, + const QModelIndex &destination, int column) +{ + Q_D(QQmlDelegateModel); + Q_UNUSED(end); + if ((parent == d->m_adaptorModel.rootIndex && start == 0) + || (destination == d->m_adaptorModel.rootIndex && column == 0)) { + // mark all items as changed + _q_itemsChanged(0, d->m_count, QVector()); + } +} + void QQmlDelegateModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end, const QVector &roles) { Q_D(QQmlDelegateModel); diff --git a/qtdeclarative/src/qmlmodels/qqmldelegatemodel_p.h b/qtdeclarative/src/qmlmodels/qqmldelegatemodel_p.h index 8aab4badca..d140bfbaaf 100644 --- a/qtdeclarative/src/qmlmodels/qqmldelegatemodel_p.h +++ b/qtdeclarative/src/qmlmodels/qqmldelegatemodel_p.h @@ -152,6 +152,9 @@ private Q_SLOTS: void _q_itemsMoved(int from, int to, int count); void _q_modelReset(); void _q_rowsInserted(const QModelIndex &,int,int); + void _q_columnsInserted(const QModelIndex &, int, int); + void _q_columnsRemoved(const QModelIndex &, int, int); + void _q_columnsMoved(const QModelIndex &, int, int, const QModelIndex &, int); void _q_rowsAboutToBeRemoved(const QModelIndex &parent, int begin, int end); void _q_rowsRemoved(const QModelIndex &,int,int); void _q_rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int); diff --git a/qtdeclarative/src/quick/items/qquickitem.cpp b/qtdeclarative/src/quick/items/qquickitem.cpp index 497672b497..81b0db0b69 100644 --- a/qtdeclarative/src/quick/items/qquickitem.cpp +++ b/qtdeclarative/src/quick/items/qquickitem.cpp @@ -59,6 +59,7 @@ #include #include #include +#include #include #include @@ -2520,6 +2521,7 @@ QQuickItem* QQuickItemPrivate::nextPrevItemInTabFocusChain(QQuickItem *item, boo QQuickItem *current = item; qCDebug(DBG_FOCUS) << "QQuickItemPrivate::nextPrevItemInTabFocusChain: startItem:" << startItem; qCDebug(DBG_FOCUS) << "QQuickItemPrivate::nextPrevItemInTabFocusChain: firstFromItem:" << firstFromItem; + QDuplicateTracker cycleDetector; do { qCDebug(DBG_FOCUS) << "QQuickItemPrivate::nextPrevItemInTabFocusChain: current:" << current; qCDebug(DBG_FOCUS) << "QQuickItemPrivate::nextPrevItemInTabFocusChain: from:" << from; @@ -2586,7 +2588,10 @@ QQuickItem* QQuickItemPrivate::nextPrevItemInTabFocusChain(QQuickItem *item, boo // traversed all of the chain (by compare the [current] item with [startItem]) // Since the [startItem] might be promoted to its parent if it is invisible, // we still have to check [current] item with original start item - if ((current == startItem || current == originalStartItem) && from == firstFromItem) { + // We might also run into a cycle before we reach firstFromItem again + // but note that we have to ignore current if we are meant to skip it + if (((current == startItem || current == originalStartItem) && from == firstFromItem) || + (!skip && cycleDetector.hasSeen(current))) { // wrapped around, avoid endless loops if (item == contentItem) { qCDebug(DBG_FOCUS) << "QQuickItemPrivate::nextPrevItemInTabFocusChain: looped, return contentItem"; diff --git a/qtdeclarative/src/quick/items/qquickloader.cpp b/qtdeclarative/src/quick/items/qquickloader.cpp index cb4f79a3c2..7fbe66fdda 100644 --- a/qtdeclarative/src/quick/items/qquickloader.cpp +++ b/qtdeclarative/src/quick/items/qquickloader.cpp @@ -737,6 +737,9 @@ void QQuickLoaderPrivate::_q_sourceLoaded() return; } + if (!active) + return; + QQmlContext *creationContext = component->creationContext(); if (!creationContext) creationContext = qmlContext(q); itemContext = new QQmlContext(creationContext); diff --git a/qtdeclarative/src/quick/items/qquickmousearea_p_p.h b/qtdeclarative/src/quick/items/qquickmousearea_p_p.h index fba383e268..0d63618622 100644 --- a/qtdeclarative/src/quick/items/qquickmousearea_p_p.h +++ b/qtdeclarative/src/quick/items/qquickmousearea_p_p.h @@ -61,7 +61,6 @@ QT_BEGIN_NAMESPACE class QQuickMouseEvent; class QQuickMouseArea; -class QQuickPointerMask; class QQuickMouseAreaPrivate : public QQuickItemPrivate { Q_DECLARE_PUBLIC(QQuickMouseArea) @@ -100,7 +99,6 @@ public: #if QT_CONFIG(quick_draganddrop) QQuickDrag *drag; #endif - QPointer mask; QPointF startScene; QPointF targetStartPos; QPointF lastPos; diff --git a/qtdeclarative/src/quick/items/qquickshadereffectsource.cpp b/qtdeclarative/src/quick/items/qquickshadereffectsource.cpp index 4f61d61309..b298ed74da 100644 --- a/qtdeclarative/src/quick/items/qquickshadereffectsource.cpp +++ b/qtdeclarative/src/quick/items/qquickshadereffectsource.cpp @@ -344,7 +344,6 @@ void QQuickShaderEffectSource::setSourceItem(QQuickItem *item) d->refFromEffectItem(m_hideSource); d->addItemChangeListener(this, QQuickItemPrivate::Geometry); connect(m_sourceItem, SIGNAL(destroyed(QObject*)), this, SLOT(sourceItemDestroyed(QObject*))); - connect(m_sourceItem, SIGNAL(parentChanged(QQuickItem*)), this, SLOT(sourceItemParentChanged(QQuickItem*))); } else { qWarning("ShaderEffectSource: sourceItem and ShaderEffectSource must both be children of the same window."); m_sourceItem = nullptr; @@ -364,13 +363,6 @@ void QQuickShaderEffectSource::sourceItemDestroyed(QObject *item) } -void QQuickShaderEffectSource::sourceItemParentChanged(QQuickItem *parent) -{ - if (!parent && m_texture) - m_texture->setItem(0); -} - - /*! \qmlproperty rect QtQuick::ShaderEffectSource::sourceRect diff --git a/qtdeclarative/src/quick/items/qquickshadereffectsource_p.h b/qtdeclarative/src/quick/items/qquickshadereffectsource_p.h index 4deb6c70a3..c0a1ccab78 100644 --- a/qtdeclarative/src/quick/items/qquickshadereffectsource_p.h +++ b/qtdeclarative/src/quick/items/qquickshadereffectsource_p.h @@ -173,7 +173,6 @@ Q_SIGNALS: private Q_SLOTS: void sourceItemDestroyed(QObject *item); void invalidateSceneGraph(); - void sourceItemParentChanged(QQuickItem *parent); protected: void releaseResources() override; diff --git a/qtdeclarative/src/quick/items/qquicktext.cpp b/qtdeclarative/src/quick/items/qquicktext.cpp index 6230186933..e823ca1095 100644 --- a/qtdeclarative/src/quick/items/qquicktext.cpp +++ b/qtdeclarative/src/quick/items/qquicktext.cpp @@ -2168,7 +2168,7 @@ void QQuickText::resetMaximumLineCount() - inline images
    ,
      and
    • - ordered and unordered lists
       - preformatted
      -    > < &
      +    > < & "   '
           \endcode
       
           \c Text.StyledText parser is strict, requiring tags to be correctly nested.
      diff --git a/qtdeclarative/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp b/qtdeclarative/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
      index 3c60f830de..0fd6581dc4 100644
      --- a/qtdeclarative/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
      +++ b/qtdeclarative/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp
      @@ -428,6 +428,18 @@ QSGTextMaskRhiShader::QSGTextMaskRhiShader(QFontEngine::GlyphFormat glyphFormat)
                             QStringLiteral(":/qt-project.org/scenegraph/shaders_ng/textmask.frag.qsb"));
       }
       
      +enum UbufOffset {
      +    ModelViewMatrixOffset = 0,
      +    ProjectionMatrixOffset = ModelViewMatrixOffset + 64,
      +    ColorOffset = ProjectionMatrixOffset + 64,
      +    TextureScaleOffset = ColorOffset + 16,
      +    DprOffset = TextureScaleOffset + 8,
      +
      +    // + 1 float padding (vec4 must be aligned to 16)
      +    StyleColorOffset = DprOffset + 4 + 4,
      +    ShiftOffset = StyleColorOffset + 16
      +};
      +
       bool QSGTextMaskRhiShader::updateUniformData(RenderState &state,
                                                    QSGMaterial *newMaterial, QSGMaterial *oldMaterial)
       {
      @@ -443,11 +455,14 @@ bool QSGTextMaskRhiShader::updateUniformData(RenderState &state,
       
           bool changed = false;
           QByteArray *buf = state.uniformData();
      -    Q_ASSERT(buf->size() >= 92);
      +    Q_ASSERT(buf->size() >= DprOffset + 4);
       
           if (state.isMatrixDirty()) {
      -        const QMatrix4x4 m = state.combinedMatrix();
      -        memcpy(buf->data(), m.constData(), 64);
      +        const QMatrix4x4 mv = state.modelViewMatrix();
      +        memcpy(buf->data() + ModelViewMatrixOffset, mv.constData(), 64);
      +        const QMatrix4x4 p = state.projectionMatrix();
      +        memcpy(buf->data() + ProjectionMatrixOffset, p.constData(), 64);
      +
               changed = true;
           }
       
      @@ -456,13 +471,13 @@ bool QSGTextMaskRhiShader::updateUniformData(RenderState &state,
           if (updated || !oldMat || oldRtex != newRtex) {
               const QVector2D textureScale = QVector2D(1.0f / mat->rhiGlyphCache()->width(),
                                                        1.0f / mat->rhiGlyphCache()->height());
      -        memcpy(buf->data() + 64 + 16, &textureScale, 8);
      +        memcpy(buf->data() + TextureScaleOffset, &textureScale, 8);
               changed = true;
           }
       
           if (!oldMat) {
               float dpr = state.devicePixelRatio();
      -        memcpy(buf->data() + 64 + 16 + 8, &dpr, 4);
      +        memcpy(buf->data() + DprOffset, &dpr, 4);
           }
       
           // move texture uploads/copies onto the renderer's soon-to-be-committed list
      @@ -510,11 +525,11 @@ bool QSG8BitTextMaskRhiShader::updateUniformData(RenderState &state,
           QSGTextMaskMaterial *oldMat = static_cast(oldMaterial);
       
           QByteArray *buf = state.uniformData();
      -    Q_ASSERT(buf->size() >= 80);
      +    Q_ASSERT(buf->size() >= ColorOffset + 16);
       
           if (oldMat == nullptr || mat->color() != oldMat->color() || state.isOpacityDirty()) {
               const QVector4D color = qsg_premultiply(mat->color(), state.opacity());
      -        memcpy(buf->data() + 64, &color, 16);
      +        memcpy(buf->data() + ColorOffset, &color, 16);
               changed = true;
           }
       
      @@ -553,12 +568,12 @@ bool QSG24BitTextMaskRhiShader::updateUniformData(RenderState &state,
           QSGTextMaskMaterial *oldMat = static_cast(oldMaterial);
       
           QByteArray *buf = state.uniformData();
      -    Q_ASSERT(buf->size() >= 92);
      +    Q_ASSERT(buf->size() >= ColorOffset + 16);
       
           if (oldMat == nullptr || mat->color() != oldMat->color() || state.isOpacityDirty()) {
               // shader takes vec4 but uses alpha only; coloring happens via the blend constant
               const QVector4D color = qsg_premultiply(mat->color(), state.opacity());
      -        memcpy(buf->data() + 64, &color, 16);
      +        memcpy(buf->data() + ColorOffset, &color, 16);
               changed = true;
           }
       
      @@ -608,12 +623,12 @@ bool QSG32BitColorTextRhiShader::updateUniformData(RenderState &state,
           QSGTextMaskMaterial *oldMat = static_cast(oldMaterial);
       
           QByteArray *buf = state.uniformData();
      -    Q_ASSERT(buf->size() >= 92);
      +    Q_ASSERT(buf->size() >= ColorOffset + 16);
       
           if (oldMat == nullptr || mat->color() != oldMat->color() || state.isOpacityDirty()) {
               // shader takes vec4 but uses alpha only
               const QVector4D color(0, 0, 0, mat->color().w() * state.opacity());
      -        memcpy(buf->data() + 64, &color, 16);
      +        memcpy(buf->data() + ColorOffset, &color, 16);
               changed = true;
           }
       
      @@ -649,20 +664,17 @@ bool QSGStyledTextRhiShader::updateUniformData(RenderState &state,
           QSGStyledTextMaterial *oldMat = static_cast(oldMaterial);
       
           QByteArray *buf = state.uniformData();
      -    Q_ASSERT(buf->size() >= 120);
      -
      -    // matrix..dpr + 1 float padding (vec4 must be aligned to 16)
      -    const int startOffset = 64 + 16 + 8 + 4 + 4;
      +    Q_ASSERT(buf->size() >= ShiftOffset + 8);
       
           if (oldMat == nullptr || mat->styleColor() != oldMat->styleColor() || state.isOpacityDirty()) {
               const QVector4D styleColor = qsg_premultiply(mat->styleColor(), state.opacity());
      -        memcpy(buf->data() + startOffset, &styleColor, 16);
      +        memcpy(buf->data() + StyleColorOffset, &styleColor, 16);
               changed = true;
           }
       
           if (oldMat == nullptr || oldMat->styleShift() != mat->styleShift()) {
               const QVector2D v = mat->styleShift();
      -        memcpy(buf->data() + startOffset + 16, &v, 8);
      +        memcpy(buf->data() + ShiftOffset, &v, 8);
               changed = true;
           }
       
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/24bittextmask.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/24bittextmask.frag
      index bc3826a924..ed8da4cd30 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/24bittextmask.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/24bittextmask.frag
      @@ -6,8 +6,9 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      -    vec4 color; // only alpha is used, but must be vec4 due to layout compat
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
      +    vec4 color;
           vec2 textureScale;
           float dpr;
       } ubuf;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/32bitcolortext.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/32bitcolortext.frag
      index 63e445f90b..4198a4d339 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/32bitcolortext.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/32bitcolortext.frag
      @@ -6,8 +6,9 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      -    vec4 color; // only alpha is used, but must be vec4 due to layout compat
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
      +    vec4 color;
           vec2 textureScale;
           float dpr;
       } ubuf;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask.frag
      index 6304e821ff..a06743876d 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask.frag
      @@ -6,7 +6,8 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask_a.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask_a.frag
      index 0d0fa1cd3a..f725cbc5e7 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask_a.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/8bittextmask_a.frag
      @@ -6,7 +6,8 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.frag
      index 947d161a50..e2f82d3845 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.frag
      @@ -11,11 +11,12 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    // must match styledtext
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      +    // the above must stay compatible with textmask/8bittextmask
           vec4 styleColor;
           vec2 shift;
       } ubuf;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.vert b/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.vert
      index 023f9dfdc2..4068e42f28 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.vert
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext.vert
      @@ -10,11 +10,12 @@ layout(location = 3) out vec2 sCoordLeft;
       layout(location = 4) out vec2 sCoordRight;
       
       layout(std140, binding = 0) uniform buf {
      -    // must match styledtext
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      +    // the above must stay compatible with textmask/8bittextmask
           vec4 styleColor;
           vec2 shift;
       } ubuf;
      @@ -28,6 +29,6 @@ void main()
            sCoordDown = (tCoord - vec2(0.0, 1.0)) * ubuf.textureScale;
            sCoordLeft = (tCoord - vec2(-1.0, 0.0)) * ubuf.textureScale;
            sCoordRight = (tCoord - vec2(1.0, 0.0)) * ubuf.textureScale;
      -     vec3 dprSnapPos = floor(vCoord.xyz * ubuf.dpr + 0.5) / ubuf.dpr;
      -     gl_Position = ubuf.matrix * vec4(dprSnapPos, vCoord.w);
      +     vec4 xformed = ubuf.modelViewMatrix * vCoord;
      +     gl_Position = ubuf.projectionMatrix * vec4(floor(xformed.xyz * ubuf.dpr + 0.5) / ubuf.dpr, xformed.w);
       }
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext_a.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext_a.frag
      index 5b7bd9ca82..274d891a3c 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext_a.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/outlinedtext_a.frag
      @@ -11,11 +11,12 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    // must match styledtext
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      +    // the above must stay compatible with textmask/8bittextmask
           vec4 styleColor;
           vec2 shift;
       } ubuf;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.frag
      index 0b16396037..2e380dfeae 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.frag
      @@ -8,7 +8,8 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.vert b/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.vert
      index beadf07c79..271dae8d8a 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.vert
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext.vert
      @@ -7,7 +7,8 @@ layout(location = 0) out vec2 sampleCoord;
       layout(location = 1) out vec2 shiftedSampleCoord;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      @@ -22,6 +23,6 @@ void main()
       {
            sampleCoord = tCoord * ubuf.textureScale;
            shiftedSampleCoord = (tCoord - ubuf.shift) * ubuf.textureScale;
      -     vec3 dprSnapPos = floor(vCoord.xyz * ubuf.dpr + 0.5) / ubuf.dpr;
      -     gl_Position = ubuf.matrix * vec4(dprSnapPos, vCoord.w);
      +     vec4 xformed = ubuf.modelViewMatrix * vCoord;
      +     gl_Position = ubuf.projectionMatrix * vec4(floor(xformed.xyz * ubuf.dpr + 0.5) / ubuf.dpr, xformed.w);
       }
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext_a.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext_a.frag
      index b673137895..62e162c851 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext_a.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/styledtext_a.frag
      @@ -8,7 +8,8 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.frag b/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.frag
      index 518d5c965f..ed8da4cd30 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.frag
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.frag
      @@ -6,7 +6,8 @@ layout(location = 0) out vec4 fragColor;
       layout(binding = 1) uniform sampler2D _qt_texture;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      diff --git a/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.vert b/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.vert
      index 9d80d5dadb..e0b3c01bce 100644
      --- a/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.vert
      +++ b/qtdeclarative/src/quick/scenegraph/shaders_ng/textmask.vert
      @@ -6,7 +6,8 @@ layout(location = 1) in vec2 tCoord;
       layout(location = 0) out vec2 sampleCoord;
       
       layout(std140, binding = 0) uniform buf {
      -    mat4 matrix;
      +    mat4 modelViewMatrix;
      +    mat4 projectionMatrix;
           vec4 color;
           vec2 textureScale;
           float dpr;
      @@ -17,6 +18,6 @@ out gl_PerVertex { vec4 gl_Position; };
       void main()
       {
            sampleCoord = tCoord * ubuf.textureScale;
      -     vec3 dprSnapPos = floor(vCoord.xyz * ubuf.dpr + 0.5) / ubuf.dpr;
      -     gl_Position = ubuf.matrix * vec4(dprSnapPos, vCoord.w);
      +     vec4 xformed = ubuf.modelViewMatrix * vCoord;
      +     gl_Position = ubuf.projectionMatrix * vec4(floor(xformed.xyz * ubuf.dpr + 0.5) / ubuf.dpr, xformed.w);
       }
      diff --git a/qtdeclarative/src/quick/util/qquickstyledtext.cpp b/qtdeclarative/src/quick/util/qquickstyledtext.cpp
      index 660852ba83..a25af90414 100644
      --- a/qtdeclarative/src/quick/util/qquickstyledtext.cpp
      +++ b/qtdeclarative/src/quick/util/qquickstyledtext.cpp
      @@ -46,6 +46,8 @@
       #include "qquickstyledtext_p.h"
       #include 
       
      +Q_LOGGING_CATEGORY(lcStyledText, "qt.quick.styledtext")
      +
       /*
           QQuickStyledText supports few tags:
       
      @@ -562,10 +564,14 @@ void QQuickStyledTextPrivate::parseEntity(const QChar *&ch, const QString &textI
                       textOut += QChar(60);
                   else if (entity == QLatin1String("amp"))
                       textOut += QChar(38);
      +            else if (entity == QLatin1String("apos"))
      +                textOut += QChar(39);
                   else if (entity == QLatin1String("quot"))
                       textOut += QChar(34);
                   else if (entity == QLatin1String("nbsp"))
                       textOut += QChar(QChar::Nbsp);
      +            else
      +                qCWarning(lcStyledText) << "StyledText doesn't support entity" << entity;
                   return;
               } else if (*ch == QLatin1Char(' ')) {
                   QStringRef entity(&textIn, entityStart - 1, entityLength + 1);
      diff --git a/qtdeclarative/src/quickwidgets/qquickwidget.cpp b/qtdeclarative/src/quickwidgets/qquickwidget.cpp
      index 39780f8de3..223d91f579 100644
      --- a/qtdeclarative/src/quickwidgets/qquickwidget.cpp
      +++ b/qtdeclarative/src/quickwidgets/qquickwidget.cpp
      @@ -106,6 +106,7 @@ void QQuickWidgetPrivate::init(QQmlEngine* e)
       
           renderControl = new QQuickWidgetRenderControl(q);
           offscreenWindow = new QQuickWindow(*new QQuickOffcreenWindowPrivate(),renderControl);
      +    offscreenWindow->setScreen(q->screen());
           offscreenWindow->setTitle(QString::fromLatin1("Offscreen"));
           offscreenWindow->setObjectName(QString::fromLatin1("QQuickOffScreenWindow"));
           // Do not call create() on offscreenWindow.
      @@ -901,9 +902,7 @@ void QQuickWidgetPrivate::createContext()
       
               context = new QOpenGLContext;
               context->setFormat(offscreenWindow->requestedFormat());
      -        const QWindow *win = q->window()->windowHandle();
      -        if (win && win->screen())
      -            context->setScreen(win->screen());
      +        context->setScreen(q->screen());
               QOpenGLContext *shareContext = qt_gl_global_share_context();
               if (!shareContext)
                   shareContext = QWidgetPrivate::get(q->window())->shareContext();
      @@ -1520,19 +1519,16 @@ bool QQuickWidget::event(QEvent *e)
               d->handleWindowChange();
               break;
       
      -    case QEvent::ScreenChangeInternal:
      -        if (QWindow *window = this->window()->windowHandle()) {
      -            QScreen *newScreen = window->screen();
      -
      -            if (d->offscreenWindow)
      -                d->offscreenWindow->setScreen(newScreen);
      -            if (d->offscreenSurface)
      -                d->offscreenSurface->setScreen(newScreen);
      +    case QEvent::ScreenChangeInternal: {
      +        QScreen *newScreen = screen();
      +        if (d->offscreenWindow)
      +            d->offscreenWindow->setScreen(newScreen);
      +        if (d->offscreenSurface)
      +            d->offscreenSurface->setScreen(newScreen);
       #if QT_CONFIG(opengl)
      -            if (d->context)
      -                d->context->setScreen(newScreen);
      +        if (d->context)
      +            d->context->setScreen(newScreen);
       #endif
      -        }
       
               if (d->useSoftwareRenderer
       #if QT_CONFIG(opengl)
      @@ -1545,7 +1541,7 @@ bool QQuickWidget::event(QEvent *e)
                   d->render(true);
               }
               break;
      -
      +    }
           case QEvent::Show:
           case QEvent::Move:
               d->updatePosition();
      diff --git a/qtdeclarative/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/qtdeclarative/tests/auto/qml/qjsengine/tst_qjsengine.cpp
      index 3b7d74df63..b75bf820d5 100644
      --- a/qtdeclarative/tests/auto/qml/qjsengine/tst_qjsengine.cpp
      +++ b/qtdeclarative/tests/auto/qml/qjsengine/tst_qjsengine.cpp
      @@ -102,6 +102,7 @@ private slots:
           void valueConversion_RegularExpression();
           void castWithMultipleInheritance();
           void collectGarbage();
      +    void collectGarbageNestedWrappersTwoEngines();
           void gcWithNestedDataStructure();
           void stacktrace();
           void numberParsing_data();
      @@ -1809,6 +1810,44 @@ void tst_QJSEngine::collectGarbage()
           QVERIFY(ptr.isNull());
       }
       
      +class TestObjectContainer : public QObject
      +{
      +    Q_OBJECT
      +    Q_PROPERTY(QObject *dummy MEMBER m_dummy CONSTANT)
      +
      +public:
      +    TestObjectContainer() : m_dummy(new QObject(this)) {}
      +
      +private:
      +    QObject *m_dummy;
      +};
      +
      +void tst_QJSEngine::collectGarbageNestedWrappersTwoEngines()
      +{
      +    QJSEngine engine1;
      +    QJSEngine engine2;
      +
      +    TestObjectContainer container;
      +    QQmlEngine::setObjectOwnership(&container, QQmlEngine::CppOwnership);
      +
      +    engine1.globalObject().setProperty("foobar", engine1.newQObject(&container));
      +    engine2.globalObject().setProperty("foobar", engine2.newQObject(&container));
      +
      +    engine1.evaluate("foobar.dummy.baz = 42");
      +    engine2.evaluate("foobar.dummy.baz = 43");
      +
      +    QCOMPARE(engine1.evaluate("foobar.dummy.baz").toInt(), 42);
      +    QCOMPARE(engine2.evaluate("foobar.dummy.baz").toInt(), 43);
      +
      +    engine1.collectGarbage();
      +    engine2.collectGarbage();
      +
      +    // The GC should not collect dummy object wrappers neither in engine1 nor engine2, we
      +    // verify that by checking whether the baz property still has its previous value.
      +    QCOMPARE(engine1.evaluate("foobar.dummy.baz").toInt(), 42);
      +    QCOMPARE(engine2.evaluate("foobar.dummy.baz").toInt(), 43);
      +}
      +
       void tst_QJSEngine::gcWithNestedDataStructure()
       {
           // The GC must be able to traverse deeply nested objects, otherwise this
      diff --git a/qtdeclarative/tests/auto/qml/qqmldelegatemodel/data/redrawUponColumnChange.qml b/qtdeclarative/tests/auto/qml/qqmldelegatemodel/data/redrawUponColumnChange.qml
      new file mode 100644
      index 0000000000..206133bb39
      --- /dev/null
      +++ b/qtdeclarative/tests/auto/qml/qqmldelegatemodel/data/redrawUponColumnChange.qml
      @@ -0,0 +1,11 @@
      +import QtQuick 2.8
      +
      +ListView {
      +    id: root
      +    width: 200
      +    height: 200
      +
      +    delegate: Text {
      +        text: display
      +    }
      +}
      diff --git a/qtdeclarative/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp b/qtdeclarative/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp
      index 71550a50f3..4c1eae7ac7 100644
      --- a/qtdeclarative/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp
      +++ b/qtdeclarative/tests/auto/qml/qqmldelegatemodel/tst_qqmldelegatemodel.cpp
      @@ -27,6 +27,8 @@
       ****************************************************************************/
       
       #include 
      +#include 
      +#include 
       #include 
       #include 
       #include 
      @@ -45,6 +47,7 @@ private slots:
           void valueWithoutCallingObjectFirst_data();
           void valueWithoutCallingObjectFirst();
           void filterOnGroup_removeWhenCompleted();
      +    void redrawUponColumnChange();
       };
       
       class AbstractItemModel : public QAbstractItemModel
      @@ -149,6 +152,30 @@ void tst_QQmlDelegateModel::filterOnGroup_removeWhenCompleted()
           QTest::qWaitFor([=]{ return model->count() == 2; } );
       }
       
      +void tst_QQmlDelegateModel::redrawUponColumnChange()
      +{
      +    QStandardItemModel m1;
      +    m1.appendRow({
      +            new QStandardItem("Banana"),
      +            new QStandardItem("Coconut"),
      +    });
      +
      +    QQuickView view(testFileUrl("redrawUponColumnChange.qml"));
      +    QCOMPARE(view.status(), QQuickView::Ready);
      +    view.show();
      +    QQuickItem *root = view.rootObject();
      +    root->setProperty("model", QVariant::fromValue(&m1));
      +
      +    QObject *item = root->property("currentItem").value();
      +    QVERIFY(item);
      +    QCOMPARE(item->property("text").toString(), "Banana");
      +
      +    QVERIFY(root);
      +    m1.removeColumn(0);
      +
      +    QCOMPARE(item->property("text").toString(), "Coconut");
      +}
      +
       QTEST_MAIN(tst_QQmlDelegateModel)
       
       #include "tst_qqmldelegatemodel.moc"
      diff --git a/qtdeclarative/tests/auto/qml/qv4mm/tst_qv4mm.cpp b/qtdeclarative/tests/auto/qml/qv4mm/tst_qv4mm.cpp
      index 5d635aa63b..824fd89e5b 100644
      --- a/qtdeclarative/tests/auto/qml/qv4mm/tst_qv4mm.cpp
      +++ b/qtdeclarative/tests/auto/qml/qv4mm/tst_qv4mm.cpp
      @@ -76,10 +76,10 @@ void tst_qv4mm::multiWrappedQObjects()
               QCOMPARE(engine1.memoryManager->m_pendingFreedObjectWrapperValue.size(), 1);
               QCOMPARE(engine2.memoryManager->m_pendingFreedObjectWrapperValue.size(), 0);
       
      -        // Moves the additional WeakValue from m_multiplyWrappedQObjects to
      -        // m_pendingFreedObjectWrapperValue. It's still alive after all.
      +        // The additional WeakValue from m_multiplyWrappedQObjects hasn't been moved
      +        // to m_pendingFreedObjectWrapperValue yet. It's still alive after all.
               engine1.memoryManager->runGC();
      -        QCOMPARE(engine1.memoryManager->m_pendingFreedObjectWrapperValue.size(), 2);
      +        QCOMPARE(engine1.memoryManager->m_pendingFreedObjectWrapperValue.size(), 1);
       
               // engine2 doesn't own the object as engine1 was the first to wrap it above.
               // Therefore, no effect here.
      diff --git a/qtdeclarative/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop3.qml b/qtdeclarative/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop3.qml
      new file mode 100644
      index 0000000000..889e480f3b
      --- /dev/null
      +++ b/qtdeclarative/tests/auto/quick/qquickitem2/data/activeFocusOnTab_infiniteLoop3.qml
      @@ -0,0 +1,13 @@
      +import QtQuick 2.6
      +
      +Item {
      +    visible: true
      +    Item {
      +        visible: false
      +        Item {
      +            objectName: "hiddenChild"
      +            activeFocusOnTab: true
      +            focus: true
      +        }
      +    }
      +}
      diff --git a/qtdeclarative/tests/auto/quick/qquickitem2/tst_qquickitem.cpp b/qtdeclarative/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
      index f65650cf9c..eeff768bb4 100644
      --- a/qtdeclarative/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
      +++ b/qtdeclarative/tests/auto/quick/qquickitem2/tst_qquickitem.cpp
      @@ -66,6 +66,7 @@ private slots:
           void activeFocusOnTab10();
           void activeFocusOnTab_infiniteLoop_data();
           void activeFocusOnTab_infiniteLoop();
      +    void activeFocusOnTab_infiniteLoopControls();
       
           void nextItemInFocusChain();
           void nextItemInFocusChain2();
      @@ -1055,6 +1056,17 @@ void tst_QQuickItem::activeFocusOnTab_infiniteLoop()
           QCOMPARE(item, window->rootObject());
       }
       
      +
      +void tst_QQuickItem::activeFocusOnTab_infiniteLoopControls()
      +{
      +    auto source = testFileUrl("activeFocusOnTab_infiniteLoop3.qml");
      +    QScopedPointerwindow(new QQuickView());
      +    window->setSource(source);
      +    window->show();
      +    QVERIFY(window->errors().isEmpty());
      +    QTest::keyClick(window.get(), Qt::Key_Tab); // should not hang
      +}
      +
       void tst_QQuickItem::nextItemInFocusChain()
       {
           if (!qt_tab_all_widgets())
      diff --git a/qtdeclarative/tests/auto/quick/qquickloader/data/loader-async-race-rect.qml b/qtdeclarative/tests/auto/quick/qquickloader/data/loader-async-race-rect.qml
      new file mode 100644
      index 0000000000..a56dcea5ad
      --- /dev/null
      +++ b/qtdeclarative/tests/auto/quick/qquickloader/data/loader-async-race-rect.qml
      @@ -0,0 +1,10 @@
      +import QtQuick 2.15
      +
      +Rectangle {
      +    anchors.fill: parent
      +    color: "blue"
      +    Item {
      +        Item {
      +        }
      +    }
      +}
      diff --git a/qtdeclarative/tests/auto/quick/qquickloader/data/loader-async-race.qml b/qtdeclarative/tests/auto/quick/qquickloader/data/loader-async-race.qml
      new file mode 100644
      index 0000000000..8ba625c5c1
      --- /dev/null
      +++ b/qtdeclarative/tests/auto/quick/qquickloader/data/loader-async-race.qml
      @@ -0,0 +1,14 @@
      +import QtQuick 2.15
      +
      +Item {
      +    id: root
      +    Component.onCompleted: {
      +        myloader.active = false
      +    }
      +    Loader {
      +        id: myloader
      +        anchors.fill: parent
      +        asynchronous: true
      +        source: "loader-async-race-rect.qml"
      +    }
      +}
      diff --git a/qtdeclarative/tests/auto/quick/qquickloader/tst_qquickloader.cpp b/qtdeclarative/tests/auto/quick/qquickloader/tst_qquickloader.cpp
      index 0f6c811adb..dddacbaa0b 100644
      --- a/qtdeclarative/tests/auto/quick/qquickloader/tst_qquickloader.cpp
      +++ b/qtdeclarative/tests/auto/quick/qquickloader/tst_qquickloader.cpp
      @@ -132,6 +132,7 @@ private slots:
           void statusChangeOnlyEmittedOnce();
       
           void setSourceAndCheckStatus();
      +    void asyncLoaderRace();
       };
       
       Q_DECLARE_METATYPE(QList)
      @@ -1496,6 +1497,24 @@ void tst_QQuickLoader::setSourceAndCheckStatus()
           QCOMPARE(loader->status(), QQuickLoader::Null);
       }
       
      +void tst_QQuickLoader::asyncLoaderRace()
      +{
      +    QQmlApplicationEngine engine;
      +    auto url = testFileUrl("loader-async-race.qml");
      +    engine.load(url);
      +    auto root = engine.rootObjects().at(0);
      +    QVERIFY(root);
      +
      +    QQuickLoader *loader = root->findChild();
      +    QCOMPARE(loader->active(), false);
      +    QCOMPARE(loader->status(), QQuickLoader::Null);
      +    QCOMPARE(loader->item(), nullptr);
      +
      +    QSignalSpy spy(loader, &QQuickLoader::itemChanged);
      +    QVERIFY(!spy.wait(100));
      +    QCOMPARE(loader->item(), nullptr);
      +}
      +
       QTEST_MAIN(tst_QQuickLoader)
       
       #include "tst_qquickloader.moc"
      diff --git a/qtdeclarative/tests/manual/scenegraph_lancelot/data/text/text_nativerendering_subpixelpositions.qml b/qtdeclarative/tests/manual/scenegraph_lancelot/data/text/text_nativerendering_subpixelpositions.qml
      new file mode 100644
      index 0000000000..c60fc4d8b0
      --- /dev/null
      +++ b/qtdeclarative/tests/manual/scenegraph_lancelot/data/text/text_nativerendering_subpixelpositions.qml
      @@ -0,0 +1,91 @@
      +import QtQuick 2.0
      +
      +//vary font style, native rendering at non-integer offsets
      +
      +Item {
      +    id: topLevel
      +    width: 320
      +    height: 580
      +
      +    Repeater {
      +        model: [Text.Normal, Text.Outline, Text.Raised, Text.Sunken]
      +        Text {
      +            y: 20 * index
      +            clip: true
      +            renderType: Text.NativeRendering
      +            width: parent.width
      +            wrapMode: Text.Wrap
      +            font.pointSize: 10
      +            style: modelData
      +            styleColor: "green"
      +            text: "The quick fox jumps in style " + modelData
      +        }
      +    }
      +
      +    Repeater {
      +        model: [Text.Normal, Text.Outline, Text.Raised, Text.Sunken]
      +        Text {
      +            y: 100.5 + 20 * index
      +            clip: true
      +            renderType: Text.NativeRendering
      +            width: parent.width
      +            wrapMode: Text.Wrap
      +            font.pointSize: 10
      +            style: modelData
      +            styleColor: "green"
      +            text: "The quick fox jumps in style " + modelData
      +        }
      +    }
      +
      +    Repeater {
      +        model: [Text.Normal, Text.Outline, Text.Raised, Text.Sunken]
      +        Text {
      +            y: 200.5 + 20 * index
      +            x: 0.5
      +            clip: true
      +            renderType: Text.NativeRendering
      +            width: parent.width
      +            wrapMode: Text.Wrap
      +            font.pointSize: 10
      +            style: modelData
      +            styleColor: "green"
      +            text: "The quick fox jumps in style " + modelData
      +        }
      +    }
      +
      +    Repeater {
      +        model: [Text.Normal, Text.Outline, Text.Raised, Text.Sunken]
      +        Text {
      +            y: 300.5 + 20 * index
      +            x: 0.5
      +            clip: true
      +            renderType: Text.NativeRendering
      +            width: parent.width
      +            wrapMode: Text.Wrap
      +            font.pointSize: 10
      +            style: modelData
      +            styleColor: "green"
      +            text: "The quick fox jumps in style " + modelData
      +        }
      +    }
      +
      +    Repeater {
      +        model: [Text.Normal, Text.Outline, Text.Raised, Text.Sunken]
      +        Rectangle {
      +            y: 400.5 + 20 * index
      +            x: 0.5
      +            width: topLevel.width
      +            height: topLevel.height
      +            clip: true
      +            Text {
      +                renderType: Text.NativeRendering
      +                width: parent.width
      +                wrapMode: Text.Wrap
      +                font.pointSize: 10
      +                style: modelData
      +                styleColor: "green"
      +                text: "The quick fox jumps in style " + modelData
      +            }
      +        }
      +    }
      +}
      Submodule qtdoc e891d509...83b1a5df:
      Submodule qtlocation c4d3a003..db3b6bc6:
      diff --git a/qtlocation/src/location/configure.json b/qtlocation/src/location/configure.json
      index 6d01a9a3..d1e623a1 100644
      --- a/qtlocation/src/location/configure.json
      +++ b/qtlocation/src/location/configure.json
      @@ -9,7 +9,7 @@
                   "label": "Qt.labs.location experimental QML plugin",
                   "purpose": "Provides experimental QtLocation QML types",
                   "section": "Location",
      -            "condition": "config.opengl",
      +            "condition": "features.opengl",
                   "output": [ "privateFeature" ]
               },
               "geoservices_osm": {
      diff --git a/qtlocation/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp b/qtlocation/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
      index a978573d..11e1466f 100644
      --- a/qtlocation/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
      +++ b/qtlocation/src/location/labs/qsg/qgeomapobjectqsgsupport.cpp
      @@ -158,7 +158,7 @@ void QGeoMapObjectQSGSupport::updateMapObjects(QSGNode *root, QQuickWindow *wind
           if (!root)
               return;
       
      -    if (m_mapObjectsRootNode && m_mapObjectsRootNode->parent())
      +    if (m_mapObjectsRootNode && !m_mapObjectsRootNode->parent())
               root->appendChildNode(m_mapObjectsRootNode.get());
       
           if (!m_mapObjectsRootNode) {
      Submodule qtquick3d c8f225c4..d52bfdf7:
      diff --git a/qtquick3d/src/assetimport/qssgassetimportmanager.cpp b/qtquick3d/src/assetimport/qssgassetimportmanager.cpp
      index 96238c00..0feb94ff 100644
      --- a/qtquick3d/src/assetimport/qssgassetimportmanager.cpp
      +++ b/qtquick3d/src/assetimport/qssgassetimportmanager.cpp
      @@ -43,10 +43,14 @@ QSSGAssetImportManager::QSSGAssetImportManager(QObject *parent) : QObject(parent
           const QStringList keys = QSSGAssetImporterFactory::keys();
           for (const auto &key : keys) {
               auto importer = QSSGAssetImporterFactory::create(key, QStringList());
      -        m_assetImporters.append(importer);
      -        // Add to extension map
      -        for (const auto &extension : importer->inputExtensions()) {
      -            m_extensionsMap.insert(extension, importer);
      +        if (importer) {
      +            m_assetImporters.append(importer);
      +            // Add to extension map
      +            for (const auto &extension : importer->inputExtensions()) {
      +                m_extensionsMap.insert(extension, importer);
      +            }
      +        } else {
      +            qWarning() << "Failed to load asset import plugin with key: " << key;
               }
           }
       }
      diff --git a/qtquick3d/src/plugins/assetimporters/assimp/assimp.pro b/qtquick3d/src/plugins/assetimporters/assimp/assimp.pro
      index ca5c499e..174a075b 100644
      --- a/qtquick3d/src/plugins/assetimporters/assimp/assimp.pro
      +++ b/qtquick3d/src/plugins/assetimporters/assimp/assimp.pro
      @@ -10,7 +10,7 @@ QT_FOR_CONFIG += assetimporters-private
       include($$OUT_PWD/../qtassetimporters-config.pri)
       
       qtConfig(system-assimp):!if(cross_compile:host_build) {
      -    QMAKE_USE_PRIVATE += assimp
      +    QMAKE_USE_PRIVATE += quick3d-assimp
       } else {
           include(../../../3rdparty/assimp/assimp.pri)
       }
      Submodule qtquickcontrols2 69c1a1e8...0d3d39e8 (commits not present)
      Submodule qtscript 5be95f96...5cec94b2 (commits not present)
      Submodule qtspeech 89ddde42..c8a1dadc:
      diff --git a/qtspeech/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp b/qtspeech/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp
      index 6eb74b8..bcc7dd1 100644
      --- a/qtspeech/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp
      +++ b/qtspeech/src/plugins/tts/speechdispatcher/qtexttospeech_speechd.cpp
      @@ -357,7 +357,9 @@ QVector QTextToSpeechEngineSpeechd::availableLocales() const
       
       QVector QTextToSpeechEngineSpeechd::availableVoices() const
       {
      -    return m_voices.values(m_currentLocale.name()).toVector();
      +    QList resultList = m_voices.values(m_currentLocale.name());
      +    std::reverse(resultList.begin(), resultList.end());
      +    return resultList.toVector();
       }
       
       // We have no way of knowing our own client_id since speech-dispatcher seems to be incomplete
      Submodule qtsvg 945a9f19..23b8cf7d:
      diff --git a/qtsvg/src/plugins/imageformats/svg/qsvgiohandler.cpp b/qtsvg/src/plugins/imageformats/svg/qsvgiohandler.cpp
      index 4136aaf..fd3529a 100644
      --- a/qtsvg/src/plugins/imageformats/svg/qsvgiohandler.cpp
      +++ b/qtsvg/src/plugins/imageformats/svg/qsvgiohandler.cpp
      @@ -189,6 +189,8 @@ bool QSvgIOHandler::read(QImage *image)
                   }
               }
               if (!finalSize.isEmpty()) {
      +            if (qMax(finalSize.width(), finalSize.height()) > 0xffff)
      +                return false; // Assume corrupted file
                   image->fill(d->backColor.rgba());
                   QPainter p(image);
                   d->r.render(&p, bounds);
      diff --git a/qtsvg/src/svg/qsvghandler.cpp b/qtsvg/src/svg/qsvghandler.cpp
      index 9dac05c..f2653af 100644
      --- a/qtsvg/src/svg/qsvghandler.cpp
      +++ b/qtsvg/src/svg/qsvghandler.cpp
      @@ -728,15 +728,25 @@ static QVector parseNumbersList(const QChar *&str)
           return points;
       }
       
      -static inline void parseNumbersArray(const QChar *&str, QVarLengthArray &points)
      +static inline void parseNumbersArray(const QChar *&str, QVarLengthArray &points,
      +                                     const char *pattern = nullptr)
       {
      +    const size_t patternLen = qstrlen(pattern);
           while (str->isSpace())
               ++str;
           while (isDigit(str->unicode()) ||
                  *str == QLatin1Char('-') || *str == QLatin1Char('+') ||
                  *str == QLatin1Char('.')) {
       
      -        points.append(toDouble(str));
      +        if (patternLen && pattern[points.size() % patternLen] == 'f') {
      +            // flag expected, may only be 0 or 1
      +            if (*str != QLatin1Char('0') && *str != QLatin1Char('1'))
      +                return;
      +            points.append(*str == QLatin1Char('0') ? 0.0 : 1.0);
      +            ++str;
      +        } else {
      +            points.append(toDouble(str));
      +        }
       
               while (str->isSpace())
                   ++str;
      @@ -1383,8 +1393,10 @@ static void parseFont(QSvgNode *node,
               case FontSizeNone:
                   break;
               case FontSizeValue: {
      -            QSvgHandler::LengthType dummy; // should always be pixel size
      -            fontStyle->setSize(parseLength(attributes.fontSize, dummy, handler));
      +            QSvgHandler::LengthType type;
      +            qreal fs = parseLength(attributes.fontSize, type, handler);
      +            fs = convertToPixels(fs, true, type);
      +            fontStyle->setSize(qMin(fs, qreal(0xffff)));
               }
                   break;
               default:
      @@ -1615,6 +1627,7 @@ static void pathArc(QPainterPath &path,
       
       static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
       {
      +    const int maxElementCount = 0x7fff; // Assume file corruption if more path elements than this
           qreal x0 = 0, y0 = 0;              // starting point
           qreal x = 0, y = 0;                // current point
           char lastMode = 0;
      @@ -1622,28 +1635,31 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
           const QChar *str = dataStr.constData();
           const QChar *end = str + dataStr.size();
       
      -    while (str != end) {
      +    bool ok = true;
      +    while (ok && str != end) {
               while (str->isSpace() && (str + 1) != end)
                   ++str;
               QChar pathElem = *str;
               ++str;
               QChar endc = *end;
               *const_cast(end) = 0; // parseNumbersArray requires 0-termination that QStringRef cannot guarantee
      +        const char *pattern = nullptr;
      +        if (pathElem == QLatin1Char('a') || pathElem == QLatin1Char('A'))
      +            pattern = "rrrffrr";
               QVarLengthArray arg;
      -        parseNumbersArray(str, arg);
      +        parseNumbersArray(str, arg, pattern);
               *const_cast(end) = endc;
               if (pathElem == QLatin1Char('z') || pathElem == QLatin1Char('Z'))
                   arg.append(0);//dummy
               const qreal *num = arg.constData();
               int count = arg.count();
      -        while (count > 0) {
      +        while (ok && count > 0) {
                   qreal offsetX = x;        // correction offsets
                   qreal offsetY = y;        // for relative commands
                   switch (pathElem.unicode()) {
                   case 'm': {
                       if (count < 2) {
      -                    num++;
      -                    count--;
      +                    ok = false;
                           break;
                       }
                       x = x0 = num[0] + offsetX;
      @@ -1660,8 +1676,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                       break;
                   case 'M': {
                       if (count < 2) {
      -                    num++;
      -                    count--;
      +                    ok = false;
                           break;
                       }
                       x = x0 = num[0];
      @@ -1687,8 +1702,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                       break;
                   case 'l': {
                       if (count < 2) {
      -                    num++;
      -                    count--;
      +                    ok = false;
                           break;
                       }
                       x = num[0] + offsetX;
      @@ -1701,8 +1715,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                       break;
                   case 'L': {
                       if (count < 2) {
      -                    num++;
      -                    count--;
      +                    ok = false;
                           break;
                       }
                       x = num[0];
      @@ -1742,8 +1755,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                       break;
                   case 'c': {
                       if (count < 6) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF c1(num[0] + offsetX, num[1] + offsetY);
      @@ -1759,8 +1771,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 'C': {
                       if (count < 6) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF c1(num[0], num[1]);
      @@ -1776,8 +1787,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 's': {
                       if (count < 4) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF c1;
      @@ -1798,8 +1808,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 'S': {
                       if (count < 4) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF c1;
      @@ -1820,8 +1829,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 'q': {
                       if (count < 4) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF c(num[0] + offsetX, num[1] + offsetY);
      @@ -1836,8 +1844,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 'Q': {
                       if (count < 4) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF c(num[0], num[1]);
      @@ -1852,8 +1859,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 't': {
                       if (count < 2) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF e(num[0] + offsetX, num[1] + offsetY);
      @@ -1873,8 +1879,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 'T': {
                       if (count < 2) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       QPointF e(num[0], num[1]);
      @@ -1894,8 +1899,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                   case 'a': {
                       if (count < 7) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       qreal rx = (*num++);
      @@ -1917,8 +1921,7 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                       break;
                   case 'A': {
                       if (count < 7) {
      -                    num += count;
      -                    count = 0;
      +                    ok = false;
                           break;
                       }
                       qreal rx = (*num++);
      @@ -1939,12 +1942,15 @@ static bool parsePathDataFast(const QStringRef &dataStr, QPainterPath &path)
                   }
                       break;
                   default:
      -                return false;
      +                ok = false;
      +                break;
                   }
                   lastMode = pathElem.toLatin1();
      +            if (path.elementCount() > maxElementCount)
      +                ok = false;
               }
           }
      -    return true;
      +    return ok;
       }
       
       static bool parseStyle(QSvgNode *node,
      @@ -2358,6 +2364,27 @@ static bool parseAnimateNode(QSvgNode *parent,
           return true;
       }
       
      +static int parseClockValue(QString str, bool *ok)
      +{
      +    int res = 0;
      +    int ms = 1000;
      +    str = str.trimmed();
      +    if (str.endsWith(QLatin1String("ms"))) {
      +        str.chop(2);
      +        ms = 1;
      +    } else if (str.endsWith(QLatin1String("s"))) {
      +        str.chop(1);
      +    }
      +    double val = ms * toDouble(str, ok);
      +    if (ok) {
      +        if (val > std::numeric_limits::min() && val < std::numeric_limits::max())
      +            res = static_cast(val);
      +        else
      +            *ok = false;
      +    }
      +    return res;
      +}
      +
       static bool parseAnimateColorNode(QSvgNode *parent,
                                         const QXmlStreamAttributes &attributes,
                                         QSvgHandler *handler)
      @@ -2391,23 +2418,13 @@ static bool parseAnimateColorNode(QSvgNode *parent,
               }
           }
       
      -    int ms = 1000;
      -    beginStr = beginStr.trimmed();
      -    if (beginStr.endsWith(QLatin1String("ms"))) {
      -        beginStr.chop(2);
      -        ms = 1;
      -    } else if (beginStr.endsWith(QLatin1String("s"))) {
      -        beginStr.chop(1);
      -    }
      -    durStr = durStr.trimmed();
      -    if (durStr.endsWith(QLatin1String("ms"))) {
      -        durStr.chop(2);
      -        ms = 1;
      -    } else if (durStr.endsWith(QLatin1String("s"))) {
      -        durStr.chop(1);
      -    }
      -    int begin = static_cast(toDouble(beginStr) * ms);
      -    int end   = static_cast((toDouble(durStr) + begin) * ms);
      +    bool ok = true;
      +    int begin = parseClockValue(beginStr, &ok);
      +    if (!ok)
      +        return false;
      +    int end = begin + parseClockValue(durStr, &ok);
      +    if (!ok || end <= begin)
      +        return false;
       
           QSvgAnimateColor *anim = new QSvgAnimateColor(begin, end, 0);
           anim->setArgs((targetStr == QLatin1String("fill")), colors);
      @@ -2497,24 +2514,13 @@ static bool parseAnimateTransformNode(QSvgNode *parent,
               }
           }
       
      -    int ms = 1000;
      -    beginStr = beginStr.trimmed();
      -    if (beginStr.endsWith(QLatin1String("ms"))) {
      -        beginStr.chop(2);
      -        ms = 1;
      -    } else if (beginStr.endsWith(QLatin1String("s"))) {
      -        beginStr.chop(1);
      -    }
      -    int begin = static_cast(toDouble(beginStr) * ms);
      -    durStr = durStr.trimmed();
      -    if (durStr.endsWith(QLatin1String("ms"))) {
      -        durStr.chop(2);
      -        ms = 1;
      -    } else if (durStr.endsWith(QLatin1String("s"))) {
      -        durStr.chop(1);
      -        ms = 1000;
      -    }
      -    int end = static_cast(toDouble(durStr)*ms) + begin;
      +    bool ok = true;
      +    int begin = parseClockValue(beginStr, &ok);
      +    if (!ok)
      +        return false;
      +    int end = begin + parseClockValue(durStr, &ok);
      +    if (!ok || end <= begin)
      +        return false;
       
           QSvgAnimateTransform::TransformType type = QSvgAnimateTransform::Empty;
           if (typeStr == QLatin1String("translate")) {
      @@ -2570,6 +2576,8 @@ static QSvgNode *createCircleNode(QSvgNode *parent,
           qreal ncx = toDouble(cx);
           qreal ncy = toDouble(cy);
           qreal nr  = toDouble(r);
      +    if (nr < 0.0)
      +        return nullptr;
       
           QRectF rect(ncx-nr, ncy-nr, nr*2, nr*2);
           QSvgNode *circle = new QSvgCircle(parent, rect);
      @@ -2980,8 +2988,8 @@ static QSvgNode *createPathNode(QSvgNode *parent,
       
           QPainterPath qpath;
           qpath.setFillRule(Qt::WindingFill);
      -    //XXX do error handling
      -    parsePathDataFast(data, qpath);
      +    if (!parsePathDataFast(data, qpath))
      +        qCWarning(lcSvgHandler, "Invalid path data; path truncated.");
       
           QSvgNode *path = new QSvgPath(parent, qpath);
           return path;
      @@ -3040,15 +3048,16 @@ static QSvgStyleProperty *createRadialGradientNode(QSvgNode *node,
       
           qreal ncx = 0.5;
           qreal ncy = 0.5;
      -    qreal nr  = 0.5;
           if (!cx.isEmpty())
               ncx = toDouble(cx);
           if (!cy.isEmpty())
               ncy = toDouble(cy);
      +
      +    qreal nr = 0.0;
           if (!r.isEmpty())
               nr = toDouble(r);
      -    if (nr < 0.5)
      -        nr = 0.5;
      +    if (nr <= 0.0)
      +        return nullptr;
       
           qreal nfx = ncx;
           if (!fx.isEmpty())
      @@ -3344,7 +3353,9 @@ static QSvgNode *createTextNode(QSvgNode *parent,
           //### editable and rotate not handled
           QSvgHandler::LengthType type;
           qreal nx = parseLength(x, type, handler);
      +    nx = convertToPixels(nx, true, type);
           qreal ny = parseLength(y, type, handler);
      +    ny = convertToPixels(ny, true, type);
       
           QSvgNode *text = new QSvgText(parent, QPointF(nx, ny));
           return text;
      @@ -3685,9 +3696,7 @@ void QSvgHandler::parse()
               case QXmlStreamReader::EndElement:
                   endElement(xml->name());
                   ++remainingUnfinishedElements;
      -            // if we are using somebody else's qxmlstreamreader
      -            // we should not read until the end of the stream
      -            done = !m_ownsReader && (xml->name() == QLatin1String("svg"));
      +            done = (xml->name() == QLatin1String("svg"));
                   break;
               case QXmlStreamReader::Characters:
                   characters(xml->text());
      diff --git a/qtsvg/src/svg/qsvgstructure.cpp b/qtsvg/src/svg/qsvgstructure.cpp
      index b89608b..89c9e4e 100644
      --- a/qtsvg/src/svg/qsvgstructure.cpp
      +++ b/qtsvg/src/svg/qsvgstructure.cpp
      @@ -255,9 +255,13 @@ inline static bool isSupportedSvgFeature(const QString &str)
           };
       
           if (str.length() <= MAX_WORD_LENGTH && str.length() >= MIN_WORD_LENGTH) {
      +        const char16_t unicode44 = str.at(44).unicode();
      +        const char16_t unicode45 = str.at(45).unicode();
      +        if (unicode44 >= sizeof(asso_values) || unicode45 >= sizeof(asso_values))
      +            return false;
               const int key = str.length()
      -                        + asso_values[str.at(45).unicode()]
      -                        + asso_values[str.at(44).unicode()];
      +                        + asso_values[unicode45]
      +                        + asso_values[unicode44];
               if (key <= MAX_HASH_VALUE && key >= 0)
                   return str == QLatin1String(wordlist[key]);
           }
      diff --git a/qtsvg/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp b/qtsvg/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
      index 8f1f03b..36c76ec 100644
      --- a/qtsvg/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
      +++ b/qtsvg/tests/auto/qsvgrenderer/tst_qsvgrenderer.cpp
      @@ -74,6 +74,7 @@ private slots:
           void fillRule();
           void opacity();
           void paths();
      +    void paths2();
           void displayMode();
           void strokeInherit();
           void testFillInheritance();
      @@ -1047,6 +1048,19 @@ void tst_QSvgRenderer::paths()
           }
       }
       
      +void tst_QSvgRenderer::paths2()
      +{
      +    const char *svg =
      +        ""
      +            ""
      +        "";
      +
      +    QByteArray data(svg);
      +    QSvgRenderer renderer(data);
      +    QVERIFY(renderer.isValid());
      +    QCOMPARE(renderer.boundsOnElement(QLatin1String("path1")).toRect(), QRect(3, 8, 10, 5));
      +}
      +
       void tst_QSvgRenderer::displayMode()
       {
           static const char *svgs[] = {
      Submodule qttranslations df1ee9bf..527dcd68:
      diff --git a/qttranslations/translations/qt_pt_BR.ts b/qttranslations/translations/qt_pt_BR.ts
      index 1260277..813d0a6 100644
      --- a/qttranslations/translations/qt_pt_BR.ts
      +++ b/qttranslations/translations/qt_pt_BR.ts
      @@ -2,9 +2,9 @@
       
       
       
      -
      -
      -
      -
      +
      +
      +
      +
       
       
      diff --git a/qttranslations/translations/qt_pt.ts b/qttranslations/translations/qt_pt_PT.ts
      similarity index 100%
      rename from translations/qt_pt.ts
      rename to translations/qt_pt_PT.ts
      Submodule qtvirtualkeyboard 16b4ce79..e8ae4757:
      diff --git a/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp b/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
      index a7c0aad9..cacf33f0 100644
      --- a/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
      +++ b/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputcontext_p.cpp
      @@ -278,8 +278,10 @@ void QVirtualKeyboardInputContextPrivate::onInputItemChanged()
                           For integrated keyboards, make sure it's a sibling to the overlay. The
                           high z-order will make sure it gets events also during a modal session.
                       */
      -                if (isDesktopPanel.isValid() && !isDesktopPanel.toBool())
      -                    vkbPanel->setParentItem(quickItem->window()->contentItem());
      +                if (isDesktopPanel.isValid() && !isDesktopPanel.toBool()) {
      +                    if (QQuickWindow *quickWindow = quickItem->window())
      +                        vkbPanel->setParentItem(quickWindow->contentItem());
      +                }
                   }
               }
           } else {
      @@ -505,6 +507,7 @@ bool QVirtualKeyboardInputContextPrivate::filterEvent(const QEvent *event)
           QEvent::Type type = event->type();
           if (type == QEvent::KeyPress || type == QEvent::KeyRelease) {
               const QKeyEvent *keyEvent = static_cast(event);
      +        const int key = keyEvent->key();
       
               // Keep track of pressed keys update key event state
               if (type == QEvent::KeyPress)
      @@ -518,7 +521,6 @@ bool QVirtualKeyboardInputContextPrivate::filterEvent(const QEvent *event)
                   setState(State::KeyEvent);
       
       #ifdef QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION
      -        int key = keyEvent->key();
               if ((key >= Qt::Key_Left && key <= Qt::Key_Down) || key == Qt::Key_Return) {
                   if (type == QEvent::KeyPress && platformInputContext->isInputPanelVisible()) {
                       activeNavigationKeys += key;
      @@ -533,8 +535,16 @@ bool QVirtualKeyboardInputContextPrivate::filterEvent(const QEvent *event)
       #endif
       
               // Break composing text since the virtual keyboard does not support hard keyboard events
      -        if (!preeditText.isEmpty())
      -            commit();
      +        if (!preeditText.isEmpty()) {
      +            if (type == QEvent::KeyPress && (key == Qt::Key_Delete || key == Qt::Key_Backspace)) {
      +                reset();
      +                Q_Q(QVirtualKeyboardInputContext);
      +                q->clear();
      +                return true;
      +            } else {
      +                commit();
      +            }
      +        }
           }
       #ifdef QT_VIRTUALKEYBOARD_ARROW_KEY_NAVIGATION
           else if (type == QEvent::ShortcutOverride) {
      diff --git a/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp b/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp
      index e64ea4eb..5f74c2a7 100644
      --- a/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp
      +++ b/qtvirtualkeyboard/src/virtualkeyboard/qvirtualkeyboardinputengine.cpp
      @@ -716,9 +716,11 @@ void QVirtualKeyboardInputEngine::timerEvent(QTimerEvent *timerEvent)
       {
           Q_D(QVirtualKeyboardInputEngine);
           if (timerEvent->timerId() == d->repeatTimer) {
      -        d->repeatTimer = 0;
               d->virtualKeyClick(d->activeKey, d->activeKeyText, d->activeKeyModifiers, true);
      -        d->repeatTimer = startTimer(50);
      +        if (!d->repeatCount) {
      +            killTimer(d->repeatTimer);
      +            d->repeatTimer = startTimer(50);
      +        }
               d->repeatCount++;
           }
       }
      diff --git a/qtvirtualkeyboard/tests/auto/inputpanel/data/tst_inputpanel.qml b/qtvirtualkeyboard/tests/auto/inputpanel/data/tst_inputpanel.qml
      index d814f282..f60acc64 100644
      --- a/qtvirtualkeyboard/tests/auto/inputpanel/data/tst_inputpanel.qml
      +++ b/qtvirtualkeyboard/tests/auto/inputpanel/data/tst_inputpanel.qml
      @@ -321,6 +321,30 @@ Rectangle {
                   compare(textInput.text, "A")
               }
       
      +        function test_hardKeyBackspaceClearsInput_data() {
      +            return [
      +                { initLocale: "en_GB", initText: "12345", initCursorPosition: 1, inputSequence: "hello", outputText: "12345", expectedCursorPosition: 1 },
      +            ]
      +        }
      +
      +        function test_hardKeyBackspaceClearsInput(data) {
      +            prepareTest(data)
      +
      +            if (!inputPanel.wordCandidateListVisibleHint)
      +                skip("Prediction/spell correction not enabled")
      +
      +            compare(Qt.inputMethod.locale.name, Qt.locale(data.initLocale).name)
      +            for (var inputIndex in data.inputSequence) {
      +                verify(inputPanel.virtualKeyClick(data.inputSequence[inputIndex]))
      +            }
      +
      +            keyClick(Qt.Key_Backspace)
      +            waitForRendering(textInput)
      +
      +            compare(textInput.text, data.outputText)
      +            compare(textInput.cursorPosition, data.expectedCursorPosition)
      +        }
      +
               function test_hardKeyInput() {
                   prepareTest()
       
      Submodule qtwayland 193420c0..36659e61:
      diff --git a/qtwayland/src/client/configure.json b/qtwayland/src/client/configure.json
      index 2f424580..29222357 100644
      --- a/qtwayland/src/client/configure.json
      +++ b/qtwayland/src/client/configure.json
      @@ -149,8 +149,7 @@
                           "#endif"
                       ]
                   },
      -            "libs": "-ldrm",
      -            "use": "egl"
      +            "use": "drm egl"
               },
               "vulkan-server-buffer": {
                   "label": "Vulkan Buffer Sharing",
      @@ -168,7 +167,8 @@
                           "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
                           "return 0;"
                       ]
      -            }
      +            },
      +            "use": "wayland-client"
               },
               "egl_1_5-wayland": {
                   "label": "EGL 1.5 with Wayland Platform",
      @@ -183,7 +183,7 @@
                           "eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);"
                       ]
                   },
      -            "use": "egl"
      +            "use": "egl wayland-client"
               }
           },
       
      diff --git a/qtwayland/src/client/global/qwaylandclientextension.cpp b/qtwayland/src/client/global/qwaylandclientextension.cpp
      index 125b1e19..edccfe63 100644
      --- a/qtwayland/src/client/global/qwaylandclientextension.cpp
      +++ b/qtwayland/src/client/global/qwaylandclientextension.cpp
      @@ -74,7 +74,10 @@ void QWaylandClientExtensionPrivate::handleRegistryGlobal(void *data, ::wl_regis
       void QWaylandClientExtension::addRegistryListener()
       {
           Q_D(QWaylandClientExtension);
      -    d->waylandIntegration->display()->addRegistryListener(&QWaylandClientExtensionPrivate::handleRegistryGlobal, this);
      +    if (!d->registered) {
      +        d->waylandIntegration->display()->addRegistryListener(&QWaylandClientExtensionPrivate::handleRegistryGlobal, this);
      +        d->registered = true;
      +    }
       }
       
       QWaylandClientExtension::QWaylandClientExtension(const int ver)
      @@ -88,6 +91,13 @@ QWaylandClientExtension::QWaylandClientExtension(const int ver)
           QMetaObject::invokeMethod(this, "addRegistryListener", Qt::QueuedConnection);
       }
       
      +QWaylandClientExtension::~QWaylandClientExtension()
      +{
      +    Q_D(QWaylandClientExtension);
      +    if (d->registered && !QCoreApplication::closingDown())
      +        d->waylandIntegration->display()->removeListener(&QWaylandClientExtensionPrivate::handleRegistryGlobal, this);
      +}
      +
       QtWaylandClient::QWaylandIntegration *QWaylandClientExtension::integration() const
       {
           Q_D(const QWaylandClientExtension);
      diff --git a/qtwayland/src/client/global/qwaylandclientextension.h b/qtwayland/src/client/global/qwaylandclientextension.h
      index 98272e57..5bd28398 100644
      --- a/qtwayland/src/client/global/qwaylandclientextension.h
      +++ b/qtwayland/src/client/global/qwaylandclientextension.h
      @@ -63,6 +63,7 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtension : public QObject
           Q_PROPERTY(bool active READ isActive NOTIFY activeChanged)
       public:
           QWaylandClientExtension(const int version);
      +    ~QWaylandClientExtension();
       
           QtWaylandClient::QWaylandIntegration *integration() const;
           int version() const;
      diff --git a/qtwayland/src/client/global/qwaylandclientextension_p.h b/qtwayland/src/client/global/qwaylandclientextension_p.h
      index 69cc46a0..9091efbe 100644
      --- a/qtwayland/src/client/global/qwaylandclientextension_p.h
      +++ b/qtwayland/src/client/global/qwaylandclientextension_p.h
      @@ -68,6 +68,7 @@ public:
           QtWaylandClient::QWaylandIntegration *waylandIntegration = nullptr;
           int version = -1;
           bool active = false;
      +    bool registered = false;
       };
       
       class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtensionTemplatePrivate : public QWaylandClientExtensionPrivate
      diff --git a/qtwayland/src/client/qwaylanddatadevice.cpp b/qtwayland/src/client/qwaylanddatadevice.cpp
      index 19944a34..fbb5aa91 100644
      --- a/qtwayland/src/client/qwaylanddatadevice.cpp
      +++ b/qtwayland/src/client/qwaylanddatadevice.cpp
      @@ -72,6 +72,8 @@ QWaylandDataDevice::QWaylandDataDevice(QWaylandDataDeviceManager *manager, QWayl
       
       QWaylandDataDevice::~QWaylandDataDevice()
       {
      +    if (wl_data_device_get_version(object()) >= WL_DATA_DEVICE_RELEASE_SINCE_VERSION)
      +        release();
       }
       
       QWaylandDataOffer *QWaylandDataDevice::selectionOffer() const
      @@ -110,7 +112,7 @@ QWaylandDataOffer *QWaylandDataDevice::dragOffer() const
           return m_dragOffer.data();
       }
       
      -bool QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon)
      +bool QWaylandDataDevice::startDrag(QMimeData *mimeData, Qt::DropActions supportedActions, QWaylandWindow *icon)
       {
           auto *seat = m_display->currentInputDevice();
           auto *origin = seat->pointerFocus();
      @@ -123,7 +125,28 @@ bool QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon)
           }
       
           m_dragSource.reset(new QWaylandDataSource(m_display->dndSelectionHandler(), mimeData));
      +
      +    if (wl_data_device_get_version(object()) >= 3)
      +        m_dragSource->set_actions(dropActionsToWl(supportedActions));
      +
           connect(m_dragSource.data(), &QWaylandDataSource::cancelled, this, &QWaylandDataDevice::dragSourceCancelled);
      +    connect(m_dragSource.data(), &QWaylandDataSource::dndResponseUpdated, this, [this](bool accepted, Qt::DropAction action) {
      +            auto drag = static_cast(QGuiApplicationPrivate::platformIntegration()->drag());
      +            // in old versions drop action is not set, so we guess
      +            if (wl_data_source_get_version(m_dragSource->object()) < 3) {
      +                drag->setResponse(accepted);
      +            } else {
      +                QPlatformDropQtResponse response(accepted, action);
      +                drag->setResponse(response);
      +            }
      +    });
      +    connect(m_dragSource.data(), &QWaylandDataSource::dndDropped, this, [](bool accepted, Qt::DropAction action) {
      +        QPlatformDropQtResponse response(accepted, action);
      +        static_cast(QGuiApplicationPrivate::platformIntegration()->drag())->setDropResponse(response);
      +    });
      +    connect(m_dragSource.data(), &QWaylandDataSource::finished, this, []() {
      +        static_cast(QGuiApplicationPrivate::platformIntegration()->drag())->finishDrag();
      +    });
       
           start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial());
           return true;
      @@ -152,7 +175,7 @@ void QWaylandDataDevice::data_device_drop()
               supportedActions = drag->supportedActions();
           } else if (m_dragOffer) {
               dragData = m_dragOffer->mimeData();
      -        supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
      +        supportedActions = m_dragOffer->supportedActions();
           } else {
               return;
           }
      @@ -162,13 +185,17 @@ void QWaylandDataDevice::data_device_drop()
                                                                                 QGuiApplication::keyboardModifiers());
       
           if (drag) {
      -        static_cast(QGuiApplicationPrivate::platformIntegration()->drag())->finishDrag(response);
      +        auto drag =  static_cast(QGuiApplicationPrivate::platformIntegration()->drag());
      +        drag->setDropResponse(response);
      +        drag->finishDrag();
      +    } else if (m_dragOffer) {
      +        m_dragOffer->finish();
           }
       }
       
       void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface, wl_fixed_t x, wl_fixed_t y, wl_data_offer *id)
       {
      -    auto *dragWaylandWindow = QWaylandWindow::fromWlSurface(surface);
      +    auto *dragWaylandWindow = surface ? QWaylandWindow::fromWlSurface(surface) : nullptr;
           if (!dragWaylandWindow)
               return; // Ignore foreign surfaces
       
      @@ -186,7 +213,7 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface,
               supportedActions = drag->supportedActions();
           } else if (m_dragOffer) {
               dragData = m_dragOffer->mimeData();
      -        supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
      +        supportedActions = m_dragOffer->supportedActions();
           }
       
           const QPlatformDragQtResponse &response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions,
      @@ -197,11 +224,7 @@ void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface,
               static_cast(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
           }
       
      -    if (response.isAccepted()) {
      -        wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData());
      -    } else {
      -        wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, nullptr);
      -    }
      +    sendResponse(supportedActions, response);
       }
       
       void QWaylandDataDevice::data_device_leave()
      @@ -235,10 +258,10 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe
               supportedActions = drag->supportedActions();
           } else {
               dragData = m_dragOffer->mimeData();
      -        supportedActions = Qt::CopyAction | Qt::MoveAction | Qt::LinkAction;
      +        supportedActions = m_dragOffer->supportedActions();
           }
       
      -    QPlatformDragQtResponse response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions,
      +    const QPlatformDragQtResponse response = QWindowSystemInterface::handleDrag(m_dragWindow, dragData, m_dragPoint, supportedActions,
                                                                                 QGuiApplication::mouseButtons(),
                                                                                 QGuiApplication::keyboardModifiers());
       
      @@ -246,11 +269,7 @@ void QWaylandDataDevice::data_device_motion(uint32_t time, wl_fixed_t x, wl_fixe
               static_cast(QGuiApplicationPrivate::platformIntegration()->drag())->setResponse(response);
           }
       
      -    if (response.isAccepted()) {
      -        wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, m_dragOffer->firstFormat().toUtf8().constData());
      -    } else {
      -        wl_data_offer_accept(m_dragOffer->object(), m_enterSerial, nullptr);
      -    }
      +    sendResponse(supportedActions, response);
       }
       #endif // QT_CONFIG(draganddrop)
       
      @@ -280,11 +299,6 @@ void QWaylandDataDevice::dragSourceCancelled()
           m_dragSource.reset();
       }
       
      -void QWaylandDataDevice::dragSourceTargetChanged(const QString &mimeType)
      -{
      -    static_cast(QGuiApplicationPrivate::platformIntegration()->drag())->updateTarget(mimeType);
      -}
      -
       QPoint QWaylandDataDevice::calculateDragPosition(int x, int y, QWindow *wnd) const
       {
           QPoint pnt(wl_fixed_to_int(x), wl_fixed_to_int(y));
      @@ -297,6 +311,33 @@ QPoint QWaylandDataDevice::calculateDragPosition(int x, int y, QWindow *wnd) con
           }
           return pnt;
       }
      +
      +void QWaylandDataDevice::sendResponse(Qt::DropActions supportedActions, const QPlatformDragQtResponse &response)
      +{
      +    if (response.isAccepted()) {
      +        if (wl_data_device_get_version(object()) >= 3)
      +            m_dragOffer->set_actions(dropActionsToWl(supportedActions), dropActionsToWl(response.acceptedAction()));
      +
      +        m_dragOffer->accept(m_enterSerial, m_dragOffer->firstFormat());
      +    } else {
      +        m_dragOffer->accept(m_enterSerial, QString());
      +    }
      +}
      +
      +int QWaylandDataDevice::dropActionsToWl(Qt::DropActions actions)
      +{
      +
      +    int wlActions = WL_DATA_DEVICE_MANAGER_DND_ACTION_NONE;
      +    if (actions & Qt::CopyAction)
      +        wlActions |= WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY;
      +    if (actions & (Qt::MoveAction | Qt::TargetMoveAction))
      +        wlActions |= WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE;
      +
      +    // wayland does not support LinkAction at the time of writing
      +    return wlActions;
      +}
      +
      +
       #endif // QT_CONFIG(draganddrop)
       
       }
      diff --git a/qtwayland/src/client/qwaylanddatadevice_p.h b/qtwayland/src/client/qwaylanddatadevice_p.h
      index 16c3ad28..801dcc2c 100644
      --- a/qtwayland/src/client/qwaylanddatadevice_p.h
      +++ b/qtwayland/src/client/qwaylanddatadevice_p.h
      @@ -64,6 +64,7 @@ QT_REQUIRE_CONFIG(wayland_datadevice);
       QT_BEGIN_NAMESPACE
       
       class QMimeData;
      +class QPlatformDragQtResponse;
       class QWindow;
       
       namespace QtWaylandClient {
      @@ -89,7 +90,7 @@ public:
       
       #if QT_CONFIG(draganddrop)
           QWaylandDataOffer *dragOffer() const;
      -    bool startDrag(QMimeData *mimeData, QWaylandWindow *icon);
      +    bool startDrag(QMimeData *mimeData, Qt::DropActions supportedActions, QWaylandWindow *icon);
           void cancelDrag();
       #endif
       
      @@ -109,13 +110,16 @@ private Q_SLOTS:
       
       #if QT_CONFIG(draganddrop)
           void dragSourceCancelled();
      -    void dragSourceTargetChanged(const QString &mimeType);
       #endif
       
       private:
       #if QT_CONFIG(draganddrop)
           QPoint calculateDragPosition(int x, int y, QWindow *wnd) const;
       #endif
      +    void sendResponse(Qt::DropActions supportedActions, const QPlatformDragQtResponse &response);
      +
      +    static int dropActionsToWl(Qt::DropActions dropActions);
      +
       
           QWaylandDisplay *m_display = nullptr;
           QWaylandInputDevice *m_inputDevice = nullptr;
      diff --git a/qtwayland/src/client/qwaylanddatadevicemanager.cpp b/qtwayland/src/client/qwaylanddatadevicemanager.cpp
      index 35d67307..6dc4f77f 100644
      --- a/qtwayland/src/client/qwaylanddatadevicemanager.cpp
      +++ b/qtwayland/src/client/qwaylanddatadevicemanager.cpp
      @@ -50,8 +50,8 @@ QT_BEGIN_NAMESPACE
       
       namespace QtWaylandClient {
       
      -QWaylandDataDeviceManager::QWaylandDataDeviceManager(QWaylandDisplay *display, uint32_t id)
      -    : wl_data_device_manager(display->wl_registry(), id, 1)
      +QWaylandDataDeviceManager::QWaylandDataDeviceManager(QWaylandDisplay *display, int version, uint32_t id)
      +    : wl_data_device_manager(display->wl_registry(), id, qMin(version, 3))
           , m_display(display)
       {
           // Create transfer devices for all input devices.
      diff --git a/qtwayland/src/client/qwaylanddatadevicemanager_p.h b/qtwayland/src/client/qwaylanddatadevicemanager_p.h
      index bd05c0fb..510d9be4 100644
      --- a/qtwayland/src/client/qwaylanddatadevicemanager_p.h
      +++ b/qtwayland/src/client/qwaylanddatadevicemanager_p.h
      @@ -68,7 +68,7 @@ class QWaylandInputDevice;
       class Q_WAYLAND_CLIENT_EXPORT QWaylandDataDeviceManager : public QtWayland::wl_data_device_manager
       {
       public:
      -    QWaylandDataDeviceManager(QWaylandDisplay *display, uint32_t id);
      +    QWaylandDataDeviceManager(QWaylandDisplay *display, int version, uint32_t id);
           ~QWaylandDataDeviceManager() override;
       
           QWaylandDataDevice *getDataDevice(QWaylandInputDevice *inputDevice);
      diff --git a/qtwayland/src/client/qwaylanddataoffer.cpp b/qtwayland/src/client/qwaylanddataoffer.cpp
      index 2297e8a1..fe0ea8c9 100644
      --- a/qtwayland/src/client/qwaylanddataoffer.cpp
      +++ b/qtwayland/src/client/qwaylanddataoffer.cpp
      @@ -82,6 +82,15 @@ QMimeData *QWaylandDataOffer::mimeData()
           return m_mimeData.data();
       }
       
      +Qt::DropActions QWaylandDataOffer::supportedActions() const
      +{
      +    if (wl_data_offer_get_version(const_cast<::wl_data_offer*>(object())) < 3) {
      +        return Qt::MoveAction | Qt::CopyAction;
      +    }
      +
      +    return m_supportedActions;
      +}
      +
       void QWaylandDataOffer::startReceiving(const QString &mimeType, int fd)
       {
           receive(mimeType, fd);
      @@ -93,6 +102,22 @@ void QWaylandDataOffer::data_offer_offer(const QString &mime_type)
           m_mimeData->appendFormat(mime_type);
       }
       
      +void QWaylandDataOffer::data_offer_action(uint32_t dnd_action)
      +{
      +    Q_UNUSED(dnd_action);
      +    // This is the compositor telling the drag target what action it should perform
      +    // It does not map nicely into Qt final drop semantics, other than pretending there is only one supported action?
      +}
      +
      +void QWaylandDataOffer::data_offer_source_actions(uint32_t source_actions)
      +{
      +    m_supportedActions = Qt::DropActions();
      +    if (source_actions & WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE)
      +        m_supportedActions |= Qt::MoveAction;
      +    if (source_actions & WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY)
      +        m_supportedActions |= Qt::CopyAction;
      +}
      +
       QWaylandMimeData::QWaylandMimeData(QWaylandAbstractDataOffer *dataOffer)
           : m_dataOffer(dataOffer)
       {
      @@ -163,17 +188,18 @@ QVariant QWaylandMimeData::retrieveData_sys(const QString &mimeType, QVariant::T
       
       int QWaylandMimeData::readData(int fd, QByteArray &data) const
       {
      -    fd_set readset;
      -    FD_ZERO(&readset);
      -    FD_SET(fd, &readset);
      -    struct timeval timeout;
      +    struct pollfd readset;
      +    readset.fd = fd;
      +    readset.events = POLLIN;
      +    struct timespec timeout;
           timeout.tv_sec = 1;
      -    timeout.tv_usec = 0;
      +    timeout.tv_nsec = 0;
      +
       
           Q_FOREVER {
      -        int ready = select(FD_SETSIZE, &readset, nullptr, nullptr, &timeout);
      +        int ready = qt_safe_poll(&readset, 1, &timeout);
               if (ready < 0) {
      -            qWarning() << "QWaylandDataOffer: select() failed";
      +            qWarning() << "QWaylandDataOffer: qt_safe_poll() failed";
                   return -1;
               } else if (ready == 0) {
                   qWarning("QWaylandDataOffer: timeout reading from pipe");
      diff --git a/qtwayland/src/client/qwaylanddataoffer_p.h b/qtwayland/src/client/qwaylanddataoffer_p.h
      index 9cf1483c..6f667398 100644
      --- a/qtwayland/src/client/qwaylanddataoffer_p.h
      +++ b/qtwayland/src/client/qwaylanddataoffer_p.h
      @@ -82,6 +82,7 @@ public:
           explicit QWaylandDataOffer(QWaylandDisplay *display, struct ::wl_data_offer *offer);
           ~QWaylandDataOffer() override;
           QMimeData *mimeData() override;
      +    Qt::DropActions supportedActions() const;
       
           QString firstFormat() const;
       
      @@ -89,10 +90,13 @@ public:
       
       protected:
           void data_offer_offer(const QString &mime_type) override;
      +    void data_offer_source_actions(uint32_t source_actions) override;
      +    void data_offer_action(uint32_t dnd_action) override;
       
       private:
           QWaylandDisplay *m_display = nullptr;
           QScopedPointer m_mimeData;
      +    Qt::DropActions m_supportedActions;
       };
       
       
      diff --git a/qtwayland/src/client/qwaylanddatasource.cpp b/qtwayland/src/client/qwaylanddatasource.cpp
      index f45122fb..5599cbd4 100644
      --- a/qtwayland/src/client/qwaylanddatasource.cpp
      +++ b/qtwayland/src/client/qwaylanddatasource.cpp
      @@ -101,7 +101,32 @@ void QWaylandDataSource::data_source_send(const QString &mime_type, int32_t fd)
       
       void QWaylandDataSource::data_source_target(const QString &mime_type)
       {
      -    Q_EMIT targetChanged(mime_type);
      +    m_accepted = !mime_type.isEmpty();
      +    Q_EMIT dndResponseUpdated(m_accepted, m_dropAction);
      +}
      +
      +void QWaylandDataSource::data_source_action(uint32_t action)
      +{
      +    Qt::DropAction qtAction = Qt::IgnoreAction;
      +
      +    if (action == WL_DATA_DEVICE_MANAGER_DND_ACTION_MOVE)
      +        qtAction = Qt::MoveAction;
      +    else if (action == WL_DATA_DEVICE_MANAGER_DND_ACTION_COPY)
      +        qtAction = Qt::CopyAction;
      +
      +    m_dropAction = qtAction;
      +    Q_EMIT dndResponseUpdated(m_accepted, m_dropAction);
      +}
      +
      +void QWaylandDataSource::data_source_dnd_finished()
      +{
      +    Q_EMIT finished();
      +}
      +
      +void QWaylandDataSource::data_source_dnd_drop_performed()
      +{
      +
      +    Q_EMIT dndDropped(m_accepted, m_dropAction);
       }
       
       }
      diff --git a/qtwayland/src/client/qwaylanddatasource_p.h b/qtwayland/src/client/qwaylanddatasource_p.h
      index 25afff79..96f07bc3 100644
      --- a/qtwayland/src/client/qwaylanddatasource_p.h
      +++ b/qtwayland/src/client/qwaylanddatasource_p.h
      @@ -77,17 +77,25 @@ public:
           QMimeData *mimeData() const;
       
       Q_SIGNALS:
      -    void targetChanged(const QString &mime_type);
           void cancelled();
      +    void finished();
      +
      +    void dndResponseUpdated(bool accepted, Qt::DropAction action);
      +    void dndDropped(bool accepted, Qt::DropAction action);
       
       protected:
           void data_source_cancelled() override;
           void data_source_send(const QString &mime_type, int32_t fd) override;
           void data_source_target(const QString &mime_type) override;
      +    void data_source_dnd_drop_performed() override;
      +    void data_source_dnd_finished() override;
      +    void data_source_action(uint32_t action) override;
       
       private:
           QWaylandDisplay *m_display = nullptr;
           QMimeData *m_mime_data = nullptr;
      +    bool m_accepted = false;
      +    Qt::DropAction m_dropAction = Qt::IgnoreAction;
       };
       
       }
      diff --git a/qtwayland/src/client/qwaylanddisplay.cpp b/qtwayland/src/client/qwaylanddisplay.cpp
      index f10c1f79..86045a35 100644
      --- a/qtwayland/src/client/qwaylanddisplay.cpp
      +++ b/qtwayland/src/client/qwaylanddisplay.cpp
      @@ -85,10 +85,203 @@
       
       #include 
       
      +#include  // for std::tie
      +
      +static void checkWaylandError(struct wl_display *display)
      +{
      +    int ecode = wl_display_get_error(display);
      +    if ((ecode == EPIPE || ecode == ECONNRESET)) {
      +        // special case this to provide a nicer error
      +        qWarning("The Wayland connection broke. Did the Wayland compositor die?");
      +    } else {
      +        qWarning("The Wayland connection experienced a fatal error: %s", strerror(ecode));
      +    }
      +    _exit(1);
      +}
      +
       QT_BEGIN_NAMESPACE
       
       namespace QtWaylandClient {
       
      +class EventThread : public QThread
      +{
      +    Q_OBJECT
      +public:
      +    enum OperatingMode {
      +        EmitToDispatch, // Emit the signal, allow dispatching in a differnt thread.
      +        SelfDispatch, // Dispatch the events inside this thread.
      +    };
      +
      +    EventThread(struct wl_display * wl, struct wl_event_queue * ev_queue,
      +                OperatingMode mode)
      +        : m_fd(wl_display_get_fd(wl))
      +        , m_pipefd{ -1, -1 }
      +        , m_wldisplay(wl)
      +        , m_wlevqueue(ev_queue)
      +        , m_mode(mode)
      +        , m_reading(true)
      +        , m_quitting(false)
      +    {
      +        setObjectName(QStringLiteral("WaylandEventThread"));
      +    }
      +
      +    void readAndDispatchEvents()
      +    {
      +        /*
      +         * Dispatch pending events and flush the requests at least once. If the event thread
      +         * is not reading, try to call _prepare_read() to allow the event thread to poll().
      +         * If that fails, re-try dispatch & flush again until _prepare_read() is successful.
      +         *
      +         * This allow any call to readAndDispatchEvents() to start event thread's polling,
      +         * not only the one issued from event thread's waitForReading(), which means functions
      +         * called from dispatch_pending() can safely spin an event loop.
      +         */
      +        for (;;) {
      +            if (dispatchQueuePending() < 0) {
      +                checkWaylandError(m_wldisplay);
      +                return;
      +            }
      +
      +            wl_display_flush(m_wldisplay);
      +
      +            // We have to check if event thread is reading every time we dispatch
      +            // something, as that may recursively call this function.
      +            if (m_reading.loadAcquire())
      +                break;
      +
      +            if (prepareReadQueue() == 0) {
      +                QMutexLocker l(&m_mutex);
      +                m_reading.storeRelease(true);
      +                m_cond.wakeOne();
      +                break;
      +            }
      +        }
      +    }
      +
      +    void stop()
      +    {
      +        // We have to both write to the pipe and set the flag, as the thread may be
      +        // either in the poll() or waiting for _prepare_read().
      +        if (m_pipefd[1] != -1 && write(m_pipefd[1], "\0", 1) == -1)
      +            qWarning("Failed to write to the pipe: %s.", strerror(errno));
      +
      +        {
      +            QMutexLocker l(&m_mutex);
      +            m_quitting = true;
      +            m_cond.wakeOne();
      +        }
      +
      +        wait();
      +    }
      +
      +Q_SIGNALS:
      +    void needReadAndDispatch();
      +
      +protected:
      +    void run() override
      +    {
      +        // we use this pipe to make the loop exit otherwise if we simply used a flag on the loop condition, if stop() gets
      +        // called while poll() is blocking the thread will never quit since there are no wayland messages coming anymore.
      +        struct Pipe
      +        {
      +            Pipe(int *fds)
      +                : fds(fds)
      +            {
      +                if (qt_safe_pipe(fds) != 0)
      +                    qWarning("Pipe creation failed. Quitting may hang.");
      +            }
      +            ~Pipe()
      +            {
      +                if (fds[0] != -1) {
      +                    close(fds[0]);
      +                    close(fds[1]);
      +                }
      +            }
      +
      +            int *fds;
      +        } pipe(m_pipefd);
      +
      +        // Make the main thread call wl_prepare_read(), dispatch the pending messages and flush the
      +        // outbound ones. Wait until it's done before proceeding, unless we're told to quit.
      +        while (waitForReading()) {
      +            pollfd fds[2] = { { m_fd, POLLIN, 0 }, { m_pipefd[0], POLLIN, 0 } };
      +            poll(fds, 2, -1);
      +
      +            if (fds[1].revents & POLLIN) {
      +                // we don't really care to read the byte that was written here since we're closing down
      +                wl_display_cancel_read(m_wldisplay);
      +                break;
      +            }
      +
      +            if (fds[0].revents & POLLIN)
      +                wl_display_read_events(m_wldisplay);
      +                // The polll was succesfull and the event thread did the wl_display_read_events(). On the next iteration of the loop
      +                // the event sent to the main thread will cause it to dispatch the messages just read, unless the loop exits in which
      +                // case we don't care anymore about them.
      +            else
      +                wl_display_cancel_read(m_wldisplay);
      +        }
      +    }
      +
      +private:
      +    bool waitForReading()
      +    {
      +        Q_ASSERT(QThread::currentThread() == this);
      +
      +        m_reading.storeRelease(false);
      +
      +        if (m_mode == SelfDispatch) {
      +            readAndDispatchEvents();
      +        } else {
      +            Q_EMIT needReadAndDispatch();
      +
      +            QMutexLocker lock(&m_mutex);
      +            // m_reading might be set from our emit or some other invocation of
      +            // readAndDispatchEvents().
      +            while (!m_reading.loadRelaxed() && !m_quitting)
      +                m_cond.wait(&m_mutex);
      +        }
      +
      +        return !m_quitting;
      +    }
      +
      +    int dispatchQueuePending()
      +    {
      +        if (m_wlevqueue)
      +            return wl_display_dispatch_queue_pending(m_wldisplay, m_wlevqueue);
      +        else
      +            return wl_display_dispatch_pending(m_wldisplay);
      +    }
      +
      +    int prepareReadQueue()
      +    {
      +        if (m_wlevqueue)
      +            return wl_display_prepare_read_queue(m_wldisplay, m_wlevqueue);
      +        else
      +            return wl_display_prepare_read(m_wldisplay);
      +    }
      +
      +    int m_fd;
      +    int m_pipefd[2];
      +    wl_display *m_wldisplay;
      +    wl_event_queue *m_wlevqueue;
      +    OperatingMode m_mode;
      +
      +    /* Concurrency note when operating in EmitToDispatch mode:
      +     * m_reading is set to false inside event thread's waitForReading(), and is
      +     * set to true inside main thread's readAndDispatchEvents().
      +     * The lock is not taken when setting m_reading to false, as the main thread
      +     * is not actively waiting for it to turn false. However, the lock is taken
      +     * inside readAndDispatchEvents() before setting m_reading to true,
      +     * as the event thread is actively waiting for it under the wait condition.
      +     */
      +
      +    QAtomicInteger m_reading;
      +    bool m_quitting;
      +    QMutex m_mutex;
      +    QWaitCondition m_cond;
      +};
      +
       Q_LOGGING_CATEGORY(lcQpaWayland, "qt.qpa.wayland"); // for general (uncategorized) Wayland platform logging
       
       struct wl_surface *QWaylandDisplay::createSurface(void *handle)
      @@ -158,17 +351,16 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
           if (!mXkbContext)
               qCWarning(lcQpaWayland, "failed to create xkb context");
       #endif
      -
      -    forceRoundTrip();
      -
      -    if (!mWaitingScreens.isEmpty()) {
      -        // Give wl_output.done and zxdg_output_v1.done events a chance to arrive
      -        forceRoundTrip();
      -    }
       }
       
       QWaylandDisplay::~QWaylandDisplay(void)
       {
      +    if (m_eventThread)
      +        m_eventThread->stop();
      +
      +    if (m_frameEventQueueThread)
      +        m_frameEventQueueThread->stop();
      +
           if (mSyncCallback)
               wl_callback_destroy(mSyncCallback);
       
      @@ -189,6 +381,18 @@ QWaylandDisplay::~QWaylandDisplay(void)
               wl_display_disconnect(mDisplay);
       }
       
      +// Steps which is called just after constructor. This separates registry_global() out of the constructor
      +// so that factory functions in integration can be overridden.
      +void QWaylandDisplay::initialize()
      +{
      +    forceRoundTrip();
      +
      +    if (!mWaitingScreens.isEmpty()) {
      +        // Give wl_output.done and zxdg_output_v1.done events a chance to arrive
      +        forceRoundTrip();
      +    }
      +}
      +
       void QWaylandDisplay::ensureScreen()
       {
           if (!mScreens.empty() || mPlaceholderScreen)
      @@ -203,98 +407,37 @@ void QWaylandDisplay::ensureScreen()
       
       void QWaylandDisplay::checkError() const
       {
      -    int ecode = wl_display_get_error(mDisplay);
      -    if ((ecode == EPIPE || ecode == ECONNRESET)) {
      -        // special case this to provide a nicer error
      -        qWarning("The Wayland connection broke. Did the Wayland compositor die?");
      -    } else {
      -        qWarning("The Wayland connection experienced a fatal error: %s", strerror(ecode));
      -    }
      -    _exit(1);
      +    checkWaylandError(mDisplay);
       }
       
      +// Called in main thread, either from queued signal or directly.
       void QWaylandDisplay::flushRequests()
       {
      -    if (wl_display_prepare_read(mDisplay) == 0) {
      -        wl_display_read_events(mDisplay);
      -    }
      -
      -    if (wl_display_dispatch_pending(mDisplay) < 0)
      -        checkError();
      -
      -    {
      -        QReadLocker locker(&m_frameQueueLock);
      -        for (const FrameQueue &q : mExternalQueues) {
      -            QMutexLocker locker(q.mutex);
      -            while (wl_display_prepare_read_queue(mDisplay, q.queue) != 0)
      -                wl_display_dispatch_queue_pending(mDisplay, q.queue);
      -            wl_display_read_events(mDisplay);
      -            wl_display_dispatch_queue_pending(mDisplay, q.queue);
      -        }
      -    }
      -
      -    wl_display_flush(mDisplay);
      +    m_eventThread->readAndDispatchEvents();
       }
       
      -void QWaylandDisplay::blockingReadEvents()
      +// We have to wait until we have an eventDispatcher before creating the eventThread,
      +// otherwise forceRoundTrip() may block inside _events_read() because eventThread is
      +// polling.
      +void QWaylandDisplay::initEventThread()
       {
      -    if (wl_display_dispatch(mDisplay) < 0)
      -        checkError();
      -}
      +    m_eventThread.reset(
      +            new EventThread(mDisplay, /* default queue */ nullptr, EventThread::EmitToDispatch));
      +    connect(m_eventThread.get(), &EventThread::needReadAndDispatch, this,
      +            &QWaylandDisplay::flushRequests, Qt::QueuedConnection);
      +    m_eventThread->start();
       
      -void QWaylandDisplay::destroyFrameQueue(const QWaylandDisplay::FrameQueue &q)
      -{
      -    QWriteLocker locker(&m_frameQueueLock);
      -    auto it = std::find_if(mExternalQueues.begin(),
      -                           mExternalQueues.end(),
      -                           [&q] (const QWaylandDisplay::FrameQueue &other){ return other.queue == q.queue; });
      -    Q_ASSERT(it != mExternalQueues.end());
      -    mExternalQueues.erase(it);
      -    if (q.queue != nullptr)
      -        wl_event_queue_destroy(q.queue);
      -    delete q.mutex;
      +    // wl_display_disconnect() free this.
      +    m_frameEventQueue = wl_display_create_queue(mDisplay);
      +    m_frameEventQueueThread.reset(
      +            new EventThread(mDisplay, m_frameEventQueue, EventThread::SelfDispatch));
      +    m_frameEventQueueThread->start();
       }
       
      -QWaylandDisplay::FrameQueue QWaylandDisplay::createFrameQueue()
      -{
      -    QWriteLocker locker(&m_frameQueueLock);
      -    FrameQueue q{createEventQueue()};
      -    mExternalQueues.append(q);
      -    return q;
      -}
      -
      -wl_event_queue *QWaylandDisplay::createEventQueue()
      -{
      -    return wl_display_create_queue(mDisplay);
      -}
      -
      -void QWaylandDisplay::dispatchQueueWhile(wl_event_queue *queue, std::function condition, int timeout)
      +void QWaylandDisplay::blockingReadEvents()
       {
      -    if (!condition())
      -        return;
      -
      -    QElapsedTimer timer;
      -    timer.start();
      -    struct pollfd pFd = qt_make_pollfd(wl_display_get_fd(mDisplay), POLLIN);
      -    while (timeout == -1 || timer.elapsed() < timeout) {
      -        while (wl_display_prepare_read_queue(mDisplay, queue) != 0)
      -            wl_display_dispatch_queue_pending(mDisplay, queue);
      -
      -        wl_display_flush(mDisplay);
      -
      -        const int remaining = qMax(timeout - timer.elapsed(), 0ll);
      -        const int pollTimeout = timeout == -1 ? -1 : remaining;
      -        if (qt_poll_msecs(&pFd, 1, pollTimeout) > 0)
      -            wl_display_read_events(mDisplay);
      -        else
      -            wl_display_cancel_read(mDisplay);
      -
      -        if (wl_display_dispatch_queue_pending(mDisplay, queue) < 0)
      -            checkError();
      -
      -        if (!condition())
      -            break;
      -    }
      +    if (wl_display_dispatch(mDisplay) < 0)
      +        checkWaylandError(mDisplay);
       }
       
       QWaylandScreen *QWaylandDisplay::screenForOutput(struct wl_output *output) const
      @@ -345,7 +488,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
           if (interface == QStringLiteral("wl_output")) {
               mWaitingScreens << new QWaylandScreen(this, version, id);
           } else if (interface == QStringLiteral("wl_compositor")) {
      -        mCompositorVersion = qMin((int)version, 3);
      +        mCompositorVersion = qMin((int)version, 4);
               mCompositor.init(registry, id, mCompositorVersion);
           } else if (interface == QStringLiteral("wl_shm")) {
               mShm.reset(new QWaylandShm(this, version, id));
      @@ -354,7 +497,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
               mInputDevices.append(inputDevice);
       #if QT_CONFIG(wayland_datadevice)
           } else if (interface == QStringLiteral("wl_data_device_manager")) {
      -        mDndSelectionHandler.reset(new QWaylandDataDeviceManager(this, id));
      +        mDndSelectionHandler.reset(new QWaylandDataDeviceManager(this, version, id));
       #endif
           } else if (interface == QStringLiteral("qt_surface_extension")) {
               mWindowExtension.reset(new QtWayland::qt_surface_extension(registry, id, 1));
      @@ -452,9 +595,10 @@ void QWaylandDisplay::addRegistryListener(RegistryListener listener, void *data)
       
       void QWaylandDisplay::removeListener(RegistryListener listener, void *data)
       {
      -    std::remove_if(mRegistryListeners.begin(), mRegistryListeners.end(), [=](Listener l){
      +    auto iter = std::remove_if(mRegistryListeners.begin(), mRegistryListeners.end(), [=](Listener l){
               return (l.listener == listener && l.data == data);
           });
      +    mRegistryListeners.erase(iter, mRegistryListeners.end());
       }
       
       uint32_t QWaylandDisplay::currentTimeMillisec()
      @@ -467,50 +611,9 @@ uint32_t QWaylandDisplay::currentTimeMillisec()
           return 0;
       }
       
      -static void
      -sync_callback(void *data, struct wl_callback *callback, uint32_t serial)
      -{
      -    Q_UNUSED(serial)
      -    bool *done = static_cast(data);
      -
      -    *done = true;
      -
      -    // If the wl_callback done event is received after the condition check in the while loop in
      -    // forceRoundTrip(), but before the call to processEvents, the call to processEvents may block
      -    // forever if no more events are posted (eventhough the callback is handled in response to the
      -    // aboutToBlock signal). Hence, we wake up the event dispatcher so forceRoundTrip may return.
      -    // (QTBUG-64696)
      -    if (auto *dispatcher = QThread::currentThread()->eventDispatcher())
      -        dispatcher->wakeUp();
      -
      -    wl_callback_destroy(callback);
      -}
      -
      -static const struct wl_callback_listener sync_listener = {
      -    sync_callback
      -};
      -
       void QWaylandDisplay::forceRoundTrip()
       {
      -    // wl_display_roundtrip() works on the main queue only,
      -    // but we use a separate one, so basically reimplement it here
      -    int ret = 0;
      -    bool done = false;
      -    wl_callback *callback = wl_display_sync(mDisplay);
      -    wl_callback_add_listener(callback, &sync_listener, &done);
      -    flushRequests();
      -    if (QThread::currentThread()->eventDispatcher()) {
      -        while (!done && ret >= 0) {
      -            QThread::currentThread()->eventDispatcher()->processEvents(QEventLoop::WaitForMoreEvents);
      -            ret = wl_display_dispatch_pending(mDisplay);
      -        }
      -    } else {
      -        while (!done && ret >= 0)
      -            ret = wl_display_dispatch(mDisplay);
      -    }
      -
      -    if (ret == -1 && !done)
      -        wl_callback_destroy(callback);
      +     wl_display_roundtrip(mDisplay);
       }
       
       bool QWaylandDisplay::supportsWindowDecoration() const
      @@ -574,14 +677,10 @@ void QWaylandDisplay::handleKeyboardFocusChanged(QWaylandInputDevice *inputDevic
           if (mLastKeyboardFocus == keyboardFocus)
               return;
       
      -    if (mWaylandIntegration->mShellIntegration) {
      -        mWaylandIntegration->mShellIntegration->handleKeyboardFocusChanged(keyboardFocus, mLastKeyboardFocus);
      -    } else {
      -        if (keyboardFocus)
      -            handleWindowActivated(keyboardFocus);
      -        if (mLastKeyboardFocus)
      -            handleWindowDeactivated(mLastKeyboardFocus);
      -    }
      +    if (keyboardFocus)
      +        handleWindowActivated(keyboardFocus);
      +    if (mLastKeyboardFocus)
      +        handleWindowDeactivated(mLastKeyboardFocus);
       
           mLastKeyboardFocus = keyboardFocus;
       }
      @@ -600,6 +699,19 @@ void QWaylandDisplay::handleWaylandSync()
           QWindow *activeWindow = mActiveWindows.empty() ? nullptr : mActiveWindows.last()->window();
           if (activeWindow != QGuiApplication::focusWindow())
               QWindowSystemInterface::handleWindowActivated(activeWindow);
      +
      +    if (!activeWindow) {
      +        if (lastInputDevice()) {
      +#if QT_CONFIG(clipboard)
      +            if (auto *dataDevice = lastInputDevice()->dataDevice())
      +                dataDevice->invalidateSelectionOffer();
      +#endif
      +#if QT_CONFIG(wayland_client_primary_selection)
      +            if (auto *device = lastInputDevice()->primarySelectionDevice())
      +                device->invalidateSelectionOffer();
      +#endif
      +        }
      +    }
       }
       
       const wl_callback_listener QWaylandDisplay::syncCallbackListener = {
      @@ -626,6 +738,13 @@ QWaylandInputDevice *QWaylandDisplay::defaultInputDevice() const
           return mInputDevices.isEmpty() ? 0 : mInputDevices.first();
       }
       
      +bool QWaylandDisplay::isKeyboardAvailable() const
      +{
      +    return std::any_of(
      +            mInputDevices.constBegin(), mInputDevices.constEnd(),
      +            [this](const QWaylandInputDevice *device) { return device->keyboard() != nullptr; });
      +}
      +
       #if QT_CONFIG(cursor)
       
       QWaylandCursor *QWaylandDisplay::waylandCursor()
      @@ -652,4 +771,6 @@ QWaylandCursorTheme *QWaylandDisplay::loadCursorTheme(const QString &name, int p
       
       } // namespace QtWaylandClient
       
      +#include "qwaylanddisplay.moc"
      +
       QT_END_NAMESPACE
      diff --git a/qtwayland/src/client/qwaylanddisplay_p.h b/qtwayland/src/client/qwaylanddisplay_p.h
      index 3b092bc8..42bc661d 100644
      --- a/qtwayland/src/client/qwaylanddisplay_p.h
      +++ b/qtwayland/src/client/qwaylanddisplay_p.h
      @@ -109,6 +109,7 @@ class QWaylandSurface;
       class QWaylandShellIntegration;
       class QWaylandCursor;
       class QWaylandCursorTheme;
      +class EventThread;
       
       typedef void (*RegistryListener)(void *data,
                                        struct wl_registry *registry,
      @@ -120,15 +121,11 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandDisplay : public QObject, public QtWayland
           Q_OBJECT
       
       public:
      -    struct FrameQueue {
      -        FrameQueue(wl_event_queue *q = nullptr) : queue(q), mutex(new QMutex) {}
      -        wl_event_queue *queue;
      -        QMutex *mutex;
      -    };
      -
           QWaylandDisplay(QWaylandIntegration *waylandIntegration);
           ~QWaylandDisplay(void) override;
       
      +    void initialize();
      +
       #if QT_CONFIG(xkbcommon)
           struct xkb_context *xkbContext() const { return mXkbContext.get(); }
       #endif
      @@ -210,11 +207,11 @@ public:
           void handleKeyboardFocusChanged(QWaylandInputDevice *inputDevice);
           void handleWindowDestroyed(QWaylandWindow *window);
       
      -    wl_event_queue *createEventQueue();
      -    FrameQueue createFrameQueue();
      -    void destroyFrameQueue(const FrameQueue &q);
      -    void dispatchQueueWhile(wl_event_queue *queue, std::function condition, int timeout = -1);
      +    wl_event_queue *frameEventQueue() { return m_frameEventQueue; };
      +
      +    bool isKeyboardAvailable() const;
       
      +    void initEventThread();
       public slots:
           void blockingReadEvents();
           void flushRequests();
      @@ -237,6 +234,9 @@ private:
           };
       
           struct wl_display *mDisplay = nullptr;
      +    QScopedPointer m_eventThread;
      +    wl_event_queue *m_frameEventQueue = nullptr;
      +    QScopedPointer m_frameEventQueueThread;
           QtWayland::wl_compositor mCompositor;
           QScopedPointer mShm;
           QList mWaitingScreens;
      @@ -273,11 +273,9 @@ private:
           QWaylandInputDevice *mLastInputDevice = nullptr;
           QPointer mLastInputWindow;
           QPointer mLastKeyboardFocus;
      -    QVector mActiveWindows;
      -    QVector mExternalQueues;
      +    QList mActiveWindows;
           struct wl_callback *mSyncCallback = nullptr;
           static const wl_callback_listener syncCallbackListener;
      -    QReadWriteLock m_frameQueueLock;
       
           bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull();
       
      diff --git a/qtwayland/src/client/qwaylanddnd.cpp b/qtwayland/src/client/qwaylanddnd.cpp
      index 6535aa16..7c53f5fa 100644
      --- a/qtwayland/src/client/qwaylanddnd.cpp
      +++ b/qtwayland/src/client/qwaylanddnd.cpp
      @@ -66,7 +66,7 @@ void QWaylandDrag::startDrag()
       {
           QBasicDrag::startDrag();
           QWaylandWindow *icon = static_cast(shapedPixmapWindow()->handle());
      -    if (m_display->currentInputDevice()->dataDevice()->startDrag(drag()->mimeData(), icon)) {
      +    if (m_display->currentInputDevice()->dataDevice()->startDrag(drag()->mimeData(), drag()->supportedActions(), icon)) {
               icon->addAttachOffset(-drag()->hotSpot());
           } else {
               // Cancelling immediately does not work, since the event loop for QDrag::exec is started
      @@ -80,6 +80,9 @@ void QWaylandDrag::cancel()
           QBasicDrag::cancel();
       
           m_display->currentInputDevice()->dataDevice()->cancelDrag();
      +
      +    if (drag())
      +        drag()->deleteLater();
       }
       
       void QWaylandDrag::move(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardModifiers mods)
      @@ -103,33 +106,41 @@ void QWaylandDrag::endDrag()
           m_display->currentInputDevice()->handleEndDrag();
       }
       
      -void QWaylandDrag::updateTarget(const QString &mimeType)
      +void QWaylandDrag::setResponse(bool accepted)
       {
      -    setCanDrop(!mimeType.isEmpty());
      -
      -    if (canDrop()) {
      -        updateCursor(defaultAction(drag()->supportedActions(), m_display->currentInputDevice()->modifiers()));
      -    } else {
      -        updateCursor(Qt::IgnoreAction);
      -    }
      +    // This method is used for old DataDevices where the drag action is not communicated
      +    Qt::DropAction action = defaultAction(drag()->supportedActions(), m_display->currentInputDevice()->modifiers());
      +    setResponse(QPlatformDropQtResponse(accepted, action));
       }
       
      -void QWaylandDrag::setResponse(const QPlatformDragQtResponse &response)
      +void QWaylandDrag::setResponse(const QPlatformDropQtResponse &response)
       {
           setCanDrop(response.isAccepted());
       
           if (canDrop()) {
      -        updateCursor(defaultAction(drag()->supportedActions(), m_display->currentInputDevice()->modifiers()));
      +        updateCursor(response.acceptedAction());
           } else {
               updateCursor(Qt::IgnoreAction);
           }
       }
       
      -void QWaylandDrag::finishDrag(const QPlatformDropQtResponse &response)
      +void QWaylandDrag::setDropResponse(const QPlatformDropQtResponse &response)
       {
           setExecutedDropAction(response.acceptedAction());
      +}
      +
      +void QWaylandDrag::finishDrag()
      +{
           QKeyEvent event(QEvent::KeyPress, Qt::Key_Escape, Qt::NoModifier);
           eventFilter(shapedPixmapWindow(), &event);
      +
      +    if (drag())
      +        drag()->deleteLater();
      +}
      +
      +bool QWaylandDrag::ownsDragObject() const
      +{
      +    return true;
       }
       
       }
      diff --git a/qtwayland/src/client/qwaylanddnd_p.h b/qtwayland/src/client/qwaylanddnd_p.h
      index 474fe2ab..46f629ac 100644
      --- a/qtwayland/src/client/qwaylanddnd_p.h
      +++ b/qtwayland/src/client/qwaylanddnd_p.h
      @@ -71,9 +71,10 @@ public:
           QWaylandDrag(QWaylandDisplay *display);
           ~QWaylandDrag() override;
       
      -    void updateTarget(const QString &mimeType);
      -    void setResponse(const QPlatformDragQtResponse &response);
      -    void finishDrag(const QPlatformDropQtResponse &response);
      +    void setResponse(bool accepted);
      +    void setResponse(const QPlatformDropQtResponse &response);
      +    void setDropResponse(const QPlatformDropQtResponse &response);
      +    void finishDrag();
       
       protected:
           void startDrag() override;
      @@ -82,6 +83,7 @@ protected:
           void drop(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardModifiers mods) override;
           void endDrag() override;
       
      +    bool ownsDragObject() const override;
       
       private:
           QWaylandDisplay *m_display = nullptr;
      diff --git a/qtwayland/src/client/qwaylandinputcontext.cpp b/qtwayland/src/client/qwaylandinputcontext.cpp
      index ef5aa375..e290baa2 100644
      --- a/qtwayland/src/client/qwaylandinputcontext.cpp
      +++ b/qtwayland/src/client/qwaylandinputcontext.cpp
      @@ -51,6 +51,10 @@
       #include "qwaylandinputmethodeventbuilder_p.h"
       #include "qwaylandwindow_p.h"
       
      +#if QT_CONFIG(xkbcommon)
      +#include 
      +#endif
      +
       QT_BEGIN_NAMESPACE
       
       Q_LOGGING_CATEGORY(qLcQpaInputMethods, "qt.qpa.input.methods")
      @@ -383,8 +387,10 @@ void QWaylandTextInput::zwp_text_input_v2_input_method_changed(uint32_t serial,
       Qt::KeyboardModifiers QWaylandTextInput::modifiersToQtModifiers(uint32_t modifiers)
       {
           Qt::KeyboardModifiers ret = Qt::NoModifier;
      -    for (int i = 0; modifiers >>= 1; ++i) {
      -        ret |= m_modifiersMap[i];
      +    for (int i = 0; i < m_modifiersMap.size(); ++i) {
      +        if (modifiers & (1 << i)) {
      +            ret |= m_modifiersMap[i];
      +        }
           }
           return ret;
       }
      diff --git a/qtwayland/src/client/qwaylandinputdevice.cpp b/qtwayland/src/client/qwaylandinputdevice.cpp
      index 613fe862..c3cc4eca 100644
      --- a/qtwayland/src/client/qwaylandinputdevice.cpp
      +++ b/qtwayland/src/client/qwaylandinputdevice.cpp
      @@ -685,6 +685,11 @@ public:
       
       void QWaylandInputDevice::Pointer::pointer_leave(uint32_t time, struct wl_surface *surface)
       {
      +    invalidateFocus();
      +    mButtons = Qt::NoButton;
      +
      +    mParent->mTime = time;
      +
           // The event may arrive after destroying the window, indicated by
           // a null surface.
           if (!surface)
      @@ -696,11 +701,6 @@ void QWaylandInputDevice::Pointer::pointer_leave(uint32_t time, struct wl_surfac
       
           if (!QWaylandWindow::mouseGrab())
               setFrameEvent(new LeaveEvent(window, mSurfacePos, mGlobalPos));
      -
      -    invalidateFocus();
      -    mButtons = Qt::NoButton;
      -
      -    mParent->mTime = time;
       }
       
       class MotionEvent : public QWaylandPointerEvent
      @@ -1300,14 +1300,6 @@ void QWaylandInputDevice::Keyboard::handleFocusDestroyed()
       void QWaylandInputDevice::Keyboard::handleFocusLost()
       {
           mFocus = nullptr;
      -#if QT_CONFIG(clipboard)
      -    if (auto *dataDevice = mParent->dataDevice())
      -        dataDevice->invalidateSelectionOffer();
      -#endif
      -#if QT_CONFIG(wayland_client_primary_selection)
      -    if (auto *device = mParent->primarySelectionDevice())
      -        device->invalidateSelectionOffer();
      -#endif
           mParent->mQDisplay->handleKeyboardFocusChanged(mParent);
           mRepeatTimer.stop();
       }
      diff --git a/qtwayland/src/client/qwaylandintegration.cpp b/qtwayland/src/client/qwaylandintegration.cpp
      index c53ccb78..fbf00c6b 100644
      --- a/qtwayland/src/client/qwaylandintegration.cpp
      +++ b/qtwayland/src/client/qwaylandintegration.cpp
      @@ -192,14 +192,18 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const
       
       void QWaylandIntegration::initialize()
       {
      +    mDisplay->initEventThread();
      +
      +    // Call after eventDispatcher is fully connected, for QWaylandDisplay::forceRoundTrip()
      +    mDisplay->initialize();
      +
      +    // But the aboutToBlock() and awake() should be connected after initializePlatform().
      +    // Otherwise the connected flushRequests() may consumes up all events before processEvents starts to wait,
      +    // so that processEvents(QEventLoop::WaitForMoreEvents) may be blocked in the forceRoundTrip().
           QAbstractEventDispatcher *dispatcher = QGuiApplicationPrivate::eventDispatcher;
           QObject::connect(dispatcher, SIGNAL(aboutToBlock()), mDisplay.data(), SLOT(flushRequests()));
           QObject::connect(dispatcher, SIGNAL(awake()), mDisplay.data(), SLOT(flushRequests()));
       
      -    int fd = wl_display_get_fd(mDisplay->wl_display());
      -    QSocketNotifier *sn = new QSocketNotifier(fd, QSocketNotifier::Read, mDisplay.data());
      -    QObject::connect(sn, SIGNAL(activated(QSocketDescriptor)), mDisplay.data(), SLOT(flushRequests()));
      -
           // Qt does not support running with no screens
           mDisplay->ensureScreen();
       }
      @@ -262,6 +266,14 @@ QWaylandDisplay *QWaylandIntegration::display() const
           return mDisplay.data();
       }
       
      +Qt::KeyboardModifiers QWaylandIntegration::queryKeyboardModifiers() const
      +{
      +    if (auto *seat = mDisplay->currentInputDevice()) {
      +        return seat->modifiers();
      +    }
      +    return Qt::NoModifier;
      +}
      +
       QList QWaylandIntegration::possibleKeys(const QKeyEvent *event) const
       {
           if (auto *seat = mDisplay->currentInputDevice())
      @@ -479,7 +491,7 @@ void QWaylandIntegration::reconfigureInputContext()
           }
       #endif
       
      -    qCDebug(lcQpaWayland) << "using input method:" << inputContext()->metaObject()->className();
      +    qCDebug(lcQpaWayland) << "using input method:" << (inputContext() ? inputContext()->metaObject()->className() : "");
       }
       
       QWaylandShellIntegration *QWaylandIntegration::createShellIntegration(const QString &integrationName)
      diff --git a/qtwayland/src/client/qwaylandintegration_p.h b/qtwayland/src/client/qwaylandintegration_p.h
      index ff70ae25..73b80658 100644
      --- a/qtwayland/src/client/qwaylandintegration_p.h
      +++ b/qtwayland/src/client/qwaylandintegration_p.h
      @@ -107,6 +107,8 @@ public:
       
           QWaylandDisplay *display() const;
       
      +    Qt::KeyboardModifiers queryKeyboardModifiers() const override;
      +
           QList possibleKeys(const QKeyEvent *event) const override;
       
           QStringList themeNames() const override;
      diff --git a/qtwayland/src/client/qwaylandscreen.cpp b/qtwayland/src/client/qwaylandscreen.cpp
      index 6cb337de..7c2d9be3 100644
      --- a/qtwayland/src/client/qwaylandscreen.cpp
      +++ b/qtwayland/src/client/qwaylandscreen.cpp
      @@ -72,7 +72,7 @@ QWaylandScreen::QWaylandScreen(QWaylandDisplay *waylandDisplay, int version, uin
               qCWarning(lcQpaWayland) << "wl_output done event not supported by compositor,"
                                       << "QScreen may not work correctly";
               mWaylandDisplay->forceRoundTrip(); // Give the compositor a chance to send geometry etc.
      -        mOutputDone = true; // Fake the done event
      +        mProcessedEvents |= OutputDoneEvent; // Fake the done event
               maybeInitialize();
           }
       }
      @@ -83,14 +83,25 @@ QWaylandScreen::~QWaylandScreen()
               zxdg_output_v1::destroy();
       }
       
      +uint QWaylandScreen::requiredEvents() const
      +{
      +    uint ret = OutputDoneEvent;
      +
      +    if (mWaylandDisplay->xdgOutputManager()) {
      +        ret |= XdgOutputNameEvent;
      +
      +        if (mWaylandDisplay->xdgOutputManager()->version() < 3)
      +            ret |= XdgOutputDoneEvent;
      +    }
      +    return ret;
      +}
      +
       void QWaylandScreen::maybeInitialize()
       {
           Q_ASSERT(!mInitialized);
       
      -    if (!mOutputDone)
      -        return;
      -
      -    if (mWaylandDisplay->xdgOutputManager() && !mXdgOutputDone)
      +    const uint requiredEvents = this->requiredEvents();
      +    if ((mProcessedEvents & requiredEvents) != requiredEvents)
               return;
       
           mInitialized = true;
      @@ -276,9 +287,8 @@ void QWaylandScreen::output_scale(int32_t factor)
       
       void QWaylandScreen::output_done()
       {
      -    mOutputDone = true;
      -    if (zxdg_output_v1::isInitialized() && mWaylandDisplay->xdgOutputManager()->version() >= 3)
      -        mXdgOutputDone = true;
      +    mProcessedEvents |= OutputDoneEvent;
      +
           if (mInitialized) {
               updateOutputProperties();
               if (zxdg_output_v1::isInitialized())
      @@ -339,7 +349,7 @@ void QWaylandScreen::zxdg_output_v1_done()
           if (Q_UNLIKELY(mWaylandDisplay->xdgOutputManager()->version() >= 3))
               qWarning(lcQpaWayland) << "zxdg_output_v1.done received on version 3 or newer, this is most likely a bug in the compositor";
       
      -    mXdgOutputDone = true;
      +    mProcessedEvents |= XdgOutputDoneEvent;
           if (mInitialized)
               updateXdgOutputProperties();
           else
      @@ -348,7 +358,11 @@ void QWaylandScreen::zxdg_output_v1_done()
       
       void QWaylandScreen::zxdg_output_v1_name(const QString &name)
       {
      +    if (Q_UNLIKELY(mInitialized))
      +        qWarning(lcQpaWayland) << "zxdg_output_v1.name received after output has been initialized, this is most likely a bug in the compositor";
      +
           mOutputName = name;
      +    mProcessedEvents |= XdgOutputNameEvent;
       }
       
       void QWaylandScreen::updateXdgOutputProperties()
      diff --git a/qtwayland/src/client/qwaylandscreen_p.h b/qtwayland/src/client/qwaylandscreen_p.h
      index df1c94f2..050cfdc0 100644
      --- a/qtwayland/src/client/qwaylandscreen_p.h
      +++ b/qtwayland/src/client/qwaylandscreen_p.h
      @@ -116,6 +116,13 @@ public:
           static QWaylandScreen *fromWlOutput(::wl_output *output);
       
       private:
      +    enum Event : uint {
      +        XdgOutputDoneEvent = 0x1,
      +        OutputDoneEvent = 0x2,
      +        XdgOutputNameEvent = 0x4,
      +    };
      +    uint requiredEvents() const;
      +
           void output_mode(uint32_t flags, int width, int height, int refresh) override;
           void output_geometry(int32_t x, int32_t y,
                                int32_t width, int32_t height,
      @@ -148,8 +155,7 @@ private:
           QSize mPhysicalSize;
           QString mOutputName;
           Qt::ScreenOrientation m_orientation = Qt::PrimaryOrientation;
      -    bool mOutputDone = false;
      -    bool mXdgOutputDone = false;
      +    uint mProcessedEvents = 0;
           bool mInitialized = false;
       
       #if QT_CONFIG(cursor)
      diff --git a/qtwayland/src/client/qwaylandwindow.cpp b/qtwayland/src/client/qwaylandwindow.cpp
      index e96d8fe9..ceaa4c73 100644
      --- a/qtwayland/src/client/qwaylandwindow.cpp
      +++ b/qtwayland/src/client/qwaylandwindow.cpp
      @@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
       QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
           : QPlatformWindow(window)
           , mDisplay(display)
      -    , mFrameQueue(mDisplay->createFrameQueue())
           , mResizeAfterSwap(qEnvironmentVariableIsSet("QT_WAYLAND_RESIZE_AFTER_SWAP"))
       {
           {
      @@ -95,9 +94,6 @@ QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
       
       QWaylandWindow::~QWaylandWindow()
       {
      -    mDisplay->destroyFrameQueue(mFrameQueue);
      -    mDisplay->handleWindowDestroyed(this);
      -
           delete mWindowDecoration;
       
           if (mSurface)
      @@ -266,6 +262,8 @@ void QWaylandWindow::reset()
       
           mMask = QRegion();
           mQueuedBuffer = nullptr;
      +
      +    mDisplay->handleWindowDestroyed(this);
       }
       
       QWaylandWindow *QWaylandWindow::fromWlSurface(::wl_surface *surface)
      @@ -374,7 +372,7 @@ void QWaylandWindow::setGeometry(const QRect &rect)
               mShellSurface->setWindowGeometry(windowContentGeometry());
       
           if (isOpaque() && mMask.isEmpty())
      -        setOpaqueArea(rect);
      +        setOpaqueArea(QRect(QPoint(0, 0), rect.size()));
       }
       
       void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset)
      @@ -435,7 +433,6 @@ void QWaylandWindow::setVisible(bool visible)
               if (window()->type() == Qt::Popup || window()->type() == Qt::ToolTip)
                   activePopups << this;
               initWindow();
      -        mDisplay->flushRequests();
       
               setGeometry(windowGeometry());
               // Don't flush the events here, or else the newly visible window may start drawing, but since
      @@ -464,14 +461,15 @@ void QWaylandWindow::lower()
       
       void QWaylandWindow::setMask(const QRegion &mask)
       {
      +    QReadLocker locker(&mSurfaceLock);
      +    if (!mSurface)
      +        return;
      +
           if (mMask == mask)
               return;
       
           mMask = mask;
       
      -    if (!mSurface)
      -        return;
      -
           if (mMask.isEmpty()) {
               mSurface->set_input_region(nullptr);
       
      @@ -554,8 +552,8 @@ void QWaylandWindow::sendRecursiveExposeEvent()
       
       void QWaylandWindow::attach(QWaylandBuffer *buffer, int x, int y)
       {
      -    Q_ASSERT(!buffer->committed());
           if (buffer) {
      +        Q_ASSERT(!buffer->committed());
               handleUpdate();
               buffer->setBusy();
       
      @@ -573,7 +571,11 @@ void QWaylandWindow::attachOffset(QWaylandBuffer *buffer)
       
       void QWaylandWindow::damage(const QRect &rect)
       {
      -    mSurface->damage(rect.x(), rect.y(), rect.width(), rect.height());
      +    const int s = scale();
      +    if (mDisplay->compositorVersion() >= 4)
      +        mSurface->damage_buffer(s * rect.x(), s * rect.y(), s * rect.width(), s * rect.height());
      +    else
      +        mSurface->damage(rect.x(), rect.y(), rect.width(), rect.height());
       }
       
       void QWaylandWindow::safeCommit(QWaylandBuffer *buffer, const QRegion &damage)
      @@ -607,8 +609,14 @@ void QWaylandWindow::commit(QWaylandBuffer *buffer, const QRegion &damage)
               return;
       
           attachOffset(buffer);
      -    for (const QRect &rect: damage)
      -        mSurface->damage(rect.x(), rect.y(), rect.width(), rect.height());
      +    if (mDisplay->compositorVersion() >= 4) {
      +        const int s = scale();
      +        for (const QRect &rect: damage)
      +            mSurface->damage_buffer(s * rect.x(), s * rect.y(), s * rect.width(), s * rect.height());
      +    } else {
      +        for (const QRect &rect: damage)
      +            mSurface->damage(rect.x(), rect.y(), rect.width(), rect.height());
      +    }
           Q_ASSERT(!buffer->committed());
           buffer->setCommitted();
           mSurface->commit();
      @@ -621,42 +629,50 @@ void QWaylandWindow::commit()
       
       const wl_callback_listener QWaylandWindow::callbackListener = {
           [](void *data, wl_callback *callback, uint32_t time) {
      -        Q_UNUSED(callback);
               Q_UNUSED(time);
               auto *window = static_cast(data);
      +
      +        Q_ASSERT(callback == window->mFrameCallback);
      +        wl_callback_destroy(callback);
      +        window->mFrameCallback = nullptr;
      +
               window->handleFrameCallback();
           }
       };
       
       void QWaylandWindow::handleFrameCallback()
       {
      +    QMutexLocker locker(&mFrameSyncMutex);
      +
           mWaitingForFrameCallback = false;
           mFrameCallbackElapsedTimer.invalidate();
       
           // The rest can wait until we can run it on the correct thread
      -    if (!mWaitingForUpdateDelivery) {
      -        auto doHandleExpose = [this]() {
      -            bool wasExposed = isExposed();
      -            mFrameCallbackTimedOut = false;
      -            if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed?
      -                sendExposeEvent(QRect(QPoint(), geometry().size()));
      -            if (wasExposed && hasPendingUpdateRequest())
      -                deliverUpdateRequest();
      -
      -            mWaitingForUpdateDelivery = false;
      -        };
      +    auto doHandleExpose = [this]() {
      +        mWaitingForUpdateDelivery.storeRelease(false);
      +        bool wasExposed = isExposed();
      +        mFrameCallbackTimedOut = false;
      +        if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed?
      +            sendExposeEvent(QRect(QPoint(), geometry().size()));
      +        if (wasExposed && hasPendingUpdateRequest())
      +            deliverUpdateRequest();
      +    };
       
      +    if (mWaitingForUpdateDelivery.testAndSetAcquire(false, true)) {
               // Queued connection, to make sure we don't call handleUpdate() from inside waitForFrameSync()
               // in the single-threaded case.
      -        mWaitingForUpdateDelivery = true;
               QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection);
           }
      +
      +    mFrameSyncWait.notify_all();
       }
       
       bool QWaylandWindow::waitForFrameSync(int timeout)
       {
      -    QMutexLocker locker(mFrameQueue.mutex);
      -    mDisplay->dispatchQueueWhile(mFrameQueue.queue, [&]() { return mWaitingForFrameCallback; }, timeout);
      +    QMutexLocker locker(&mFrameSyncMutex);
      +
      +    QDeadlineTimer deadline(timeout);
      +    while (mWaitingForFrameCallback && mFrameSyncWait.wait(&mFrameSyncMutex, deadline)) { }
       
           if (mWaitingForFrameCallback) {
               qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed";
      @@ -805,7 +821,7 @@ bool QWaylandWindow::createDecoration()
               decoration = false;
           if (mSubSurfaceWindow)
               decoration = false;
      -    if (mShellSurface && !mShellSurface->wantsDecorations())
      +    if (!mShellSurface || !mShellSurface->wantsDecorations())
               decoration = false;
       
           bool hadDecoration = mWindowDecoration;
      @@ -1078,10 +1094,18 @@ bool QWaylandWindow::setMouseGrabEnabled(bool grab)
           return true;
       }
       
      +Qt::WindowStates QWaylandWindow::windowStates() const
      +{
      +    return mLastReportedWindowStates;
      +}
      +
       void QWaylandWindow::handleWindowStatesChanged(Qt::WindowStates states)
       {
           createDecoration();
      -    QWindowSystemInterface::handleWindowStateChanged(window(), states, mLastReportedWindowStates);
      +    Qt::WindowStates statesWithoutActive = states & ~Qt::WindowActive;
      +    Qt::WindowStates lastStatesWithoutActive = mLastReportedWindowStates & ~Qt::WindowActive;
      +    QWindowSystemInterface::handleWindowStateChanged(window(), statesWithoutActive,
      +                                                     lastStatesWithoutActive);
           mLastReportedWindowStates = states;
       }
       
      @@ -1144,8 +1168,11 @@ void QWaylandWindow::requestUpdate()
           Q_ASSERT(hasPendingUpdateRequest()); // should be set by QPA
       
           // If we have a frame callback all is good and will be taken care of there
      -    if (mWaitingForFrameCallback)
      -        return;
      +    {
      +        QMutexLocker locker(&mFrameSyncMutex);
      +        if (mWaitingForFrameCallback)
      +            return;
      +    }
       
           // If we've already called deliverUpdateRequest(), but haven't seen any attach+commit/swap yet
           // This is a somewhat redundant behavior and might indicate a bug in the calling code, so log
      @@ -1158,7 +1185,12 @@ void QWaylandWindow::requestUpdate()
           // so use invokeMethod to delay the delivery a bit.
           QMetaObject::invokeMethod(this, [this] {
               // Things might have changed in the meantime
      -        if (hasPendingUpdateRequest() && !mWaitingForFrameCallback)
      +        {
      +            QMutexLocker locker(&mFrameSyncMutex);
      +            if (mWaitingForFrameCallback)
      +                return;
      +        }
      +        if (hasPendingUpdateRequest())
                   deliverUpdateRequest();
           }, Qt::QueuedConnection);
       }
      @@ -1169,19 +1201,19 @@ void QWaylandWindow::requestUpdate()
       void QWaylandWindow::handleUpdate()
       {
           qCDebug(lcWaylandBackingstore) << "handleUpdate" << QThread::currentThread();
      +
      +    if (mWaitingForFrameCallback)
      +        return;
      +
           // TODO: Should sync subsurfaces avoid requesting frame callbacks?
           QReadLocker lock(&mSurfaceLock);
           if (!mSurface)
               return;
       
      -    if (mFrameCallback) {
      -        wl_callback_destroy(mFrameCallback);
      -        mFrameCallback = nullptr;
      -    }
      +    QMutexLocker locker(&mFrameSyncMutex);
       
      -    QMutexLocker locker(mFrameQueue.mutex);
           struct ::wl_surface *wrappedSurface = reinterpret_cast(wl_proxy_create_wrapper(mSurface->object()));
      -    wl_proxy_set_queue(reinterpret_cast(wrappedSurface), mFrameQueue.queue);
      +    wl_proxy_set_queue(reinterpret_cast(wrappedSurface), mDisplay->frameEventQueue());
           mFrameCallback = wl_surface_frame(wrappedSurface);
           wl_proxy_wrapper_destroy(wrappedSurface);
           wl_callback_add_listener(mFrameCallback, &QWaylandWindow::callbackListener, this);
      @@ -1191,6 +1223,8 @@ void QWaylandWindow::handleUpdate()
           // Start a timer for handling the case when the compositor stops sending frame callbacks.
           if (mFrameCallbackTimeout > 0) {
               QMetaObject::invokeMethod(this, [this] {
      +            QMutexLocker locker(&mFrameSyncMutex);
      +
                   if (mWaitingForFrameCallback) {
                       if (mFrameCallbackCheckIntervalTimerId < 0)
                           mFrameCallbackCheckIntervalTimerId = startTimer(mFrameCallbackTimeout);
      diff --git a/qtwayland/src/client/qwaylandwindow_p.h b/qtwayland/src/client/qwaylandwindow_p.h
      index 6cc1664b..cb9135f6 100644
      --- a/qtwayland/src/client/qwaylandwindow_p.h
      +++ b/qtwayland/src/client/qwaylandwindow_p.h
      @@ -148,6 +148,7 @@ public:
           void setWindowState(Qt::WindowStates states) override;
           void setWindowFlags(Qt::WindowFlags flags) override;
           void handleWindowStatesChanged(Qt::WindowStates states);
      +    Qt::WindowStates windowStates() const;
       
           void raise() override;
           void lower() override;
      @@ -227,11 +228,11 @@ protected:
           WId mWindowId;
           bool mWaitingForFrameCallback = false;
           bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out
      -    bool mWaitingForUpdateDelivery = false;
      +    QAtomicInt mWaitingForUpdateDelivery = false;
           int mFrameCallbackCheckIntervalTimerId = -1;
           QElapsedTimer mFrameCallbackElapsedTimer;
           struct ::wl_callback *mFrameCallback = nullptr;
      -    QWaylandDisplay::FrameQueue mFrameQueue;
      +    QMutex mFrameSyncMutex;
           QWaitCondition mFrameSyncWait;
       
           // True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer
      diff --git a/qtwayland/src/client/shellintegration/qwaylandshellintegration_p.h b/qtwayland/src/client/shellintegration/qwaylandshellintegration_p.h
      index ccad0048..4cc9b3b8 100644
      --- a/qtwayland/src/client/shellintegration/qwaylandshellintegration_p.h
      +++ b/qtwayland/src/client/shellintegration/qwaylandshellintegration_p.h
      @@ -73,11 +73,10 @@ public:
               return true;
           }
           virtual QWaylandShellSurface *createShellSurface(QWaylandWindow *window) = 0;
      +    // kept for binary compat with layer-shell-qt
           virtual void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) {
      -        if (newFocus)
      -            m_display->handleWindowActivated(newFocus);
      -        if (oldFocus)
      -            m_display->handleWindowDeactivated(oldFocus);
      +        Q_UNUSED(newFocus);
      +        Q_UNUSED(oldFocus);
           }
           virtual void *nativeResourceForWindow(const QByteArray &resource, QWindow *window) {
               Q_UNUSED(resource);
      diff --git a/qtwayland/src/compositor/configure.json b/qtwayland/src/compositor/configure.json
      index bcfd5215..da95d07b 100644
      --- a/qtwayland/src/compositor/configure.json
      +++ b/qtwayland/src/compositor/configure.json
      @@ -7,6 +7,31 @@
           "testDir": "../../config.tests",
       
           "libraries": {
      +        "wayland-client": {
      +            "label": "Wayland client library",
      +            "headers": "wayland-version.h",
      +            "test": {
      +                "main": [
      +                    "#if WAYLAND_VERSION_MAJOR < 1",
      +                    "# error Wayland 1.8.0 or higher required",
      +                    "#endif",
      +                    "#if WAYLAND_VERSION_MAJOR == 1",
      +                    "# if WAYLAND_VERSION_MINOR < 8",
      +                    "#  error Wayland 1.8.0 or higher required",
      +                    "# endif",
      +                    "# if WAYLAND_VERSION_MINOR == 8",
      +                    "#  if WAYLAND_VERSION_MICRO < 0",
      +                    "#   error Wayland 1.8.0 or higher required",
      +                    "#  endif",
      +                    "# endif",
      +                    "#endif"
      +                 ]
      +            },
      +            "sources": [
      +                { "type": "pkgConfig", "args": "wayland-client" },
      +                "-lwayland-client"
      +            ]
      +        },
               "wayland-server": {
                   "label": "wayland-server",
                   "headers": "wayland-version.h",
      @@ -151,8 +176,7 @@
                           "#endif"
                       ]
                   },
      -            "libs": "-ldrm",
      -            "use": "egl"
      +            "use": "drm egl"
               },
               "dmabuf-client-buffer": {
                   "label": "Linux Client dma-buf Buffer Sharing",
      @@ -176,8 +200,7 @@
                           "return 0;"
                       ]
                   },
      -            "libs": "-ldrm",
      -            "use": "egl"
      +            "use": "drm egl"
               },
               "vulkan-server-buffer": {
                   "label": "Vulkan Buffer Sharing",
      @@ -195,7 +218,8 @@
                           "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
                           "return 0;"
                       ]
      -            }
      +            },
      +            "use": "wayland-client"
               }
           },
       
      diff --git a/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
      index 7889f575..201b583b 100644
      --- a/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
      +++ b/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
      @@ -131,14 +131,16 @@ void QWaylandEglWindow::updateSurface(bool create)
                   if (!disableResizeCheck) {
                       wl_egl_window_get_attached_size(m_waylandEglWindow, ¤t_width, ¤t_height);
                   }
      -            if (disableResizeCheck || (current_width != sizeWithMargins.width() || current_height != sizeWithMargins.height())) {
      +            if (disableResizeCheck || (current_width != sizeWithMargins.width() || current_height != sizeWithMargins.height()) || m_requestedSize != sizeWithMargins) {
                       wl_egl_window_resize(m_waylandEglWindow, sizeWithMargins.width(), sizeWithMargins.height(), mOffset.x(), mOffset.y());
      +                m_requestedSize = sizeWithMargins;
                       mOffset = QPoint();
       
                       m_resize = true;
                   }
               } else if (create && wlSurface()) {
                   m_waylandEglWindow = wl_egl_window_create(wlSurface(), sizeWithMargins.width(), sizeWithMargins.height());
      +            m_requestedSize = sizeWithMargins;
               }
       
               if (!m_eglSurface && m_waylandEglWindow && create) {
      diff --git a/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
      index 5b1f4d56..0079dfef 100644
      --- a/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
      +++ b/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
      @@ -88,6 +88,7 @@ private:
           mutable QOpenGLFramebufferObject *m_contentFBO = nullptr;
       
           QSurfaceFormat m_format;
      +    QSize m_requestedSize;
       };
       
       }
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp b/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
      index 4e25949f..cfc60939 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration.cpp
      @@ -85,13 +85,6 @@ QWaylandShellSurface *QWaylandXdgShellV5Integration::createShellSurface(QWayland
           return m_xdgShell->createXdgSurface(window);
       }
       
      -void QWaylandXdgShellV5Integration::handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) {
      -    if (newFocus && qobject_cast(newFocus->shellSurface()))
      -        m_display->handleWindowActivated(newFocus);
      -    if (oldFocus && qobject_cast(oldFocus->shellSurface()))
      -        m_display->handleWindowDeactivated(oldFocus);
      -}
      -
       }
       
       QT_END_NAMESPACE
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h b/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
      index ce6bdb9e..aed88670 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgshellv5integration_p.h
      @@ -67,7 +67,6 @@ public:
           QWaylandXdgShellV5Integration() {}
           bool initialize(QWaylandDisplay *display) override;
           QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;
      -    void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) override;
       
       private:
           QScopedPointer m_xdgShell;
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp b/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
      index 03164316..e8da8ba1 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration.cpp
      @@ -68,20 +68,6 @@ QWaylandShellSurface *QWaylandXdgShellV6Integration::createShellSurface(QWayland
           return m_xdgShell->getXdgSurface(window);
       }
       
      -void QWaylandXdgShellV6Integration::handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus)
      -{
      -    if (newFocus) {
      -        auto *xdgSurface = qobject_cast(newFocus->shellSurface());
      -        if (xdgSurface && !xdgSurface->handlesActiveState())
      -            m_display->handleWindowActivated(newFocus);
      -    }
      -    if (oldFocus && qobject_cast(oldFocus->shellSurface())) {
      -        auto *xdgSurface = qobject_cast(oldFocus->shellSurface());
      -        if (xdgSurface && !xdgSurface->handlesActiveState())
      -            m_display->handleWindowDeactivated(oldFocus);
      -    }
      -}
      -
       }
       
       QT_END_NAMESPACE
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h b/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
      index 261f8cbb..c1bcd5c6 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6integration_p.h
      @@ -65,7 +65,6 @@ public:
           QWaylandXdgShellV6Integration() {}
           bool initialize(QWaylandDisplay *display) override;
           QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;
      -    void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) override;
       
       private:
           QScopedPointer m_xdgShell;
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
      index 3a1569f7..d7d0ddf7 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
      @@ -67,11 +67,6 @@ QWaylandXdgSurface::Toplevel::Toplevel(QWaylandXdgSurface *xdgSurface)
       
       QWaylandXdgSurface::Toplevel::~Toplevel()
       {
      -    if (m_applied.states & Qt::WindowActive) {
      -        QWaylandWindow *window = m_xdgSurface->window();
      -        window->display()->handleWindowDeactivated(window);
      -    }
      -
           // The protocol spec requires that the decoration object is deleted before xdg_toplevel.
           delete m_decoration;
           m_decoration = nullptr;
      @@ -85,16 +80,15 @@ void QWaylandXdgSurface::Toplevel::applyConfigure()
           if (!(m_applied.states & (Qt::WindowMaximized|Qt::WindowFullScreen)))
               m_normalSize = m_xdgSurface->m_window->windowFrameGeometry().size();
       
      -    if ((m_pending.states & Qt::WindowActive) && !(m_applied.states & Qt::WindowActive))
      +    if ((m_pending.states & Qt::WindowActive) && !(m_applied.states & Qt::WindowActive)
      +        && !m_xdgSurface->m_window->display()->isKeyboardAvailable())
               m_xdgSurface->m_window->display()->handleWindowActivated(m_xdgSurface->m_window);
       
      -    if (!(m_pending.states & Qt::WindowActive) && (m_applied.states & Qt::WindowActive))
      +    if (!(m_pending.states & Qt::WindowActive) && (m_applied.states & Qt::WindowActive)
      +        && !m_xdgSurface->m_window->display()->isKeyboardAvailable())
               m_xdgSurface->m_window->display()->handleWindowDeactivated(m_xdgSurface->m_window);
       
      -    // TODO: none of the other plugins send WindowActive either, but is it on purpose?
      -    Qt::WindowStates statesWithoutActive = m_pending.states & ~Qt::WindowActive;
      -
      -    m_xdgSurface->m_window->handleWindowStatesChanged(statesWithoutActive);
      +    m_xdgSurface->m_window->handleWindowStatesChanged(m_pending.states);
       
           if (m_pending.size.isEmpty()) {
               // An empty size in the configure means it's up to the client to choose the size
      @@ -105,8 +99,6 @@ void QWaylandXdgSurface::Toplevel::applyConfigure()
               m_xdgSurface->m_window->resizeFromApplyConfigure(m_pending.size);
           }
       
      -    m_xdgSurface->setSizeHints();
      -
           m_applied = m_pending;
           qCDebug(lcQpaWayland) << "Applied pending xdg_toplevel configure event:" << m_applied.size << m_applied.states;
       }
      @@ -257,6 +249,7 @@ QWaylandXdgSurface::QWaylandXdgSurface(QWaylandXdgShell *shell, ::xdg_surface *s
                       m_toplevel->set_parent(parentXdgSurface->m_toplevel->object());
               }
           }
      +    setSizeHints();
       }
       
       QWaylandXdgSurface::~QWaylandXdgSurface()
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp b/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
      index 8769d971..da0dd6a7 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration.cpp
      @@ -69,20 +69,6 @@ QWaylandShellSurface *QWaylandXdgShellIntegration::createShellSurface(QWaylandWi
           return m_xdgShell->getXdgSurface(window);
       }
       
      -void QWaylandXdgShellIntegration::handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus)
      -{
      -    if (newFocus) {
      -        auto *xdgSurface = qobject_cast(newFocus->shellSurface());
      -        if (xdgSurface && !xdgSurface->handlesActiveState())
      -            m_display->handleWindowActivated(newFocus);
      -    }
      -    if (oldFocus && qobject_cast(oldFocus->shellSurface())) {
      -        auto *xdgSurface = qobject_cast(oldFocus->shellSurface());
      -        if (xdgSurface && !xdgSurface->handlesActiveState())
      -            m_display->handleWindowDeactivated(oldFocus);
      -    }
      -}
      -
       }
       
       QT_END_NAMESPACE
      diff --git a/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h b/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
      index b6caa6c9..2f929f98 100644
      --- a/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
      +++ b/qtwayland/src/plugins/shellintegration/xdg-shell/qwaylandxdgshellintegration_p.h
      @@ -65,7 +65,6 @@ public:
           QWaylandXdgShellIntegration() {}
           bool initialize(QWaylandDisplay *display) override;
           QWaylandShellSurface *createShellSurface(QWaylandWindow *window) override;
      -    void handleKeyboardFocusChanged(QWaylandWindow *newFocus, QWaylandWindow *oldFocus) override;
       
       private:
           QScopedPointer m_xdgShell;
      diff --git a/qtwayland/src/shared/qwaylandinputmethodeventbuilder.cpp b/qtwayland/src/shared/qwaylandinputmethodeventbuilder.cpp
      index 526d0ef4..f50ccf30 100644
      --- a/qtwayland/src/shared/qwaylandinputmethodeventbuilder.cpp
      +++ b/qtwayland/src/shared/qwaylandinputmethodeventbuilder.cpp
      @@ -39,7 +39,10 @@
       
       #include "qwaylandinputmethodeventbuilder_p.h"
       
      +#include 
      +#include 
       #include 
      +#include 
       #include 
       
       #ifdef QT_BUILD_WAYLANDCOMPOSITOR_LIB
      @@ -81,32 +84,38 @@ void QWaylandInputMethodEventBuilder::addPreeditStyling(uint32_t index, uint32_t
           QTextCharFormat format;
       
           switch (style) {
      -    case 0:
      -    case 1:
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_NONE:
      +        break;
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_DEFAULT:
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_UNDERLINE:
               format.setFontUnderline(true);
               format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
               m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
               break;
      -    case 2:
      -    case 3:
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_ACTIVE:
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_INACTIVE:
               format.setFontWeight(QFont::Bold);
               format.setFontUnderline(true);
               format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
               m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
               break;
      -    case 4:
      -        format.setFontUnderline(true);
      -        format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
      -        m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_HIGHLIGHT:
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_SELECTION:
      +        {
      +            format.setFontUnderline(true);
      +            format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
      +            QPalette palette = qApp->palette();
      +            format.setBackground(QBrush(palette.color(QPalette::Active, QPalette::Highlight)));
      +            format.setForeground(QBrush(palette.color(QPalette::Active, QPalette::HighlightedText)));
      +            m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
      +        }
               break;
      -    case 5:
      +    case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_INCORRECT:
               format.setFontUnderline(true);
               format.setUnderlineStyle(QTextCharFormat::WaveUnderline);
               format.setUnderlineColor(QColor(Qt::red));
               m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
               break;
      -//    case QtWayland::wl_text_input::preedit_style_selection:
      -//    case QtWayland::wl_text_input::preedit_style_none:
           default:
               break;
           }
      @@ -153,7 +162,7 @@ QInputMethodEvent QWaylandInputMethodEventBuilder::buildPreedit(const QString &t
       
           if (m_preeditCursor < 0) {
               attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, 0, 0, QVariant()));
      -    } else if (m_preeditCursor > 0) {
      +    } else {
               attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, indexFromWayland(text, m_preeditCursor), 1, QVariant()));
           }
       
      diff --git a/qtwayland/src/shared/qwaylandmimehelper.cpp b/qtwayland/src/shared/qwaylandmimehelper.cpp
      index a5fdd34d..051a91dc 100644
      --- a/qtwayland/src/shared/qwaylandmimehelper.cpp
      +++ b/qtwayland/src/shared/qwaylandmimehelper.cpp
      @@ -60,7 +60,7 @@ QByteArray QWaylandMimeHelper::getByteArray(QMimeData *mimeData, const QString &
                   buf.open(QIODevice::ReadWrite);
                   QByteArray fmt = "BMP";
                   if (mimeType.startsWith(QLatin1String("image/"))) {
      -                QByteArray imgFmt = mimeType.mid(6).toUpper().toLatin1();
      +                QByteArray imgFmt = mimeType.mid(6).toLower().toLatin1();
                       if (QImageWriter::supportedImageFormats().contains(imgFmt))
                           fmt = imgFmt;
                   }
      diff --git a/qtwayland/tests/auto/client/datadevicev1/tst_datadevicev1.cpp b/qtwayland/tests/auto/client/datadevicev1/tst_datadevicev1.cpp
      index 1568b3b9..067410d0 100644
      --- a/qtwayland/tests/auto/client/datadevicev1/tst_datadevicev1.cpp
      +++ b/qtwayland/tests/auto/client/datadevicev1/tst_datadevicev1.cpp
      @@ -35,7 +35,7 @@
       
       using namespace MockCompositor;
       
      -constexpr int dataDeviceVersion = 1;
      +constexpr int dataDeviceVersion = 3;
       
       class DataDeviceCompositor : public DefaultCompositor {
       public:
      diff --git a/qtwayland/tests/auto/client/shared/coreprotocol.h b/qtwayland/tests/auto/client/shared/coreprotocol.h
      index a1af137a..296dbf47 100644
      --- a/qtwayland/tests/auto/client/shared/coreprotocol.h
      +++ b/qtwayland/tests/auto/client/shared/coreprotocol.h
      @@ -158,7 +158,7 @@ class WlCompositor : public Global, public QtWaylandServer::wl_compositor
       {
           Q_OBJECT
       public:
      -    explicit WlCompositor(CoreCompositor *compositor, int version = 3)
      +    explicit WlCompositor(CoreCompositor *compositor, int version = 4)
               : QtWaylandServer::wl_compositor(compositor->m_display, version)
               , m_compositor(compositor)
           {}
      diff --git a/qtwayland/tests/auto/client/shared_old/mockcompositor.cpp b/qtwayland/tests/auto/client/shared_old/mockcompositor.cpp
      index a415cbf5..b1d3d07d 100644
      --- a/qtwayland/tests/auto/client/shared_old/mockcompositor.cpp
      +++ b/qtwayland/tests/auto/client/shared_old/mockcompositor.cpp
      @@ -342,7 +342,7 @@ Compositor::Compositor(MockCompositor *mockCompositor)
               exit(EXIT_FAILURE);
           }
       
      -    wl_global_create(m_display, &wl_compositor_interface, 1, this, bindCompositor);
      +    wl_global_create(m_display, &wl_compositor_interface, 4, this, bindCompositor);
       
           m_data_device_manager.reset(new DataDeviceManager(this, m_display));
       
      diff --git a/qtwayland/tests/auto/client/shared_old/mocksurface.cpp b/qtwayland/tests/auto/client/shared_old/mocksurface.cpp
      index e9df5f90..c3246e4a 100644
      --- a/qtwayland/tests/auto/client/shared_old/mocksurface.cpp
      +++ b/qtwayland/tests/auto/client/shared_old/mocksurface.cpp
      @@ -125,6 +125,16 @@ void Surface::surface_damage(Resource *resource,
           Q_UNUSED(height);
       }
       
      +void Surface::surface_damage_buffer(Resource *resource,
      +                                    int32_t x, int32_t y, int32_t width, int32_t height)
      +{
      +    Q_UNUSED(resource);
      +    Q_UNUSED(x);
      +    Q_UNUSED(y);
      +    Q_UNUSED(width);
      +    Q_UNUSED(height);
      +}
      +
       void Surface::surface_frame(Resource *resource,
                                   uint32_t callback)
       {
      diff --git a/qtwayland/tests/auto/client/shared_old/mocksurface.h b/qtwayland/tests/auto/client/shared_old/mocksurface.h
      index 949dc23d..d176837e 100644
      --- a/qtwayland/tests/auto/client/shared_old/mocksurface.h
      +++ b/qtwayland/tests/auto/client/shared_old/mocksurface.h
      @@ -65,6 +65,8 @@ protected:
                               struct wl_resource *buffer, int x, int y) override;
           void surface_damage(Resource *resource,
                               int32_t x, int32_t y, int32_t width, int32_t height) override;
      +    void surface_damage_buffer(Resource *resource,
      +                               int32_t x, int32_t y, int32_t width, int32_t height) override;
           void surface_frame(Resource *resource,
                              uint32_t callback) override;
           void surface_commit(Resource *resource) override;
      diff --git a/qtwayland/tests/auto/client/xdgshell/tst_xdgshell.cpp b/qtwayland/tests/auto/client/xdgshell/tst_xdgshell.cpp
      index 2277bbb8..73d1eb9c 100644
      --- a/qtwayland/tests/auto/client/xdgshell/tst_xdgshell.cpp
      +++ b/qtwayland/tests/auto/client/xdgshell/tst_xdgshell.cpp
      @@ -31,6 +31,7 @@
       #include 
       #include 
       #include 
      +#include 
       
       using namespace MockCompositor;
       
      @@ -138,6 +139,7 @@ void tst_xdgshell::configureSize()
       
       void tst_xdgshell::configureStates()
       {
      +    QVERIFY(qputenv("QT_WAYLAND_FRAME_CALLBACK_TIMEOUT", "0"));
           QRasterWindow window;
           window.resize(64, 48);
           window.show();
      @@ -154,9 +156,12 @@ void tst_xdgshell::configureStates()
           // Toplevel windows don't know their position on xdg-shell
       //    QCOMPARE(window.frameGeometry().topLeft(), QPoint()); // TODO: this doesn't currently work when window decorations are enabled
       
      -//    QEXPECT_FAIL("", "configure has already been acked, we shouldn't have to wait for isActive", Continue);
      -//    QVERIFY(window.isActive());
      -    QTRY_VERIFY(window.isActive()); // Just make sure it eventually get's set correctly
      +    // window.windowstate() is driven by keyboard focus, however for decorations we want to follow
      +    // XDGShell this is internal to QtWayland so it is queried directly
      +    auto waylandWindow = static_cast(window.handle());
      +    Q_ASSERT(waylandWindow);
      +    QTRY_VERIFY(waylandWindow->windowStates().testFlag(
      +            Qt::WindowActive)); // Just make sure it eventually get's set correctly
       
           const QSize screenSize(640, 480);
           const uint maximizedSerial = exec([=] {
      @@ -186,6 +191,7 @@ void tst_xdgshell::configureStates()
           QCOMPARE(window.windowStates(), Qt::WindowNoState);
           QCOMPARE(window.frameGeometry().size(), windowedSize);
       //    QCOMPARE(window.frameGeometry().topLeft(), QPoint()); // TODO: this doesn't currently work when window decorations are enabled
      +    QVERIFY(qunsetenv("QT_WAYLAND_FRAME_CALLBACK_TIMEOUT"));
       }
       
       void tst_xdgshell::popup()
      @@ -505,7 +511,7 @@ void tst_xdgshell::minMaxSize()
           window.show();
           QCOMPOSITOR_TRY_VERIFY(xdgToplevel());
       
      -    exec([=] { xdgToplevel()->sendCompleteConfigure(); });
      +    // we don't roundtrip with our configuration the initial commit should be correct
       
           QCOMPOSITOR_TRY_COMPARE(xdgToplevel()->m_committed.minSize, QSize(100, 100));
           QCOMPOSITOR_TRY_COMPARE(xdgToplevel()->m_committed.maxSize, QSize(1000, 1000));
      Submodule qtwebchannel 486fbe67..8c842152:
      diff --git a/qtwebchannel/src/webchannel/qmetaobjectpublisher.cpp b/qtwebchannel/src/webchannel/qmetaobjectpublisher.cpp
      index 536eb5c..898d769 100644
      --- a/qtwebchannel/src/webchannel/qmetaobjectpublisher.cpp
      +++ b/qtwebchannel/src/webchannel/qmetaobjectpublisher.cpp
      @@ -186,8 +186,6 @@ Q_DECLARE_TYPEINFO(OverloadResolutionCandidate, Q_MOVABLE_TYPE);
       QMetaObjectPublisher::QMetaObjectPublisher(QWebChannel *webChannel)
           : QObject(webChannel)
           , webChannel(webChannel)
      -    , signalHandler(this)
      -    , clientIsIdle(false)
           , blockUpdates(false)
           , propertyUpdatesInitialized(false)
       {
      @@ -301,17 +299,17 @@ QJsonObject QMetaObjectPublisher::classInfoForObject(const QObject *object, QWeb
           return data;
       }
       
      -void QMetaObjectPublisher::setClientIsIdle(bool isIdle)
      +void QMetaObjectPublisher::setClientIsIdle(bool isIdle, QWebChannelAbstractTransport *transport)
       {
      -    if (clientIsIdle == isIdle) {
      -        return;
      -    }
      -    clientIsIdle = isIdle;
      -    if (!isIdle && timer.isActive()) {
      -        timer.stop();
      -    } else if (isIdle && !timer.isActive()) {
      -        timer.start(PROPERTY_UPDATE_INTERVAL, this);
      -    }
      +    transportState[transport].clientIsIdle = isIdle;
      +    if (isIdle)
      +        sendEnqueuedPropertyUpdates(transport);
      +}
      +
      +bool QMetaObjectPublisher::isClientIdle(QWebChannelAbstractTransport *transport)
      +{
      +    auto found = transportState.find(transport);
      +    return found != transportState.end() && found.value().clientIsIdle;
       }
       
       QJsonObject QMetaObjectPublisher::initializeClient(QWebChannelAbstractTransport *transport)
      @@ -333,6 +331,7 @@ QJsonObject QMetaObjectPublisher::initializeClient(QWebChannelAbstractTransport
       
       void QMetaObjectPublisher::initializePropertyUpdates(const QObject *const object, const QJsonObject &objectInfo)
       {
      +    auto *signalHandler = signalHandlerFor(object);
           foreach (const QJsonValue &propertyInfoVar, objectInfo[KEY_PROPERTIES].toArray()) {
               const QJsonArray &propertyInfo = propertyInfoVar.toArray();
               if (propertyInfo.size() < 2) {
      @@ -353,19 +352,19 @@ void QMetaObjectPublisher::initializePropertyUpdates(const QObject *const object
       
               // Only connect for a property update once
               if (connectedProperties.isEmpty()) {
      -            signalHandler.connectTo(object, signalIndex);
      +            signalHandler->connectTo(object, signalIndex);
               }
       
               connectedProperties.insert(propertyIndex);
           }
       
           // also always connect to destroyed signal
      -    signalHandler.connectTo(object, s_destroyedSignalIndex);
      +    signalHandler->connectTo(object, s_destroyedSignalIndex);
       }
       
       void QMetaObjectPublisher::sendPendingPropertyUpdates()
       {
      -    if (blockUpdates || !clientIsIdle || pendingPropertyUpdates.isEmpty()) {
      +    if (blockUpdates) {
               return;
           }
       
      @@ -415,18 +414,19 @@ void QMetaObjectPublisher::sendPendingPropertyUpdates()
       
           // data does not contain specific updates
           if (!data.isEmpty()) {
      -        setClientIsIdle(false);
      -
               message[KEY_DATA] = data;
      -        broadcastMessage(message);
      +        enqueueBroadcastMessage(message);
           }
       
           // send every property update which is not supposed to be broadcasted
           const QHash::const_iterator suend = specificUpdates.constEnd();
           for (QHash::const_iterator it = specificUpdates.constBegin(); it != suend; ++it) {
               message[KEY_DATA] = it.value();
      -        it.key()->sendMessage(message);
      +        enqueueMessage(message, it.key());
           }
      +
      +    for (auto state = transportState.begin(); state != transportState.end(); ++state)
      +        sendEnqueuedPropertyUpdates(state.key());
       }
       
       QVariant QMetaObjectPublisher::invokeMethod(QObject *const object, const QMetaMethod &method,
      @@ -572,7 +572,7 @@ void QMetaObjectPublisher::signalEmitted(const QObject *object, const int signal
               }
           } else {
               pendingPropertyUpdates[object][signalIndex] = arguments;
      -        if (clientIsIdle && !blockUpdates && !timer.isActive()) {
      +        if (!blockUpdates && !timer.isActive()) {
                   timer.start(PROPERTY_UPDATE_INTERVAL, this);
               }
           }
      @@ -590,7 +590,7 @@ void QMetaObjectPublisher::objectDestroyed(const QObject *object)
           // only remove from handler when we initialized the property updates
           // cf: https://bugreports.qt.io/browse/QTBUG-60250
           if (propertyUpdatesInitialized) {
      -        signalHandler.remove(object);
      +        signalHandlerFor(object)->remove(object);
               signalToPropertyMap.remove(object);
           }
           pendingPropertyUpdates.remove(object);
      @@ -852,6 +852,52 @@ void QMetaObjectPublisher::broadcastMessage(const QJsonObject &message) const
           }
       }
       
      +void QMetaObjectPublisher::enqueueBroadcastMessage(const QJsonObject &message)
      +{
      +    if (webChannel->d_func()->transports.isEmpty()) {
      +        qWarning("QWebChannel is not connected to any transports, cannot send message: %s",
      +                 QJsonDocument(message).toJson().constData());
      +        return;
      +    }
      +
      +    for (auto *transport : webChannel->d_func()->transports) {
      +        auto &state = transportState[transport];
      +        state.queuedMessages.append(message);
      +    }
      +}
      +
      +void QMetaObjectPublisher::enqueueMessage(const QJsonObject &message,
      +                                          QWebChannelAbstractTransport *transport)
      +{
      +    auto &state = transportState[transport];
      +    state.queuedMessages.append(message);
      +}
      +
      +void QMetaObjectPublisher::sendEnqueuedPropertyUpdates(QWebChannelAbstractTransport *transport)
      +{
      +    auto found = transportState.find(transport);
      +    if (found != transportState.end() && found.value().clientIsIdle
      +        && !found.value().queuedMessages.isEmpty()) {
      +
      +        // If the client is connected with an in-process transport, it can
      +        // happen that a message triggers a subsequent property change. In
      +        // that case, we need to ensure that the queued messages have already
      +        // been cleared; otherwise the recursive call will send everythig again.
      +        // Case in point: The qmlwebchannel tests fail if we don't clear the
      +        // queued messages before sending them out.
      +        // For that same reason set the client to "busy" (aka non-idle) just
      +        // right before sending out the messages; otherwise a potential
      +        // "Idle" type message will not correctly restore the Idle state.
      +        const auto messages = std::move(found.value().queuedMessages);
      +        Q_ASSERT(found.value().queuedMessages.isEmpty());
      +        found.value().clientIsIdle = false;
      +
      +        for (const auto &message : messages) {
      +            transport->sendMessage(message);
      +        }
      +    }
      +}
      +
       void QMetaObjectPublisher::handleMessage(const QJsonObject &message, QWebChannelAbstractTransport *transport)
       {
           if (!webChannel->d_func()->transports.contains(transport)) {
      @@ -866,7 +912,7 @@ void QMetaObjectPublisher::handleMessage(const QJsonObject &message, QWebChannel
       
           const MessageType type = toType(message.value(KEY_TYPE));
           if (type == TypeIdle) {
      -        setClientIsIdle(true);
      +        setClientIsIdle(true, transport);
           } else if (type == TypeInit) {
               if (!message.contains(KEY_ID)) {
                   qWarning("JSON message object is missing the id property: %s",
      @@ -913,9 +959,9 @@ void QMetaObjectPublisher::handleMessage(const QJsonObject &message, QWebChannel
                       return;
                   transport->sendMessage(createResponse(message.value(KEY_ID), wrapResult(result, transport)));
               } else if (type == TypeConnectToSignal) {
      -            signalHandler.connectTo(object, message.value(KEY_SIGNAL).toInt(-1));
      +            signalHandlerFor(object)->connectTo(object, message.value(KEY_SIGNAL).toInt(-1));
               } else if (type == TypeDisconnectFromSignal) {
      -            signalHandler.disconnectFrom(object, message.value(KEY_SIGNAL).toInt(-1));
      +            signalHandlerFor(object)->disconnectFrom(object, message.value(KEY_SIGNAL).toInt(-1));
               } else if (type == TypeSetProperty) {
                   setProperty(object, message.value(KEY_PROPERTY).toInt(-1),
                               message.value(KEY_VALUE));
      @@ -931,6 +977,7 @@ void QMetaObjectPublisher::setBlockUpdates(bool block)
           blockUpdates = block;
       
           if (!blockUpdates) {
      +        timer.start(PROPERTY_UPDATE_INTERVAL, this);
               sendPendingPropertyUpdates();
           } else if (timer.isActive()) {
               timer.stop();
      @@ -948,4 +995,15 @@ void QMetaObjectPublisher::timerEvent(QTimerEvent *event)
           }
       }
       
      +SignalHandler *QMetaObjectPublisher::signalHandlerFor(const QObject *object)
      +{
      +    auto thread = object->thread();
      +    auto it = signalHandlers.find(thread);
      +    if (it == signalHandlers.end()) {
      +        it = signalHandlers.emplace(thread, this).first;
      +        it->second.moveToThread(thread);
      +    }
      +    return &it->second;
      +}
      +
       QT_END_NAMESPACE
      diff --git a/qtwebchannel/src/webchannel/qmetaobjectpublisher_p.h b/qtwebchannel/src/webchannel/qmetaobjectpublisher_p.h
      index bbd9875..4713ef1 100644
      --- a/qtwebchannel/src/webchannel/qmetaobjectpublisher_p.h
      +++ b/qtwebchannel/src/webchannel/qmetaobjectpublisher_p.h
      @@ -59,6 +59,9 @@
       #include 
       #include 
       #include 
      +#include 
      +
      +#include 
       
       #include "qwebchannelglobal.h"
       
      @@ -109,17 +112,36 @@ public:
            */
           void broadcastMessage(const QJsonObject &message) const;
       
      +    /**
      +     * Enqueue the given @p message to all known transports.
      +     */
      +    void enqueueBroadcastMessage(const QJsonObject &message);
      +
      +    /**
      +     * Enqueue the given @p message to @p transport.
      +     */
      +    void enqueueMessage(const QJsonObject &message, QWebChannelAbstractTransport *transport);
      +
      +    /**
      +     * If client for given @p transport is idle, send queued messaged to @p transport and then mark
      +     * the client as not idle.
      +     */
      +    void sendEnqueuedPropertyUpdates(QWebChannelAbstractTransport *transport);
      +
           /**
            * Serialize the QMetaObject of @p object and return it in JSON form.
            */
           QJsonObject classInfoForObject(const QObject *object, QWebChannelAbstractTransport *transport);
       
           /**
      -     * Set the client to idle or busy, based on the value of @p isIdle.
      -     *
      -     * When the value changed, start/stop the property update timer accordingly.
      +     * Set the client to idle or busy for a single @p transport, based on the value of @p isIdle.
      +     */
      +    void setClientIsIdle(bool isIdle, QWebChannelAbstractTransport *transport);
      +
      +    /**
      +     * Check that client is idle for @p transport.
            */
      -    void setClientIsIdle(bool isIdle);
      +    bool isClientIdle(QWebChannelAbstractTransport *transport);
       
           /**
            * Initialize clients by sending them the class information of the registered objects.
      @@ -272,10 +294,18 @@ private:
           friend class TestWebChannel;
       
           QWebChannel *webChannel;
      -    SignalHandler signalHandler;
      +    std::unordered_map> signalHandlers;
      +    SignalHandler *signalHandlerFor(const QObject *object);
       
      -    // true when the client is idle, false otherwise
      -    bool clientIsIdle;
      +    struct TransportState
      +    {
      +        TransportState() : clientIsIdle(false) { }
      +        // true when the client is idle, false otherwise
      +        bool clientIsIdle;
      +        // messages to send
      +        QQueue queuedMessages;
      +    };
      +    QHash transportState;
       
           // true when no property updates should be sent, false otherwise
           bool blockUpdates;
      diff --git a/qtwebchannel/src/webchannel/signalhandler_p.h b/qtwebchannel/src/webchannel/signalhandler_p.h
      index 27afadb..d77373c 100644
      --- a/qtwebchannel/src/webchannel/signalhandler_p.h
      +++ b/qtwebchannel/src/webchannel/signalhandler_p.h
      @@ -56,6 +56,7 @@
       #include 
       #include 
       #include 
      +#include 
       
       QT_BEGIN_NAMESPACE
       
      @@ -71,6 +72,7 @@ static const int s_destroyedSignalIndex = QObject::staticMetaObject.indexOfMetho
       template
       class SignalHandler : public QObject
       {
      +    Q_DISABLE_COPY(SignalHandler)
       public:
           SignalHandler(Receiver *receiver, QObject *parent = 0);
       
      @@ -268,6 +270,7 @@ int SignalHandler::qt_metacall(QMetaObject::Call call, int methodId, v
           if (call == QMetaObject::InvokeMetaMethod) {
               const QObject *object = sender();
               Q_ASSERT(object);
      +        Q_ASSERT(QThread::currentThread() == object->thread());
               Q_ASSERT(senderSignalIndex() == methodId);
               Q_ASSERT(m_connectionsCounter.contains(object));
               Q_ASSERT(m_connectionsCounter.value(object).contains(methodId));
      diff --git a/qtwebchannel/tests/auto/qml/testwebchannel.cpp b/qtwebchannel/tests/auto/qml/testwebchannel.cpp
      index 9891687..3ca81c2 100644
      --- a/qtwebchannel/tests/auto/qml/testwebchannel.cpp
      +++ b/qtwebchannel/tests/auto/qml/testwebchannel.cpp
      @@ -46,7 +46,11 @@ TestWebChannel::~TestWebChannel()
       
       bool TestWebChannel::clientIsIdle() const
       {
      -    return QWebChannel::d_func()->publisher->clientIsIdle;
      +    for (auto *transport : QWebChannel::d_func()->transports) {
      +        if (QWebChannel::d_func()->publisher->isClientIdle(transport))
      +            return true;
      +    }
      +    return false;
       }
       
       QT_END_NAMESPACE
      diff --git a/qtwebchannel/tests/auto/webchannel/tst_webchannel.cpp b/qtwebchannel/tests/auto/webchannel/tst_webchannel.cpp
      index 181da9e..37f989a 100644
      --- a/qtwebchannel/tests/auto/webchannel/tst_webchannel.cpp
      +++ b/qtwebchannel/tests/auto/webchannel/tst_webchannel.cpp
      @@ -785,7 +785,7 @@ void TestWebChannel::testTransportWrapObjectProperties()
           DummyTransport *dummyTransport = new DummyTransport(this);
           channel.connectTo(dummyTransport);
           channel.d_func()->publisher->initializeClient(dummyTransport);
      -    channel.d_func()->publisher->setClientIsIdle(true);
      +    channel.d_func()->publisher->setClientIsIdle(true, dummyTransport);
       
           QCOMPARE(channel.d_func()->publisher->transportedWrappedObjects.size(), 0);
       
      @@ -943,8 +943,6 @@ void TestWebChannel::testInfiniteRecursion()
       
       void TestWebChannel::testAsyncObject()
       {
      -    QSKIP("This test is broken. See QTBUG-80729");
      -
           QWebChannel channel;
           channel.connectTo(m_dummyTransport);
       
      @@ -990,6 +988,50 @@ void TestWebChannel::testAsyncObject()
           thread.wait();
       }
       
      +void TestWebChannel::testPropertyMultipleTransports()
      +{
      +    DummyTransport transport1;
      +    DummyTransport transport2;
      +
      +    QWebChannel channel;
      +    QMetaObjectPublisher *publisher = channel.d_func()->publisher;
      +
      +    TestObject testObj;
      +    testObj.setObjectName("testObject");
      +    channel.registerObject(testObj.objectName(), &testObj);
      +    channel.connectTo(&transport1);
      +    channel.connectTo(&transport2);
      +
      +    testObj.setProp("Hello");
      +
      +    publisher->initializeClient(&transport1);
      +    publisher->initializeClient(&transport2);
      +    publisher->setClientIsIdle(true, &transport1);
      +    QCOMPARE(publisher->isClientIdle(&transport1), true);
      +    QCOMPARE(publisher->isClientIdle(&transport2), false);
      +    QVERIFY(transport1.messagesSent().isEmpty());
      +    QVERIFY(transport2.messagesSent().isEmpty());
      +
      +    testObj.setProp("World");
      +    QTRY_COMPARE_WITH_TIMEOUT(transport1.messagesSent().size(), 1u, 2000);
      +    QCOMPARE(transport2.messagesSent().size(), 0u);
      +    publisher->setClientIsIdle(true, &transport2);
      +    QTRY_COMPARE_WITH_TIMEOUT(transport2.messagesSent().size(), 1u, 2000);
      +    QCOMPARE(publisher->isClientIdle(&transport1), false);
      +    QCOMPARE(publisher->isClientIdle(&transport2), false);
      +
      +    testObj.setProp("!!!");
      +    publisher->setClientIsIdle(true, &transport2);
      +    QCOMPARE(publisher->isClientIdle(&transport2), true);
      +    QCOMPARE(publisher->isClientIdle(&transport1), false);
      +    QTRY_COMPARE_WITH_TIMEOUT(transport2.messagesSent().size(), 2u, 2000);
      +    QCOMPARE(transport1.messagesSent().size(), 1u);
      +    publisher->setClientIsIdle(true, &transport1);
      +    QTRY_COMPARE_WITH_TIMEOUT(transport1.messagesSent().size(), 2u, 2000);
      +    QCOMPARE(publisher->isClientIdle(&transport1), false);
      +    QCOMPARE(publisher->isClientIdle(&transport2), false);
      +}
      +
       class FunctionWrapper : public QObject
       {
           Q_OBJECT
      @@ -1082,7 +1124,7 @@ void TestWebChannel::benchInitializeClients()
       
               publisher->propertyUpdatesInitialized = false;
               publisher->signalToPropertyMap.clear();
      -        publisher->signalHandler.clear();
      +        publisher->signalHandlers.clear();
           }
       }
       
      @@ -1107,7 +1149,7 @@ void TestWebChannel::benchPropertyUpdates()
                   obj->change();
               }
       
      -        channel.d_func()->publisher->clientIsIdle = true;
      +        channel.d_func()->publisher->setClientIsIdle(true, m_dummyTransport);
               channel.d_func()->publisher->sendPendingPropertyUpdates();
           }
       }
      diff --git a/qtwebchannel/tests/auto/webchannel/tst_webchannel.h b/qtwebchannel/tests/auto/webchannel/tst_webchannel.h
      index eae21f4..dd4e690 100644
      --- a/qtwebchannel/tests/auto/webchannel/tst_webchannel.h
      +++ b/qtwebchannel/tests/auto/webchannel/tst_webchannel.h
      @@ -348,6 +348,7 @@ private slots:
           void testJsonToVariant();
           void testInfiniteRecursion();
           void testAsyncObject();
      +    void testPropertyMultipleTransports();
           void testDeletionDuringMethodInvocation_data();
           void testDeletionDuringMethodInvocation();
       
      Submodule qtwebsockets 373947b7..6a499125:
      diff --git a/qtwebsockets/src/websockets/qwebsocket_p.cpp b/qtwebsockets/src/websockets/qwebsocket_p.cpp
      index aedc3c6..824184a 100644
      --- a/qtwebsockets/src/websockets/qwebsocket_p.cpp
      +++ b/qtwebsockets/src/websockets/qwebsocket_p.cpp
      @@ -270,6 +270,11 @@ QSslConfiguration QWebSocketPrivate::sslConfiguration() const
       void QWebSocketPrivate::ignoreSslErrors(const QList &errors)
       {
           m_configuration.m_ignoredSslErrors = errors;
      +    if (Q_LIKELY(m_pSocket)) {
      +        QSslSocket *pSslSocket = qobject_cast(m_pSocket);
      +        if (Q_LIKELY(pSslSocket))
      +            pSslSocket->ignoreSslErrors(errors);
      +    }
       }
       
       /*!
      diff --git a/qtwebsockets/src/websockets/qwebsocketdataprocessor.cpp b/qtwebsockets/src/websockets/qwebsocketdataprocessor.cpp
      index e2cc291..69c4fa8 100644
      --- a/qtwebsockets/src/websockets/qwebsocketdataprocessor.cpp
      +++ b/qtwebsockets/src/websockets/qwebsocketdataprocessor.cpp
      @@ -269,6 +269,7 @@ void QWebSocketDataProcessor::clear()
           if (!m_pConverterState)
               m_pConverterState = new QTextCodec::ConverterState(QTextCodec::ConvertInvalidToNull |
                                                                  QTextCodec::IgnoreHeader);
      +    frame.clear();
       }
       
       /*!
      diff --git a/qtwebsockets/src/websockets/qwebsocketprotocol.cpp b/qtwebsockets/src/websockets/qwebsocketprotocol.cpp
      index df87a93..d0465f1 100644
      --- a/qtwebsockets/src/websockets/qwebsocketprotocol.cpp
      +++ b/qtwebsockets/src/websockets/qwebsocketprotocol.cpp
      @@ -210,7 +210,7 @@ void QWebSocketProtocol::mask(char *payload, quint64 size, quint32 maskingKey)
                                   quint8((maskingKey & 0x0000FF00u) >> 8),
                                   quint8((maskingKey & 0x000000FFu))
                                 };
      -    int i = 0;
      +    quint64 i = 0;
           while (size-- > 0)
               *payload++ ^= mask[i++ % 4];
       }