Spaces:
Runtime error
Runtime error
Etash Guha Claude Opus 4.5 commited on
Commit ·
059012c
1
Parent(s): 6e295e3
Add UMAP PaperAgent MCP server
Browse files- MCP server with 4 tools: umap_reduce_dimensions, umap_parameter_sweep,
umap_compare_metrics, umap_with_labels
- Docker deployment for HuggingFace Spaces
- Sample data (iris, digits datasets)
- Based on McInnes et al. (2018) arXiv:1802.03426
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Dockerfile +29 -0
- README.md +35 -9
- app.py +99 -0
- mcp/requirements.txt +6 -0
- mcp/umap_mcp.py +378 -0
- tmp/inputs/digits_data.csv +0 -0
- tmp/inputs/digits_labels.csv +1798 -0
- tmp/inputs/iris_data.csv +151 -0
- tmp/inputs/iris_labels.csv +151 -0
Dockerfile
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.10-slim
|
| 2 |
+
|
| 3 |
+
WORKDIR /app
|
| 4 |
+
|
| 5 |
+
# Install system dependencies
|
| 6 |
+
RUN apt-get update && apt-get install -y \
|
| 7 |
+
build-essential \
|
| 8 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 9 |
+
|
| 10 |
+
# Copy requirements and install
|
| 11 |
+
COPY mcp/requirements.txt .
|
| 12 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 13 |
+
RUN pip install --no-cache-dir uvicorn starlette
|
| 14 |
+
|
| 15 |
+
# Copy application code
|
| 16 |
+
COPY . .
|
| 17 |
+
|
| 18 |
+
# Create data directories
|
| 19 |
+
RUN mkdir -p /data/upload /data/tmp_outputs
|
| 20 |
+
|
| 21 |
+
# Set environment variables
|
| 22 |
+
ENV UMAP_OUTPUT_DIR=/data/tmp_outputs
|
| 23 |
+
ENV UMAP_INPUT_DIR=/data/upload
|
| 24 |
+
|
| 25 |
+
# Expose port
|
| 26 |
+
EXPOSE 7860
|
| 27 |
+
|
| 28 |
+
# Run the application
|
| 29 |
+
CMD ["python", "app.py"]
|
README.md
CHANGED
|
@@ -1,12 +1,38 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
-
sdk:
|
| 7 |
-
|
| 8 |
-
app_file: app.py
|
| 9 |
-
pinned: false
|
| 10 |
---
|
| 11 |
|
| 12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: UMAP PaperAgent
|
| 3 |
+
emoji: 🗺️
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: purple
|
| 6 |
+
sdk: docker
|
| 7 |
+
app_port: 7860
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
+
# UMAP PaperAgent
|
| 11 |
+
|
| 12 |
+
A PaperAgent MCP server for the UMAP dimensionality reduction algorithm.
|
| 13 |
+
|
| 14 |
+
## Paper Reference
|
| 15 |
+
|
| 16 |
+
McInnes, L., Healy, J., & Melville, J. (2018). **UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction**. [arXiv:1802.03426](https://arxiv.org/abs/1802.03426)
|
| 17 |
+
|
| 18 |
+
## Available MCP Tools
|
| 19 |
+
|
| 20 |
+
| Tool | Description |
|
| 21 |
+
|------|-------------|
|
| 22 |
+
| `umap_reduce_dimensions` | Basic UMAP dimensionality reduction |
|
| 23 |
+
| `umap_parameter_sweep` | Grid of UMAP results with different parameters |
|
| 24 |
+
| `umap_compare_metrics` | Compare distance metrics |
|
| 25 |
+
| `umap_with_labels` | UMAP with colored class labels |
|
| 26 |
+
|
| 27 |
+
## Usage with Claude Code
|
| 28 |
+
|
| 29 |
+
```bash
|
| 30 |
+
claude mcp add --transport http umap "https://EtashGuha-umap-agent.hf.space/mcp"
|
| 31 |
+
```
|
| 32 |
+
|
| 33 |
+
## API Endpoints
|
| 34 |
+
|
| 35 |
+
- `GET /` - Server info
|
| 36 |
+
- `POST /upload` - Upload data files
|
| 37 |
+
- `GET /outputs/{filename}` - Download results
|
| 38 |
+
- `POST /mcp` - MCP protocol endpoint
|
app.py
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
UMAP PaperAgent - HuggingFace Spaces Deployment
|
| 3 |
+
|
| 4 |
+
Based on: McInnes, L., Healy, J., & Melville, J. (2018).
|
| 5 |
+
UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction.
|
| 6 |
+
arXiv:1802.03426
|
| 7 |
+
"""
|
| 8 |
+
|
| 9 |
+
import os
|
| 10 |
+
import uuid
|
| 11 |
+
from pathlib import Path
|
| 12 |
+
from starlette.applications import Starlette
|
| 13 |
+
from starlette.routing import Route, Mount
|
| 14 |
+
from starlette.responses import JSONResponse, FileResponse
|
| 15 |
+
from starlette.requests import Request
|
| 16 |
+
from fastmcp.server.http import create_sse_app
|
| 17 |
+
|
| 18 |
+
# Import the MCP server
|
| 19 |
+
import sys
|
| 20 |
+
sys.path.insert(0, str(Path(__file__).parent / "mcp"))
|
| 21 |
+
from umap_mcp import mcp
|
| 22 |
+
|
| 23 |
+
# Setup directories
|
| 24 |
+
UPLOAD_DIR = Path("/data/upload")
|
| 25 |
+
OUTPUT_DIR = Path("/data/tmp_outputs")
|
| 26 |
+
UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
|
| 27 |
+
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
| 28 |
+
|
| 29 |
+
# Update MCP paths
|
| 30 |
+
os.environ["UMAP_OUTPUT_DIR"] = str(OUTPUT_DIR)
|
| 31 |
+
os.environ["UMAP_INPUT_DIR"] = str(UPLOAD_DIR)
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
async def root(request: Request):
|
| 35 |
+
"""Root endpoint with API info."""
|
| 36 |
+
return JSONResponse({
|
| 37 |
+
"name": "UMAP PaperAgent",
|
| 38 |
+
"paper": "McInnes et al. (2018) - UMAP: Uniform Manifold Approximation and Projection",
|
| 39 |
+
"arxiv": "https://arxiv.org/abs/1802.03426",
|
| 40 |
+
"endpoints": {
|
| 41 |
+
"/mcp": "MCP protocol endpoint",
|
| 42 |
+
"/upload": "Upload data files",
|
| 43 |
+
"/outputs/{filename}": "Download output files"
|
| 44 |
+
},
|
| 45 |
+
"tools": [
|
| 46 |
+
"umap_reduce_dimensions",
|
| 47 |
+
"umap_parameter_sweep",
|
| 48 |
+
"umap_compare_metrics",
|
| 49 |
+
"umap_with_labels"
|
| 50 |
+
]
|
| 51 |
+
})
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
async def upload_file(request: Request):
|
| 55 |
+
"""Upload a file to the server."""
|
| 56 |
+
form = await request.form()
|
| 57 |
+
file = form.get("file")
|
| 58 |
+
if not file:
|
| 59 |
+
return JSONResponse({"error": "No file provided"}, status_code=400)
|
| 60 |
+
|
| 61 |
+
file_id = uuid.uuid4().hex
|
| 62 |
+
ext = Path(file.filename).suffix if file.filename else ".txt"
|
| 63 |
+
save_path = UPLOAD_DIR / f"{file_id}{ext}"
|
| 64 |
+
|
| 65 |
+
content = await file.read()
|
| 66 |
+
with open(save_path, "wb") as f:
|
| 67 |
+
f.write(content)
|
| 68 |
+
|
| 69 |
+
return JSONResponse({"path": str(save_path)})
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
async def get_output(request: Request):
|
| 73 |
+
"""Download an output file."""
|
| 74 |
+
filename = request.path_params["filename"]
|
| 75 |
+
file_path = OUTPUT_DIR / filename
|
| 76 |
+
if file_path.exists():
|
| 77 |
+
return FileResponse(file_path)
|
| 78 |
+
return JSONResponse({"error": "File not found"}, status_code=404)
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
# Custom routes
|
| 82 |
+
custom_routes = [
|
| 83 |
+
Route("/", root),
|
| 84 |
+
Route("/upload", upload_file, methods=["POST"]),
|
| 85 |
+
Route("/outputs/{filename}", get_output),
|
| 86 |
+
]
|
| 87 |
+
|
| 88 |
+
# Create the MCP SSE app
|
| 89 |
+
app = create_sse_app(
|
| 90 |
+
mcp,
|
| 91 |
+
message_path="/mcp",
|
| 92 |
+
sse_path="/mcp/sse",
|
| 93 |
+
routes=custom_routes
|
| 94 |
+
)
|
| 95 |
+
|
| 96 |
+
|
| 97 |
+
if __name__ == "__main__":
|
| 98 |
+
import uvicorn
|
| 99 |
+
uvicorn.run(app, host="0.0.0.0", port=7860)
|
mcp/requirements.txt
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
fastmcp>=2.0.0
|
| 2 |
+
umap-learn>=0.5.0
|
| 3 |
+
pandas>=1.5.0
|
| 4 |
+
numpy>=1.21.0
|
| 5 |
+
matplotlib>=3.5.0
|
| 6 |
+
scikit-learn>=1.0.0
|
mcp/umap_mcp.py
ADDED
|
@@ -0,0 +1,378 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
UMAP PaperAgent MCP Server
|
| 3 |
+
|
| 4 |
+
Based on: McInnes, L., Healy, J., & Melville, J. (2018).
|
| 5 |
+
UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction.
|
| 6 |
+
arXiv:1802.03426
|
| 7 |
+
|
| 8 |
+
This MCP server provides tools for dimensionality reduction and visualization
|
| 9 |
+
using the UMAP algorithm, following the Paper2Agent framework.
|
| 10 |
+
"""
|
| 11 |
+
|
| 12 |
+
from fastmcp import FastMCP
|
| 13 |
+
from typing import Annotated, Literal, Optional, List
|
| 14 |
+
import os
|
| 15 |
+
from pathlib import Path
|
| 16 |
+
from datetime import datetime
|
| 17 |
+
|
| 18 |
+
# Create MCP server
|
| 19 |
+
mcp = FastMCP(name="UMAP")
|
| 20 |
+
|
| 21 |
+
# Project paths
|
| 22 |
+
PROJECT_ROOT = Path(__file__).parent.parent.resolve()
|
| 23 |
+
DEFAULT_OUTPUT_DIR = PROJECT_ROOT / "tmp" / "outputs"
|
| 24 |
+
DEFAULT_INPUT_DIR = PROJECT_ROOT / "tmp" / "inputs"
|
| 25 |
+
|
| 26 |
+
OUTPUT_DIR = Path(os.environ.get("UMAP_OUTPUT_DIR", DEFAULT_OUTPUT_DIR))
|
| 27 |
+
INPUT_DIR = Path(os.environ.get("UMAP_INPUT_DIR", DEFAULT_INPUT_DIR))
|
| 28 |
+
|
| 29 |
+
OUTPUT_DIR.mkdir(parents=True, exist_ok=True)
|
| 30 |
+
INPUT_DIR.mkdir(parents=True, exist_ok=True)
|
| 31 |
+
|
| 32 |
+
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
@mcp.tool()
|
| 36 |
+
def umap_reduce_dimensions(
|
| 37 |
+
data_path: Annotated[str, "Path to input data file (CSV format with samples as rows, features as columns)"],
|
| 38 |
+
n_neighbors: Annotated[int, "Number of neighbors for local structure (default: 15). Higher values capture more global structure."] = 15,
|
| 39 |
+
min_dist: Annotated[float, "Minimum distance between points in embedding (default: 0.1). Lower values create tighter clusters."] = 0.1,
|
| 40 |
+
n_components: Annotated[int, "Number of dimensions in output embedding (default: 2)"] = 2,
|
| 41 |
+
metric: Annotated[Literal["euclidean", "manhattan", "cosine", "correlation"], "Distance metric to use"] = "euclidean",
|
| 42 |
+
random_state: Annotated[int, "Random seed for reproducibility"] = 42,
|
| 43 |
+
out_prefix: Annotated[Optional[str], "Output file prefix"] = None,
|
| 44 |
+
) -> dict:
|
| 45 |
+
"""
|
| 46 |
+
Perform UMAP dimensionality reduction on high-dimensional data.
|
| 47 |
+
|
| 48 |
+
Input is a CSV file with samples as rows and features as columns.
|
| 49 |
+
Output is the UMAP embedding coordinates and a visualization.
|
| 50 |
+
|
| 51 |
+
Reference: McInnes et al. (2018) arXiv:1802.03426
|
| 52 |
+
"""
|
| 53 |
+
import pandas as pd
|
| 54 |
+
import numpy as np
|
| 55 |
+
import umap
|
| 56 |
+
import matplotlib
|
| 57 |
+
matplotlib.use('Agg')
|
| 58 |
+
import matplotlib.pyplot as plt
|
| 59 |
+
|
| 60 |
+
# Load data
|
| 61 |
+
if not os.path.exists(data_path):
|
| 62 |
+
return {"error": f"Data file not found: {data_path}"}
|
| 63 |
+
|
| 64 |
+
df = pd.read_csv(data_path, index_col=0)
|
| 65 |
+
X = df.values
|
| 66 |
+
|
| 67 |
+
# Run UMAP
|
| 68 |
+
reducer = umap.UMAP(
|
| 69 |
+
n_neighbors=n_neighbors,
|
| 70 |
+
min_dist=min_dist,
|
| 71 |
+
n_components=n_components,
|
| 72 |
+
metric=metric,
|
| 73 |
+
random_state=random_state
|
| 74 |
+
)
|
| 75 |
+
|
| 76 |
+
embedding = reducer.fit_transform(X)
|
| 77 |
+
|
| 78 |
+
# Create output prefix
|
| 79 |
+
if out_prefix is None:
|
| 80 |
+
out_prefix = f"umap_{timestamp}"
|
| 81 |
+
|
| 82 |
+
# Save embedding
|
| 83 |
+
embedding_df = pd.DataFrame(
|
| 84 |
+
embedding,
|
| 85 |
+
columns=[f"UMAP{i+1}" for i in range(n_components)],
|
| 86 |
+
index=df.index
|
| 87 |
+
)
|
| 88 |
+
embedding_path = OUTPUT_DIR / f"{out_prefix}_embedding.csv"
|
| 89 |
+
embedding_df.to_csv(embedding_path)
|
| 90 |
+
|
| 91 |
+
# Create visualization (if 2D)
|
| 92 |
+
viz_path = None
|
| 93 |
+
if n_components == 2:
|
| 94 |
+
fig, ax = plt.subplots(figsize=(10, 8))
|
| 95 |
+
scatter = ax.scatter(embedding[:, 0], embedding[:, 1],
|
| 96 |
+
c=range(len(embedding)), cmap='viridis',
|
| 97 |
+
alpha=0.6, s=10)
|
| 98 |
+
ax.set_xlabel('UMAP1', fontsize=12)
|
| 99 |
+
ax.set_ylabel('UMAP2', fontsize=12)
|
| 100 |
+
ax.set_title(f'UMAP Embedding\n(n_neighbors={n_neighbors}, min_dist={min_dist}, metric={metric})',
|
| 101 |
+
fontsize=14)
|
| 102 |
+
plt.colorbar(scatter, ax=ax, label='Sample index')
|
| 103 |
+
|
| 104 |
+
viz_path = OUTPUT_DIR / f"{out_prefix}_visualization.png"
|
| 105 |
+
plt.savefig(viz_path, dpi=150, bbox_inches='tight')
|
| 106 |
+
plt.close()
|
| 107 |
+
|
| 108 |
+
artifacts = [
|
| 109 |
+
{"description": "UMAP embedding coordinates", "path": str(embedding_path)}
|
| 110 |
+
]
|
| 111 |
+
if viz_path:
|
| 112 |
+
artifacts.append({"description": "UMAP visualization", "path": str(viz_path)})
|
| 113 |
+
|
| 114 |
+
return {
|
| 115 |
+
"message": f"UMAP reduction completed: {X.shape[0]} samples, {X.shape[1]} features -> {n_components} dimensions",
|
| 116 |
+
"reference": "https://arxiv.org/abs/1802.03426",
|
| 117 |
+
"parameters": {
|
| 118 |
+
"n_neighbors": n_neighbors,
|
| 119 |
+
"min_dist": min_dist,
|
| 120 |
+
"n_components": n_components,
|
| 121 |
+
"metric": metric
|
| 122 |
+
},
|
| 123 |
+
"artifacts": artifacts
|
| 124 |
+
}
|
| 125 |
+
|
| 126 |
+
|
| 127 |
+
@mcp.tool()
|
| 128 |
+
def umap_parameter_sweep(
|
| 129 |
+
data_path: Annotated[str, "Path to input data file (CSV format)"],
|
| 130 |
+
n_neighbors_values: Annotated[List[int], "List of n_neighbors values to test"] = [5, 15, 50],
|
| 131 |
+
min_dist_values: Annotated[List[float], "List of min_dist values to test"] = [0.0, 0.1, 0.5],
|
| 132 |
+
metric: Annotated[Literal["euclidean", "manhattan", "cosine", "correlation"], "Distance metric"] = "euclidean",
|
| 133 |
+
random_state: Annotated[int, "Random seed"] = 42,
|
| 134 |
+
out_prefix: Annotated[Optional[str], "Output file prefix"] = None,
|
| 135 |
+
) -> dict:
|
| 136 |
+
"""
|
| 137 |
+
Perform parameter sweep to visualize how UMAP parameters affect the embedding.
|
| 138 |
+
|
| 139 |
+
Creates a grid of UMAP visualizations with different n_neighbors and min_dist values.
|
| 140 |
+
This helps understand the paper's key insight about balancing local vs global structure.
|
| 141 |
+
|
| 142 |
+
Reference: McInnes et al. (2018) arXiv:1802.03426
|
| 143 |
+
"""
|
| 144 |
+
import pandas as pd
|
| 145 |
+
import numpy as np
|
| 146 |
+
import umap
|
| 147 |
+
import matplotlib
|
| 148 |
+
matplotlib.use('Agg')
|
| 149 |
+
import matplotlib.pyplot as plt
|
| 150 |
+
|
| 151 |
+
if not os.path.exists(data_path):
|
| 152 |
+
return {"error": f"Data file not found: {data_path}"}
|
| 153 |
+
|
| 154 |
+
df = pd.read_csv(data_path, index_col=0)
|
| 155 |
+
X = df.values
|
| 156 |
+
|
| 157 |
+
if out_prefix is None:
|
| 158 |
+
out_prefix = f"umap_sweep_{timestamp}"
|
| 159 |
+
|
| 160 |
+
n_rows = len(n_neighbors_values)
|
| 161 |
+
n_cols = len(min_dist_values)
|
| 162 |
+
|
| 163 |
+
fig, axes = plt.subplots(n_rows, n_cols, figsize=(4*n_cols, 4*n_rows))
|
| 164 |
+
if n_rows == 1:
|
| 165 |
+
axes = axes.reshape(1, -1)
|
| 166 |
+
if n_cols == 1:
|
| 167 |
+
axes = axes.reshape(-1, 1)
|
| 168 |
+
|
| 169 |
+
for i, n_neighbors in enumerate(n_neighbors_values):
|
| 170 |
+
for j, min_dist in enumerate(min_dist_values):
|
| 171 |
+
reducer = umap.UMAP(
|
| 172 |
+
n_neighbors=n_neighbors,
|
| 173 |
+
min_dist=min_dist,
|
| 174 |
+
n_components=2,
|
| 175 |
+
metric=metric,
|
| 176 |
+
random_state=random_state
|
| 177 |
+
)
|
| 178 |
+
embedding = reducer.fit_transform(X)
|
| 179 |
+
|
| 180 |
+
ax = axes[i, j]
|
| 181 |
+
ax.scatter(embedding[:, 0], embedding[:, 1],
|
| 182 |
+
c=range(len(embedding)), cmap='viridis',
|
| 183 |
+
alpha=0.6, s=5)
|
| 184 |
+
ax.set_title(f'n_neighbors={n_neighbors}\nmin_dist={min_dist}', fontsize=10)
|
| 185 |
+
ax.set_xticks([])
|
| 186 |
+
ax.set_yticks([])
|
| 187 |
+
|
| 188 |
+
fig.suptitle(f'UMAP Parameter Sweep (metric={metric})\n'
|
| 189 |
+
f'Top to bottom: increasing n_neighbors (more global)\n'
|
| 190 |
+
f'Left to right: increasing min_dist (more spread)',
|
| 191 |
+
fontsize=12, y=1.02)
|
| 192 |
+
plt.tight_layout()
|
| 193 |
+
|
| 194 |
+
viz_path = OUTPUT_DIR / f"{out_prefix}_parameter_sweep.png"
|
| 195 |
+
plt.savefig(viz_path, dpi=150, bbox_inches='tight')
|
| 196 |
+
plt.close()
|
| 197 |
+
|
| 198 |
+
return {
|
| 199 |
+
"message": f"Parameter sweep completed: {n_rows}x{n_cols} grid",
|
| 200 |
+
"reference": "https://arxiv.org/abs/1802.03426",
|
| 201 |
+
"parameters_tested": {
|
| 202 |
+
"n_neighbors": n_neighbors_values,
|
| 203 |
+
"min_dist": min_dist_values,
|
| 204 |
+
"metric": metric
|
| 205 |
+
},
|
| 206 |
+
"artifacts": [
|
| 207 |
+
{"description": "Parameter sweep visualization", "path": str(viz_path)}
|
| 208 |
+
]
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
|
| 212 |
+
@mcp.tool()
|
| 213 |
+
def umap_compare_metrics(
|
| 214 |
+
data_path: Annotated[str, "Path to input data file (CSV format)"],
|
| 215 |
+
metrics: Annotated[List[str], "List of distance metrics to compare"] = ["euclidean", "cosine", "manhattan", "correlation"],
|
| 216 |
+
n_neighbors: Annotated[int, "Number of neighbors"] = 15,
|
| 217 |
+
min_dist: Annotated[float, "Minimum distance"] = 0.1,
|
| 218 |
+
random_state: Annotated[int, "Random seed"] = 42,
|
| 219 |
+
out_prefix: Annotated[Optional[str], "Output file prefix"] = None,
|
| 220 |
+
) -> dict:
|
| 221 |
+
"""
|
| 222 |
+
Compare different distance metrics for UMAP embedding.
|
| 223 |
+
|
| 224 |
+
Visualizes how the choice of distance metric affects the embedding structure.
|
| 225 |
+
This demonstrates the paper's flexibility in supporting various metrics.
|
| 226 |
+
|
| 227 |
+
Reference: McInnes et al. (2018) arXiv:1802.03426
|
| 228 |
+
"""
|
| 229 |
+
import pandas as pd
|
| 230 |
+
import numpy as np
|
| 231 |
+
import umap
|
| 232 |
+
import matplotlib
|
| 233 |
+
matplotlib.use('Agg')
|
| 234 |
+
import matplotlib.pyplot as plt
|
| 235 |
+
|
| 236 |
+
if not os.path.exists(data_path):
|
| 237 |
+
return {"error": f"Data file not found: {data_path}"}
|
| 238 |
+
|
| 239 |
+
df = pd.read_csv(data_path, index_col=0)
|
| 240 |
+
X = df.values
|
| 241 |
+
|
| 242 |
+
if out_prefix is None:
|
| 243 |
+
out_prefix = f"umap_metrics_{timestamp}"
|
| 244 |
+
|
| 245 |
+
n_metrics = len(metrics)
|
| 246 |
+
fig, axes = plt.subplots(1, n_metrics, figsize=(4*n_metrics, 4))
|
| 247 |
+
if n_metrics == 1:
|
| 248 |
+
axes = [axes]
|
| 249 |
+
|
| 250 |
+
for i, metric in enumerate(metrics):
|
| 251 |
+
try:
|
| 252 |
+
reducer = umap.UMAP(
|
| 253 |
+
n_neighbors=n_neighbors,
|
| 254 |
+
min_dist=min_dist,
|
| 255 |
+
n_components=2,
|
| 256 |
+
metric=metric,
|
| 257 |
+
random_state=random_state
|
| 258 |
+
)
|
| 259 |
+
embedding = reducer.fit_transform(X)
|
| 260 |
+
|
| 261 |
+
axes[i].scatter(embedding[:, 0], embedding[:, 1],
|
| 262 |
+
c=range(len(embedding)), cmap='viridis',
|
| 263 |
+
alpha=0.6, s=10)
|
| 264 |
+
axes[i].set_title(f'Metric: {metric}', fontsize=12)
|
| 265 |
+
axes[i].set_xlabel('UMAP1')
|
| 266 |
+
axes[i].set_ylabel('UMAP2')
|
| 267 |
+
except Exception as e:
|
| 268 |
+
axes[i].text(0.5, 0.5, f'Error: {str(e)[:30]}',
|
| 269 |
+
ha='center', va='center', transform=axes[i].transAxes)
|
| 270 |
+
axes[i].set_title(f'Metric: {metric} (failed)', fontsize=12)
|
| 271 |
+
|
| 272 |
+
fig.suptitle(f'UMAP Distance Metric Comparison\n(n_neighbors={n_neighbors}, min_dist={min_dist})',
|
| 273 |
+
fontsize=14)
|
| 274 |
+
plt.tight_layout()
|
| 275 |
+
|
| 276 |
+
viz_path = OUTPUT_DIR / f"{out_prefix}_metric_comparison.png"
|
| 277 |
+
plt.savefig(viz_path, dpi=150, bbox_inches='tight')
|
| 278 |
+
plt.close()
|
| 279 |
+
|
| 280 |
+
return {
|
| 281 |
+
"message": f"Metric comparison completed for {n_metrics} metrics",
|
| 282 |
+
"reference": "https://arxiv.org/abs/1802.03426",
|
| 283 |
+
"metrics_compared": metrics,
|
| 284 |
+
"artifacts": [
|
| 285 |
+
{"description": "Metric comparison visualization", "path": str(viz_path)}
|
| 286 |
+
]
|
| 287 |
+
}
|
| 288 |
+
|
| 289 |
+
|
| 290 |
+
@mcp.tool()
|
| 291 |
+
def umap_with_labels(
|
| 292 |
+
data_path: Annotated[str, "Path to input data file (CSV format)"],
|
| 293 |
+
labels_path: Annotated[str, "Path to labels file (CSV with 'label' column)"],
|
| 294 |
+
n_neighbors: Annotated[int, "Number of neighbors"] = 15,
|
| 295 |
+
min_dist: Annotated[float, "Minimum distance"] = 0.1,
|
| 296 |
+
metric: Annotated[Literal["euclidean", "manhattan", "cosine", "correlation"], "Distance metric"] = "euclidean",
|
| 297 |
+
random_state: Annotated[int, "Random seed"] = 42,
|
| 298 |
+
out_prefix: Annotated[Optional[str], "Output file prefix"] = None,
|
| 299 |
+
) -> dict:
|
| 300 |
+
"""
|
| 301 |
+
Perform UMAP with colored labels to assess cluster separation.
|
| 302 |
+
|
| 303 |
+
Useful for evaluating how well UMAP preserves known class structure.
|
| 304 |
+
|
| 305 |
+
Reference: McInnes et al. (2018) arXiv:1802.03426
|
| 306 |
+
"""
|
| 307 |
+
import pandas as pd
|
| 308 |
+
import numpy as np
|
| 309 |
+
import umap
|
| 310 |
+
import matplotlib
|
| 311 |
+
matplotlib.use('Agg')
|
| 312 |
+
import matplotlib.pyplot as plt
|
| 313 |
+
|
| 314 |
+
if not os.path.exists(data_path):
|
| 315 |
+
return {"error": f"Data file not found: {data_path}"}
|
| 316 |
+
if not os.path.exists(labels_path):
|
| 317 |
+
return {"error": f"Labels file not found: {labels_path}"}
|
| 318 |
+
|
| 319 |
+
df = pd.read_csv(data_path, index_col=0)
|
| 320 |
+
labels_df = pd.read_csv(labels_path, index_col=0)
|
| 321 |
+
|
| 322 |
+
X = df.values
|
| 323 |
+
labels = labels_df['label'].values if 'label' in labels_df.columns else labels_df.iloc[:, 0].values
|
| 324 |
+
|
| 325 |
+
if out_prefix is None:
|
| 326 |
+
out_prefix = f"umap_labeled_{timestamp}"
|
| 327 |
+
|
| 328 |
+
reducer = umap.UMAP(
|
| 329 |
+
n_neighbors=n_neighbors,
|
| 330 |
+
min_dist=min_dist,
|
| 331 |
+
n_components=2,
|
| 332 |
+
metric=metric,
|
| 333 |
+
random_state=random_state
|
| 334 |
+
)
|
| 335 |
+
embedding = reducer.fit_transform(X)
|
| 336 |
+
|
| 337 |
+
# Save embedding with labels
|
| 338 |
+
embedding_df = pd.DataFrame(
|
| 339 |
+
embedding,
|
| 340 |
+
columns=['UMAP1', 'UMAP2'],
|
| 341 |
+
index=df.index
|
| 342 |
+
)
|
| 343 |
+
embedding_df['label'] = labels
|
| 344 |
+
embedding_path = OUTPUT_DIR / f"{out_prefix}_embedding.csv"
|
| 345 |
+
embedding_df.to_csv(embedding_path)
|
| 346 |
+
|
| 347 |
+
# Create visualization
|
| 348 |
+
fig, ax = plt.subplots(figsize=(10, 8))
|
| 349 |
+
unique_labels = np.unique(labels)
|
| 350 |
+
colors = plt.cm.tab10(np.linspace(0, 1, len(unique_labels)))
|
| 351 |
+
|
| 352 |
+
for label, color in zip(unique_labels, colors):
|
| 353 |
+
mask = labels == label
|
| 354 |
+
ax.scatter(embedding[mask, 0], embedding[mask, 1],
|
| 355 |
+
c=[color], label=str(label), alpha=0.6, s=15)
|
| 356 |
+
|
| 357 |
+
ax.set_xlabel('UMAP1', fontsize=12)
|
| 358 |
+
ax.set_ylabel('UMAP2', fontsize=12)
|
| 359 |
+
ax.set_title(f'UMAP Embedding with Labels\n(n_neighbors={n_neighbors}, min_dist={min_dist})', fontsize=14)
|
| 360 |
+
ax.legend(title='Label', bbox_to_anchor=(1.05, 1), loc='upper left')
|
| 361 |
+
|
| 362 |
+
viz_path = OUTPUT_DIR / f"{out_prefix}_visualization.png"
|
| 363 |
+
plt.savefig(viz_path, dpi=150, bbox_inches='tight')
|
| 364 |
+
plt.close()
|
| 365 |
+
|
| 366 |
+
return {
|
| 367 |
+
"message": f"UMAP with labels completed: {len(unique_labels)} unique labels",
|
| 368 |
+
"reference": "https://arxiv.org/abs/1802.03426",
|
| 369 |
+
"labels_found": list(map(str, unique_labels)),
|
| 370 |
+
"artifacts": [
|
| 371 |
+
{"description": "UMAP embedding with labels", "path": str(embedding_path)},
|
| 372 |
+
{"description": "Labeled UMAP visualization", "path": str(viz_path)}
|
| 373 |
+
]
|
| 374 |
+
}
|
| 375 |
+
|
| 376 |
+
|
| 377 |
+
if __name__ == "__main__":
|
| 378 |
+
mcp.run()
|
tmp/inputs/digits_data.csv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tmp/inputs/digits_labels.csv
ADDED
|
@@ -0,0 +1,1798 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
,label
|
| 2 |
+
digit_0,0
|
| 3 |
+
digit_1,1
|
| 4 |
+
digit_2,2
|
| 5 |
+
digit_3,3
|
| 6 |
+
digit_4,4
|
| 7 |
+
digit_5,5
|
| 8 |
+
digit_6,6
|
| 9 |
+
digit_7,7
|
| 10 |
+
digit_8,8
|
| 11 |
+
digit_9,9
|
| 12 |
+
digit_10,0
|
| 13 |
+
digit_11,1
|
| 14 |
+
digit_12,2
|
| 15 |
+
digit_13,3
|
| 16 |
+
digit_14,4
|
| 17 |
+
digit_15,5
|
| 18 |
+
digit_16,6
|
| 19 |
+
digit_17,7
|
| 20 |
+
digit_18,8
|
| 21 |
+
digit_19,9
|
| 22 |
+
digit_20,0
|
| 23 |
+
digit_21,1
|
| 24 |
+
digit_22,2
|
| 25 |
+
digit_23,3
|
| 26 |
+
digit_24,4
|
| 27 |
+
digit_25,5
|
| 28 |
+
digit_26,6
|
| 29 |
+
digit_27,7
|
| 30 |
+
digit_28,8
|
| 31 |
+
digit_29,9
|
| 32 |
+
digit_30,0
|
| 33 |
+
digit_31,9
|
| 34 |
+
digit_32,5
|
| 35 |
+
digit_33,5
|
| 36 |
+
digit_34,6
|
| 37 |
+
digit_35,5
|
| 38 |
+
digit_36,0
|
| 39 |
+
digit_37,9
|
| 40 |
+
digit_38,8
|
| 41 |
+
digit_39,9
|
| 42 |
+
digit_40,8
|
| 43 |
+
digit_41,4
|
| 44 |
+
digit_42,1
|
| 45 |
+
digit_43,7
|
| 46 |
+
digit_44,7
|
| 47 |
+
digit_45,3
|
| 48 |
+
digit_46,5
|
| 49 |
+
digit_47,1
|
| 50 |
+
digit_48,0
|
| 51 |
+
digit_49,0
|
| 52 |
+
digit_50,2
|
| 53 |
+
digit_51,2
|
| 54 |
+
digit_52,7
|
| 55 |
+
digit_53,8
|
| 56 |
+
digit_54,2
|
| 57 |
+
digit_55,0
|
| 58 |
+
digit_56,1
|
| 59 |
+
digit_57,2
|
| 60 |
+
digit_58,6
|
| 61 |
+
digit_59,3
|
| 62 |
+
digit_60,3
|
| 63 |
+
digit_61,7
|
| 64 |
+
digit_62,3
|
| 65 |
+
digit_63,3
|
| 66 |
+
digit_64,4
|
| 67 |
+
digit_65,6
|
| 68 |
+
digit_66,6
|
| 69 |
+
digit_67,6
|
| 70 |
+
digit_68,4
|
| 71 |
+
digit_69,9
|
| 72 |
+
digit_70,1
|
| 73 |
+
digit_71,5
|
| 74 |
+
digit_72,0
|
| 75 |
+
digit_73,9
|
| 76 |
+
digit_74,5
|
| 77 |
+
digit_75,2
|
| 78 |
+
digit_76,8
|
| 79 |
+
digit_77,2
|
| 80 |
+
digit_78,0
|
| 81 |
+
digit_79,0
|
| 82 |
+
digit_80,1
|
| 83 |
+
digit_81,7
|
| 84 |
+
digit_82,6
|
| 85 |
+
digit_83,3
|
| 86 |
+
digit_84,2
|
| 87 |
+
digit_85,1
|
| 88 |
+
digit_86,7
|
| 89 |
+
digit_87,4
|
| 90 |
+
digit_88,6
|
| 91 |
+
digit_89,3
|
| 92 |
+
digit_90,1
|
| 93 |
+
digit_91,3
|
| 94 |
+
digit_92,9
|
| 95 |
+
digit_93,1
|
| 96 |
+
digit_94,7
|
| 97 |
+
digit_95,6
|
| 98 |
+
digit_96,8
|
| 99 |
+
digit_97,4
|
| 100 |
+
digit_98,3
|
| 101 |
+
digit_99,1
|
| 102 |
+
digit_100,4
|
| 103 |
+
digit_101,0
|
| 104 |
+
digit_102,5
|
| 105 |
+
digit_103,3
|
| 106 |
+
digit_104,6
|
| 107 |
+
digit_105,9
|
| 108 |
+
digit_106,6
|
| 109 |
+
digit_107,1
|
| 110 |
+
digit_108,7
|
| 111 |
+
digit_109,5
|
| 112 |
+
digit_110,4
|
| 113 |
+
digit_111,4
|
| 114 |
+
digit_112,7
|
| 115 |
+
digit_113,2
|
| 116 |
+
digit_114,8
|
| 117 |
+
digit_115,2
|
| 118 |
+
digit_116,2
|
| 119 |
+
digit_117,5
|
| 120 |
+
digit_118,7
|
| 121 |
+
digit_119,9
|
| 122 |
+
digit_120,5
|
| 123 |
+
digit_121,4
|
| 124 |
+
digit_122,8
|
| 125 |
+
digit_123,8
|
| 126 |
+
digit_124,4
|
| 127 |
+
digit_125,9
|
| 128 |
+
digit_126,0
|
| 129 |
+
digit_127,8
|
| 130 |
+
digit_128,9
|
| 131 |
+
digit_129,8
|
| 132 |
+
digit_130,0
|
| 133 |
+
digit_131,1
|
| 134 |
+
digit_132,2
|
| 135 |
+
digit_133,3
|
| 136 |
+
digit_134,4
|
| 137 |
+
digit_135,5
|
| 138 |
+
digit_136,6
|
| 139 |
+
digit_137,7
|
| 140 |
+
digit_138,8
|
| 141 |
+
digit_139,9
|
| 142 |
+
digit_140,0
|
| 143 |
+
digit_141,1
|
| 144 |
+
digit_142,2
|
| 145 |
+
digit_143,3
|
| 146 |
+
digit_144,4
|
| 147 |
+
digit_145,5
|
| 148 |
+
digit_146,6
|
| 149 |
+
digit_147,7
|
| 150 |
+
digit_148,8
|
| 151 |
+
digit_149,9
|
| 152 |
+
digit_150,0
|
| 153 |
+
digit_151,1
|
| 154 |
+
digit_152,2
|
| 155 |
+
digit_153,3
|
| 156 |
+
digit_154,4
|
| 157 |
+
digit_155,5
|
| 158 |
+
digit_156,6
|
| 159 |
+
digit_157,7
|
| 160 |
+
digit_158,8
|
| 161 |
+
digit_159,9
|
| 162 |
+
digit_160,0
|
| 163 |
+
digit_161,9
|
| 164 |
+
digit_162,5
|
| 165 |
+
digit_163,5
|
| 166 |
+
digit_164,6
|
| 167 |
+
digit_165,5
|
| 168 |
+
digit_166,0
|
| 169 |
+
digit_167,9
|
| 170 |
+
digit_168,8
|
| 171 |
+
digit_169,9
|
| 172 |
+
digit_170,8
|
| 173 |
+
digit_171,4
|
| 174 |
+
digit_172,1
|
| 175 |
+
digit_173,7
|
| 176 |
+
digit_174,7
|
| 177 |
+
digit_175,3
|
| 178 |
+
digit_176,5
|
| 179 |
+
digit_177,1
|
| 180 |
+
digit_178,0
|
| 181 |
+
digit_179,0
|
| 182 |
+
digit_180,2
|
| 183 |
+
digit_181,2
|
| 184 |
+
digit_182,7
|
| 185 |
+
digit_183,8
|
| 186 |
+
digit_184,2
|
| 187 |
+
digit_185,0
|
| 188 |
+
digit_186,1
|
| 189 |
+
digit_187,2
|
| 190 |
+
digit_188,6
|
| 191 |
+
digit_189,3
|
| 192 |
+
digit_190,3
|
| 193 |
+
digit_191,7
|
| 194 |
+
digit_192,3
|
| 195 |
+
digit_193,3
|
| 196 |
+
digit_194,4
|
| 197 |
+
digit_195,6
|
| 198 |
+
digit_196,6
|
| 199 |
+
digit_197,6
|
| 200 |
+
digit_198,4
|
| 201 |
+
digit_199,9
|
| 202 |
+
digit_200,1
|
| 203 |
+
digit_201,5
|
| 204 |
+
digit_202,0
|
| 205 |
+
digit_203,9
|
| 206 |
+
digit_204,5
|
| 207 |
+
digit_205,2
|
| 208 |
+
digit_206,8
|
| 209 |
+
digit_207,2
|
| 210 |
+
digit_208,0
|
| 211 |
+
digit_209,0
|
| 212 |
+
digit_210,1
|
| 213 |
+
digit_211,7
|
| 214 |
+
digit_212,6
|
| 215 |
+
digit_213,3
|
| 216 |
+
digit_214,2
|
| 217 |
+
digit_215,1
|
| 218 |
+
digit_216,7
|
| 219 |
+
digit_217,3
|
| 220 |
+
digit_218,1
|
| 221 |
+
digit_219,3
|
| 222 |
+
digit_220,9
|
| 223 |
+
digit_221,1
|
| 224 |
+
digit_222,7
|
| 225 |
+
digit_223,6
|
| 226 |
+
digit_224,8
|
| 227 |
+
digit_225,4
|
| 228 |
+
digit_226,3
|
| 229 |
+
digit_227,1
|
| 230 |
+
digit_228,4
|
| 231 |
+
digit_229,0
|
| 232 |
+
digit_230,5
|
| 233 |
+
digit_231,3
|
| 234 |
+
digit_232,6
|
| 235 |
+
digit_233,9
|
| 236 |
+
digit_234,6
|
| 237 |
+
digit_235,1
|
| 238 |
+
digit_236,7
|
| 239 |
+
digit_237,5
|
| 240 |
+
digit_238,4
|
| 241 |
+
digit_239,4
|
| 242 |
+
digit_240,7
|
| 243 |
+
digit_241,2
|
| 244 |
+
digit_242,8
|
| 245 |
+
digit_243,2
|
| 246 |
+
digit_244,2
|
| 247 |
+
digit_245,5
|
| 248 |
+
digit_246,5
|
| 249 |
+
digit_247,4
|
| 250 |
+
digit_248,8
|
| 251 |
+
digit_249,8
|
| 252 |
+
digit_250,4
|
| 253 |
+
digit_251,9
|
| 254 |
+
digit_252,0
|
| 255 |
+
digit_253,8
|
| 256 |
+
digit_254,9
|
| 257 |
+
digit_255,8
|
| 258 |
+
digit_256,0
|
| 259 |
+
digit_257,1
|
| 260 |
+
digit_258,2
|
| 261 |
+
digit_259,3
|
| 262 |
+
digit_260,4
|
| 263 |
+
digit_261,5
|
| 264 |
+
digit_262,6
|
| 265 |
+
digit_263,7
|
| 266 |
+
digit_264,8
|
| 267 |
+
digit_265,9
|
| 268 |
+
digit_266,0
|
| 269 |
+
digit_267,1
|
| 270 |
+
digit_268,2
|
| 271 |
+
digit_269,3
|
| 272 |
+
digit_270,4
|
| 273 |
+
digit_271,5
|
| 274 |
+
digit_272,6
|
| 275 |
+
digit_273,7
|
| 276 |
+
digit_274,8
|
| 277 |
+
digit_275,9
|
| 278 |
+
digit_276,0
|
| 279 |
+
digit_277,1
|
| 280 |
+
digit_278,2
|
| 281 |
+
digit_279,3
|
| 282 |
+
digit_280,4
|
| 283 |
+
digit_281,5
|
| 284 |
+
digit_282,6
|
| 285 |
+
digit_283,7
|
| 286 |
+
digit_284,8
|
| 287 |
+
digit_285,9
|
| 288 |
+
digit_286,0
|
| 289 |
+
digit_287,9
|
| 290 |
+
digit_288,5
|
| 291 |
+
digit_289,5
|
| 292 |
+
digit_290,6
|
| 293 |
+
digit_291,5
|
| 294 |
+
digit_292,0
|
| 295 |
+
digit_293,9
|
| 296 |
+
digit_294,8
|
| 297 |
+
digit_295,9
|
| 298 |
+
digit_296,8
|
| 299 |
+
digit_297,4
|
| 300 |
+
digit_298,1
|
| 301 |
+
digit_299,7
|
| 302 |
+
digit_300,7
|
| 303 |
+
digit_301,3
|
| 304 |
+
digit_302,5
|
| 305 |
+
digit_303,1
|
| 306 |
+
digit_304,0
|
| 307 |
+
digit_305,0
|
| 308 |
+
digit_306,2
|
| 309 |
+
digit_307,2
|
| 310 |
+
digit_308,7
|
| 311 |
+
digit_309,8
|
| 312 |
+
digit_310,2
|
| 313 |
+
digit_311,0
|
| 314 |
+
digit_312,1
|
| 315 |
+
digit_313,2
|
| 316 |
+
digit_314,6
|
| 317 |
+
digit_315,3
|
| 318 |
+
digit_316,3
|
| 319 |
+
digit_317,7
|
| 320 |
+
digit_318,3
|
| 321 |
+
digit_319,3
|
| 322 |
+
digit_320,4
|
| 323 |
+
digit_321,6
|
| 324 |
+
digit_322,6
|
| 325 |
+
digit_323,6
|
| 326 |
+
digit_324,4
|
| 327 |
+
digit_325,9
|
| 328 |
+
digit_326,1
|
| 329 |
+
digit_327,5
|
| 330 |
+
digit_328,0
|
| 331 |
+
digit_329,9
|
| 332 |
+
digit_330,5
|
| 333 |
+
digit_331,2
|
| 334 |
+
digit_332,8
|
| 335 |
+
digit_333,2
|
| 336 |
+
digit_334,0
|
| 337 |
+
digit_335,0
|
| 338 |
+
digit_336,1
|
| 339 |
+
digit_337,7
|
| 340 |
+
digit_338,6
|
| 341 |
+
digit_339,3
|
| 342 |
+
digit_340,2
|
| 343 |
+
digit_341,1
|
| 344 |
+
digit_342,7
|
| 345 |
+
digit_343,4
|
| 346 |
+
digit_344,6
|
| 347 |
+
digit_345,3
|
| 348 |
+
digit_346,1
|
| 349 |
+
digit_347,3
|
| 350 |
+
digit_348,9
|
| 351 |
+
digit_349,1
|
| 352 |
+
digit_350,7
|
| 353 |
+
digit_351,6
|
| 354 |
+
digit_352,8
|
| 355 |
+
digit_353,4
|
| 356 |
+
digit_354,3
|
| 357 |
+
digit_355,1
|
| 358 |
+
digit_356,4
|
| 359 |
+
digit_357,0
|
| 360 |
+
digit_358,5
|
| 361 |
+
digit_359,3
|
| 362 |
+
digit_360,6
|
| 363 |
+
digit_361,9
|
| 364 |
+
digit_362,6
|
| 365 |
+
digit_363,1
|
| 366 |
+
digit_364,7
|
| 367 |
+
digit_365,5
|
| 368 |
+
digit_366,4
|
| 369 |
+
digit_367,4
|
| 370 |
+
digit_368,7
|
| 371 |
+
digit_369,2
|
| 372 |
+
digit_370,8
|
| 373 |
+
digit_371,2
|
| 374 |
+
digit_372,2
|
| 375 |
+
digit_373,5
|
| 376 |
+
digit_374,7
|
| 377 |
+
digit_375,9
|
| 378 |
+
digit_376,5
|
| 379 |
+
digit_377,4
|
| 380 |
+
digit_378,8
|
| 381 |
+
digit_379,8
|
| 382 |
+
digit_380,4
|
| 383 |
+
digit_381,9
|
| 384 |
+
digit_382,0
|
| 385 |
+
digit_383,8
|
| 386 |
+
digit_384,9
|
| 387 |
+
digit_385,3
|
| 388 |
+
digit_386,0
|
| 389 |
+
digit_387,1
|
| 390 |
+
digit_388,2
|
| 391 |
+
digit_389,3
|
| 392 |
+
digit_390,4
|
| 393 |
+
digit_391,5
|
| 394 |
+
digit_392,6
|
| 395 |
+
digit_393,7
|
| 396 |
+
digit_394,8
|
| 397 |
+
digit_395,9
|
| 398 |
+
digit_396,0
|
| 399 |
+
digit_397,1
|
| 400 |
+
digit_398,2
|
| 401 |
+
digit_399,3
|
| 402 |
+
digit_400,4
|
| 403 |
+
digit_401,5
|
| 404 |
+
digit_402,6
|
| 405 |
+
digit_403,7
|
| 406 |
+
digit_404,8
|
| 407 |
+
digit_405,9
|
| 408 |
+
digit_406,0
|
| 409 |
+
digit_407,1
|
| 410 |
+
digit_408,2
|
| 411 |
+
digit_409,3
|
| 412 |
+
digit_410,4
|
| 413 |
+
digit_411,5
|
| 414 |
+
digit_412,6
|
| 415 |
+
digit_413,7
|
| 416 |
+
digit_414,8
|
| 417 |
+
digit_415,9
|
| 418 |
+
digit_416,0
|
| 419 |
+
digit_417,9
|
| 420 |
+
digit_418,5
|
| 421 |
+
digit_419,5
|
| 422 |
+
digit_420,6
|
| 423 |
+
digit_421,5
|
| 424 |
+
digit_422,0
|
| 425 |
+
digit_423,9
|
| 426 |
+
digit_424,8
|
| 427 |
+
digit_425,9
|
| 428 |
+
digit_426,8
|
| 429 |
+
digit_427,4
|
| 430 |
+
digit_428,1
|
| 431 |
+
digit_429,7
|
| 432 |
+
digit_430,7
|
| 433 |
+
digit_431,3
|
| 434 |
+
digit_432,5
|
| 435 |
+
digit_433,1
|
| 436 |
+
digit_434,0
|
| 437 |
+
digit_435,0
|
| 438 |
+
digit_436,2
|
| 439 |
+
digit_437,2
|
| 440 |
+
digit_438,7
|
| 441 |
+
digit_439,8
|
| 442 |
+
digit_440,2
|
| 443 |
+
digit_441,0
|
| 444 |
+
digit_442,1
|
| 445 |
+
digit_443,2
|
| 446 |
+
digit_444,6
|
| 447 |
+
digit_445,3
|
| 448 |
+
digit_446,3
|
| 449 |
+
digit_447,7
|
| 450 |
+
digit_448,3
|
| 451 |
+
digit_449,3
|
| 452 |
+
digit_450,4
|
| 453 |
+
digit_451,6
|
| 454 |
+
digit_452,6
|
| 455 |
+
digit_453,6
|
| 456 |
+
digit_454,4
|
| 457 |
+
digit_455,9
|
| 458 |
+
digit_456,1
|
| 459 |
+
digit_457,5
|
| 460 |
+
digit_458,0
|
| 461 |
+
digit_459,9
|
| 462 |
+
digit_460,5
|
| 463 |
+
digit_461,2
|
| 464 |
+
digit_462,8
|
| 465 |
+
digit_463,2
|
| 466 |
+
digit_464,0
|
| 467 |
+
digit_465,0
|
| 468 |
+
digit_466,1
|
| 469 |
+
digit_467,7
|
| 470 |
+
digit_468,6
|
| 471 |
+
digit_469,3
|
| 472 |
+
digit_470,2
|
| 473 |
+
digit_471,1
|
| 474 |
+
digit_472,7
|
| 475 |
+
digit_473,4
|
| 476 |
+
digit_474,6
|
| 477 |
+
digit_475,3
|
| 478 |
+
digit_476,1
|
| 479 |
+
digit_477,3
|
| 480 |
+
digit_478,9
|
| 481 |
+
digit_479,1
|
| 482 |
+
digit_480,7
|
| 483 |
+
digit_481,6
|
| 484 |
+
digit_482,8
|
| 485 |
+
digit_483,4
|
| 486 |
+
digit_484,3
|
| 487 |
+
digit_485,1
|
| 488 |
+
digit_486,4
|
| 489 |
+
digit_487,0
|
| 490 |
+
digit_488,5
|
| 491 |
+
digit_489,3
|
| 492 |
+
digit_490,6
|
| 493 |
+
digit_491,9
|
| 494 |
+
digit_492,6
|
| 495 |
+
digit_493,1
|
| 496 |
+
digit_494,7
|
| 497 |
+
digit_495,5
|
| 498 |
+
digit_496,4
|
| 499 |
+
digit_497,4
|
| 500 |
+
digit_498,7
|
| 501 |
+
digit_499,2
|
| 502 |
+
digit_500,8
|
| 503 |
+
digit_501,2
|
| 504 |
+
digit_502,2
|
| 505 |
+
digit_503,5
|
| 506 |
+
digit_504,7
|
| 507 |
+
digit_505,9
|
| 508 |
+
digit_506,5
|
| 509 |
+
digit_507,4
|
| 510 |
+
digit_508,8
|
| 511 |
+
digit_509,8
|
| 512 |
+
digit_510,4
|
| 513 |
+
digit_511,9
|
| 514 |
+
digit_512,0
|
| 515 |
+
digit_513,8
|
| 516 |
+
digit_514,9
|
| 517 |
+
digit_515,8
|
| 518 |
+
digit_516,0
|
| 519 |
+
digit_517,1
|
| 520 |
+
digit_518,2
|
| 521 |
+
digit_519,3
|
| 522 |
+
digit_520,4
|
| 523 |
+
digit_521,5
|
| 524 |
+
digit_522,6
|
| 525 |
+
digit_523,7
|
| 526 |
+
digit_524,8
|
| 527 |
+
digit_525,9
|
| 528 |
+
digit_526,0
|
| 529 |
+
digit_527,1
|
| 530 |
+
digit_528,2
|
| 531 |
+
digit_529,3
|
| 532 |
+
digit_530,4
|
| 533 |
+
digit_531,5
|
| 534 |
+
digit_532,6
|
| 535 |
+
digit_533,7
|
| 536 |
+
digit_534,8
|
| 537 |
+
digit_535,9
|
| 538 |
+
digit_536,0
|
| 539 |
+
digit_537,1
|
| 540 |
+
digit_538,2
|
| 541 |
+
digit_539,3
|
| 542 |
+
digit_540,4
|
| 543 |
+
digit_541,5
|
| 544 |
+
digit_542,6
|
| 545 |
+
digit_543,7
|
| 546 |
+
digit_544,8
|
| 547 |
+
digit_545,9
|
| 548 |
+
digit_546,0
|
| 549 |
+
digit_547,9
|
| 550 |
+
digit_548,5
|
| 551 |
+
digit_549,5
|
| 552 |
+
digit_550,6
|
| 553 |
+
digit_551,5
|
| 554 |
+
digit_552,0
|
| 555 |
+
digit_553,9
|
| 556 |
+
digit_554,8
|
| 557 |
+
digit_555,9
|
| 558 |
+
digit_556,8
|
| 559 |
+
digit_557,4
|
| 560 |
+
digit_558,1
|
| 561 |
+
digit_559,7
|
| 562 |
+
digit_560,7
|
| 563 |
+
digit_561,3
|
| 564 |
+
digit_562,5
|
| 565 |
+
digit_563,1
|
| 566 |
+
digit_564,0
|
| 567 |
+
digit_565,0
|
| 568 |
+
digit_566,2
|
| 569 |
+
digit_567,2
|
| 570 |
+
digit_568,7
|
| 571 |
+
digit_569,8
|
| 572 |
+
digit_570,2
|
| 573 |
+
digit_571,0
|
| 574 |
+
digit_572,1
|
| 575 |
+
digit_573,2
|
| 576 |
+
digit_574,6
|
| 577 |
+
digit_575,3
|
| 578 |
+
digit_576,3
|
| 579 |
+
digit_577,7
|
| 580 |
+
digit_578,3
|
| 581 |
+
digit_579,3
|
| 582 |
+
digit_580,4
|
| 583 |
+
digit_581,6
|
| 584 |
+
digit_582,6
|
| 585 |
+
digit_583,6
|
| 586 |
+
digit_584,4
|
| 587 |
+
digit_585,9
|
| 588 |
+
digit_586,1
|
| 589 |
+
digit_587,5
|
| 590 |
+
digit_588,0
|
| 591 |
+
digit_589,9
|
| 592 |
+
digit_590,5
|
| 593 |
+
digit_591,2
|
| 594 |
+
digit_592,8
|
| 595 |
+
digit_593,2
|
| 596 |
+
digit_594,0
|
| 597 |
+
digit_595,0
|
| 598 |
+
digit_596,1
|
| 599 |
+
digit_597,7
|
| 600 |
+
digit_598,6
|
| 601 |
+
digit_599,3
|
| 602 |
+
digit_600,2
|
| 603 |
+
digit_601,1
|
| 604 |
+
digit_602,7
|
| 605 |
+
digit_603,4
|
| 606 |
+
digit_604,6
|
| 607 |
+
digit_605,3
|
| 608 |
+
digit_606,1
|
| 609 |
+
digit_607,3
|
| 610 |
+
digit_608,9
|
| 611 |
+
digit_609,1
|
| 612 |
+
digit_610,7
|
| 613 |
+
digit_611,6
|
| 614 |
+
digit_612,8
|
| 615 |
+
digit_613,4
|
| 616 |
+
digit_614,3
|
| 617 |
+
digit_615,1
|
| 618 |
+
digit_616,4
|
| 619 |
+
digit_617,0
|
| 620 |
+
digit_618,5
|
| 621 |
+
digit_619,3
|
| 622 |
+
digit_620,6
|
| 623 |
+
digit_621,9
|
| 624 |
+
digit_622,6
|
| 625 |
+
digit_623,1
|
| 626 |
+
digit_624,7
|
| 627 |
+
digit_625,5
|
| 628 |
+
digit_626,4
|
| 629 |
+
digit_627,4
|
| 630 |
+
digit_628,7
|
| 631 |
+
digit_629,2
|
| 632 |
+
digit_630,8
|
| 633 |
+
digit_631,2
|
| 634 |
+
digit_632,2
|
| 635 |
+
digit_633,5
|
| 636 |
+
digit_634,7
|
| 637 |
+
digit_635,9
|
| 638 |
+
digit_636,5
|
| 639 |
+
digit_637,4
|
| 640 |
+
digit_638,8
|
| 641 |
+
digit_639,8
|
| 642 |
+
digit_640,4
|
| 643 |
+
digit_641,9
|
| 644 |
+
digit_642,0
|
| 645 |
+
digit_643,8
|
| 646 |
+
digit_644,9
|
| 647 |
+
digit_645,8
|
| 648 |
+
digit_646,0
|
| 649 |
+
digit_647,1
|
| 650 |
+
digit_648,2
|
| 651 |
+
digit_649,3
|
| 652 |
+
digit_650,4
|
| 653 |
+
digit_651,5
|
| 654 |
+
digit_652,6
|
| 655 |
+
digit_653,7
|
| 656 |
+
digit_654,8
|
| 657 |
+
digit_655,9
|
| 658 |
+
digit_656,0
|
| 659 |
+
digit_657,1
|
| 660 |
+
digit_658,2
|
| 661 |
+
digit_659,3
|
| 662 |
+
digit_660,4
|
| 663 |
+
digit_661,5
|
| 664 |
+
digit_662,6
|
| 665 |
+
digit_663,7
|
| 666 |
+
digit_664,8
|
| 667 |
+
digit_665,9
|
| 668 |
+
digit_666,0
|
| 669 |
+
digit_667,1
|
| 670 |
+
digit_668,2
|
| 671 |
+
digit_669,3
|
| 672 |
+
digit_670,4
|
| 673 |
+
digit_671,5
|
| 674 |
+
digit_672,6
|
| 675 |
+
digit_673,7
|
| 676 |
+
digit_674,8
|
| 677 |
+
digit_675,9
|
| 678 |
+
digit_676,0
|
| 679 |
+
digit_677,9
|
| 680 |
+
digit_678,5
|
| 681 |
+
digit_679,5
|
| 682 |
+
digit_680,6
|
| 683 |
+
digit_681,5
|
| 684 |
+
digit_682,0
|
| 685 |
+
digit_683,9
|
| 686 |
+
digit_684,8
|
| 687 |
+
digit_685,9
|
| 688 |
+
digit_686,8
|
| 689 |
+
digit_687,4
|
| 690 |
+
digit_688,1
|
| 691 |
+
digit_689,7
|
| 692 |
+
digit_690,7
|
| 693 |
+
digit_691,3
|
| 694 |
+
digit_692,5
|
| 695 |
+
digit_693,1
|
| 696 |
+
digit_694,0
|
| 697 |
+
digit_695,0
|
| 698 |
+
digit_696,2
|
| 699 |
+
digit_697,2
|
| 700 |
+
digit_698,7
|
| 701 |
+
digit_699,8
|
| 702 |
+
digit_700,2
|
| 703 |
+
digit_701,0
|
| 704 |
+
digit_702,1
|
| 705 |
+
digit_703,2
|
| 706 |
+
digit_704,6
|
| 707 |
+
digit_705,3
|
| 708 |
+
digit_706,3
|
| 709 |
+
digit_707,7
|
| 710 |
+
digit_708,3
|
| 711 |
+
digit_709,3
|
| 712 |
+
digit_710,4
|
| 713 |
+
digit_711,6
|
| 714 |
+
digit_712,6
|
| 715 |
+
digit_713,6
|
| 716 |
+
digit_714,4
|
| 717 |
+
digit_715,9
|
| 718 |
+
digit_716,1
|
| 719 |
+
digit_717,5
|
| 720 |
+
digit_718,0
|
| 721 |
+
digit_719,9
|
| 722 |
+
digit_720,5
|
| 723 |
+
digit_721,2
|
| 724 |
+
digit_722,8
|
| 725 |
+
digit_723,2
|
| 726 |
+
digit_724,0
|
| 727 |
+
digit_725,0
|
| 728 |
+
digit_726,1
|
| 729 |
+
digit_727,7
|
| 730 |
+
digit_728,6
|
| 731 |
+
digit_729,3
|
| 732 |
+
digit_730,2
|
| 733 |
+
digit_731,1
|
| 734 |
+
digit_732,7
|
| 735 |
+
digit_733,4
|
| 736 |
+
digit_734,6
|
| 737 |
+
digit_735,3
|
| 738 |
+
digit_736,1
|
| 739 |
+
digit_737,3
|
| 740 |
+
digit_738,9
|
| 741 |
+
digit_739,1
|
| 742 |
+
digit_740,7
|
| 743 |
+
digit_741,6
|
| 744 |
+
digit_742,8
|
| 745 |
+
digit_743,4
|
| 746 |
+
digit_744,3
|
| 747 |
+
digit_745,1
|
| 748 |
+
digit_746,4
|
| 749 |
+
digit_747,0
|
| 750 |
+
digit_748,5
|
| 751 |
+
digit_749,3
|
| 752 |
+
digit_750,6
|
| 753 |
+
digit_751,9
|
| 754 |
+
digit_752,6
|
| 755 |
+
digit_753,1
|
| 756 |
+
digit_754,7
|
| 757 |
+
digit_755,5
|
| 758 |
+
digit_756,4
|
| 759 |
+
digit_757,4
|
| 760 |
+
digit_758,7
|
| 761 |
+
digit_759,2
|
| 762 |
+
digit_760,8
|
| 763 |
+
digit_761,2
|
| 764 |
+
digit_762,2
|
| 765 |
+
digit_763,5
|
| 766 |
+
digit_764,7
|
| 767 |
+
digit_765,9
|
| 768 |
+
digit_766,5
|
| 769 |
+
digit_767,4
|
| 770 |
+
digit_768,8
|
| 771 |
+
digit_769,8
|
| 772 |
+
digit_770,4
|
| 773 |
+
digit_771,9
|
| 774 |
+
digit_772,0
|
| 775 |
+
digit_773,8
|
| 776 |
+
digit_774,9
|
| 777 |
+
digit_775,8
|
| 778 |
+
digit_776,0
|
| 779 |
+
digit_777,1
|
| 780 |
+
digit_778,2
|
| 781 |
+
digit_779,3
|
| 782 |
+
digit_780,4
|
| 783 |
+
digit_781,5
|
| 784 |
+
digit_782,6
|
| 785 |
+
digit_783,7
|
| 786 |
+
digit_784,8
|
| 787 |
+
digit_785,9
|
| 788 |
+
digit_786,0
|
| 789 |
+
digit_787,1
|
| 790 |
+
digit_788,2
|
| 791 |
+
digit_789,3
|
| 792 |
+
digit_790,4
|
| 793 |
+
digit_791,5
|
| 794 |
+
digit_792,6
|
| 795 |
+
digit_793,7
|
| 796 |
+
digit_794,8
|
| 797 |
+
digit_795,9
|
| 798 |
+
digit_796,0
|
| 799 |
+
digit_797,1
|
| 800 |
+
digit_798,2
|
| 801 |
+
digit_799,3
|
| 802 |
+
digit_800,4
|
| 803 |
+
digit_801,5
|
| 804 |
+
digit_802,6
|
| 805 |
+
digit_803,7
|
| 806 |
+
digit_804,8
|
| 807 |
+
digit_805,9
|
| 808 |
+
digit_806,0
|
| 809 |
+
digit_807,9
|
| 810 |
+
digit_808,5
|
| 811 |
+
digit_809,5
|
| 812 |
+
digit_810,6
|
| 813 |
+
digit_811,5
|
| 814 |
+
digit_812,0
|
| 815 |
+
digit_813,9
|
| 816 |
+
digit_814,8
|
| 817 |
+
digit_815,9
|
| 818 |
+
digit_816,8
|
| 819 |
+
digit_817,4
|
| 820 |
+
digit_818,1
|
| 821 |
+
digit_819,7
|
| 822 |
+
digit_820,7
|
| 823 |
+
digit_821,3
|
| 824 |
+
digit_822,5
|
| 825 |
+
digit_823,1
|
| 826 |
+
digit_824,0
|
| 827 |
+
digit_825,0
|
| 828 |
+
digit_826,2
|
| 829 |
+
digit_827,2
|
| 830 |
+
digit_828,7
|
| 831 |
+
digit_829,8
|
| 832 |
+
digit_830,2
|
| 833 |
+
digit_831,0
|
| 834 |
+
digit_832,1
|
| 835 |
+
digit_833,2
|
| 836 |
+
digit_834,6
|
| 837 |
+
digit_835,3
|
| 838 |
+
digit_836,3
|
| 839 |
+
digit_837,7
|
| 840 |
+
digit_838,3
|
| 841 |
+
digit_839,3
|
| 842 |
+
digit_840,4
|
| 843 |
+
digit_841,6
|
| 844 |
+
digit_842,6
|
| 845 |
+
digit_843,6
|
| 846 |
+
digit_844,4
|
| 847 |
+
digit_845,9
|
| 848 |
+
digit_846,1
|
| 849 |
+
digit_847,5
|
| 850 |
+
digit_848,0
|
| 851 |
+
digit_849,9
|
| 852 |
+
digit_850,5
|
| 853 |
+
digit_851,2
|
| 854 |
+
digit_852,8
|
| 855 |
+
digit_853,2
|
| 856 |
+
digit_854,0
|
| 857 |
+
digit_855,0
|
| 858 |
+
digit_856,1
|
| 859 |
+
digit_857,7
|
| 860 |
+
digit_858,6
|
| 861 |
+
digit_859,3
|
| 862 |
+
digit_860,2
|
| 863 |
+
digit_861,1
|
| 864 |
+
digit_862,7
|
| 865 |
+
digit_863,4
|
| 866 |
+
digit_864,6
|
| 867 |
+
digit_865,3
|
| 868 |
+
digit_866,1
|
| 869 |
+
digit_867,3
|
| 870 |
+
digit_868,9
|
| 871 |
+
digit_869,1
|
| 872 |
+
digit_870,7
|
| 873 |
+
digit_871,6
|
| 874 |
+
digit_872,8
|
| 875 |
+
digit_873,4
|
| 876 |
+
digit_874,3
|
| 877 |
+
digit_875,1
|
| 878 |
+
digit_876,4
|
| 879 |
+
digit_877,0
|
| 880 |
+
digit_878,5
|
| 881 |
+
digit_879,3
|
| 882 |
+
digit_880,6
|
| 883 |
+
digit_881,9
|
| 884 |
+
digit_882,6
|
| 885 |
+
digit_883,1
|
| 886 |
+
digit_884,7
|
| 887 |
+
digit_885,5
|
| 888 |
+
digit_886,4
|
| 889 |
+
digit_887,4
|
| 890 |
+
digit_888,7
|
| 891 |
+
digit_889,2
|
| 892 |
+
digit_890,8
|
| 893 |
+
digit_891,2
|
| 894 |
+
digit_892,2
|
| 895 |
+
digit_893,5
|
| 896 |
+
digit_894,7
|
| 897 |
+
digit_895,9
|
| 898 |
+
digit_896,5
|
| 899 |
+
digit_897,4
|
| 900 |
+
digit_898,8
|
| 901 |
+
digit_899,8
|
| 902 |
+
digit_900,4
|
| 903 |
+
digit_901,9
|
| 904 |
+
digit_902,0
|
| 905 |
+
digit_903,8
|
| 906 |
+
digit_904,9
|
| 907 |
+
digit_905,8
|
| 908 |
+
digit_906,1
|
| 909 |
+
digit_907,2
|
| 910 |
+
digit_908,3
|
| 911 |
+
digit_909,4
|
| 912 |
+
digit_910,5
|
| 913 |
+
digit_911,6
|
| 914 |
+
digit_912,7
|
| 915 |
+
digit_913,8
|
| 916 |
+
digit_914,9
|
| 917 |
+
digit_915,0
|
| 918 |
+
digit_916,1
|
| 919 |
+
digit_917,2
|
| 920 |
+
digit_918,3
|
| 921 |
+
digit_919,4
|
| 922 |
+
digit_920,5
|
| 923 |
+
digit_921,6
|
| 924 |
+
digit_922,7
|
| 925 |
+
digit_923,8
|
| 926 |
+
digit_924,9
|
| 927 |
+
digit_925,0
|
| 928 |
+
digit_926,1
|
| 929 |
+
digit_927,2
|
| 930 |
+
digit_928,3
|
| 931 |
+
digit_929,4
|
| 932 |
+
digit_930,5
|
| 933 |
+
digit_931,6
|
| 934 |
+
digit_932,7
|
| 935 |
+
digit_933,8
|
| 936 |
+
digit_934,9
|
| 937 |
+
digit_935,0
|
| 938 |
+
digit_936,9
|
| 939 |
+
digit_937,5
|
| 940 |
+
digit_938,5
|
| 941 |
+
digit_939,6
|
| 942 |
+
digit_940,5
|
| 943 |
+
digit_941,0
|
| 944 |
+
digit_942,9
|
| 945 |
+
digit_943,8
|
| 946 |
+
digit_944,9
|
| 947 |
+
digit_945,8
|
| 948 |
+
digit_946,4
|
| 949 |
+
digit_947,1
|
| 950 |
+
digit_948,7
|
| 951 |
+
digit_949,7
|
| 952 |
+
digit_950,3
|
| 953 |
+
digit_951,5
|
| 954 |
+
digit_952,1
|
| 955 |
+
digit_953,2
|
| 956 |
+
digit_954,7
|
| 957 |
+
digit_955,8
|
| 958 |
+
digit_956,2
|
| 959 |
+
digit_957,0
|
| 960 |
+
digit_958,1
|
| 961 |
+
digit_959,2
|
| 962 |
+
digit_960,6
|
| 963 |
+
digit_961,3
|
| 964 |
+
digit_962,3
|
| 965 |
+
digit_963,7
|
| 966 |
+
digit_964,3
|
| 967 |
+
digit_965,3
|
| 968 |
+
digit_966,4
|
| 969 |
+
digit_967,6
|
| 970 |
+
digit_968,6
|
| 971 |
+
digit_969,6
|
| 972 |
+
digit_970,4
|
| 973 |
+
digit_971,9
|
| 974 |
+
digit_972,1
|
| 975 |
+
digit_973,5
|
| 976 |
+
digit_974,0
|
| 977 |
+
digit_975,9
|
| 978 |
+
digit_976,5
|
| 979 |
+
digit_977,2
|
| 980 |
+
digit_978,8
|
| 981 |
+
digit_979,2
|
| 982 |
+
digit_980,0
|
| 983 |
+
digit_981,0
|
| 984 |
+
digit_982,1
|
| 985 |
+
digit_983,7
|
| 986 |
+
digit_984,6
|
| 987 |
+
digit_985,3
|
| 988 |
+
digit_986,2
|
| 989 |
+
digit_987,1
|
| 990 |
+
digit_988,4
|
| 991 |
+
digit_989,6
|
| 992 |
+
digit_990,3
|
| 993 |
+
digit_991,1
|
| 994 |
+
digit_992,3
|
| 995 |
+
digit_993,9
|
| 996 |
+
digit_994,1
|
| 997 |
+
digit_995,7
|
| 998 |
+
digit_996,6
|
| 999 |
+
digit_997,8
|
| 1000 |
+
digit_998,4
|
| 1001 |
+
digit_999,3
|
| 1002 |
+
digit_1000,1
|
| 1003 |
+
digit_1001,4
|
| 1004 |
+
digit_1002,0
|
| 1005 |
+
digit_1003,5
|
| 1006 |
+
digit_1004,3
|
| 1007 |
+
digit_1005,6
|
| 1008 |
+
digit_1006,9
|
| 1009 |
+
digit_1007,6
|
| 1010 |
+
digit_1008,1
|
| 1011 |
+
digit_1009,7
|
| 1012 |
+
digit_1010,5
|
| 1013 |
+
digit_1011,4
|
| 1014 |
+
digit_1012,4
|
| 1015 |
+
digit_1013,7
|
| 1016 |
+
digit_1014,2
|
| 1017 |
+
digit_1015,8
|
| 1018 |
+
digit_1016,2
|
| 1019 |
+
digit_1017,2
|
| 1020 |
+
digit_1018,5
|
| 1021 |
+
digit_1019,7
|
| 1022 |
+
digit_1020,9
|
| 1023 |
+
digit_1021,5
|
| 1024 |
+
digit_1022,4
|
| 1025 |
+
digit_1023,4
|
| 1026 |
+
digit_1024,9
|
| 1027 |
+
digit_1025,0
|
| 1028 |
+
digit_1026,8
|
| 1029 |
+
digit_1027,9
|
| 1030 |
+
digit_1028,8
|
| 1031 |
+
digit_1029,0
|
| 1032 |
+
digit_1030,1
|
| 1033 |
+
digit_1031,2
|
| 1034 |
+
digit_1032,3
|
| 1035 |
+
digit_1033,4
|
| 1036 |
+
digit_1034,5
|
| 1037 |
+
digit_1035,6
|
| 1038 |
+
digit_1036,7
|
| 1039 |
+
digit_1037,8
|
| 1040 |
+
digit_1038,9
|
| 1041 |
+
digit_1039,0
|
| 1042 |
+
digit_1040,1
|
| 1043 |
+
digit_1041,2
|
| 1044 |
+
digit_1042,3
|
| 1045 |
+
digit_1043,4
|
| 1046 |
+
digit_1044,5
|
| 1047 |
+
digit_1045,6
|
| 1048 |
+
digit_1046,7
|
| 1049 |
+
digit_1047,8
|
| 1050 |
+
digit_1048,9
|
| 1051 |
+
digit_1049,0
|
| 1052 |
+
digit_1050,1
|
| 1053 |
+
digit_1051,2
|
| 1054 |
+
digit_1052,3
|
| 1055 |
+
digit_1053,4
|
| 1056 |
+
digit_1054,5
|
| 1057 |
+
digit_1055,6
|
| 1058 |
+
digit_1056,7
|
| 1059 |
+
digit_1057,8
|
| 1060 |
+
digit_1058,9
|
| 1061 |
+
digit_1059,0
|
| 1062 |
+
digit_1060,9
|
| 1063 |
+
digit_1061,5
|
| 1064 |
+
digit_1062,5
|
| 1065 |
+
digit_1063,6
|
| 1066 |
+
digit_1064,5
|
| 1067 |
+
digit_1065,0
|
| 1068 |
+
digit_1066,9
|
| 1069 |
+
digit_1067,8
|
| 1070 |
+
digit_1068,9
|
| 1071 |
+
digit_1069,8
|
| 1072 |
+
digit_1070,4
|
| 1073 |
+
digit_1071,1
|
| 1074 |
+
digit_1072,7
|
| 1075 |
+
digit_1073,7
|
| 1076 |
+
digit_1074,3
|
| 1077 |
+
digit_1075,5
|
| 1078 |
+
digit_1076,1
|
| 1079 |
+
digit_1077,0
|
| 1080 |
+
digit_1078,0
|
| 1081 |
+
digit_1079,7
|
| 1082 |
+
digit_1080,8
|
| 1083 |
+
digit_1081,2
|
| 1084 |
+
digit_1082,0
|
| 1085 |
+
digit_1083,1
|
| 1086 |
+
digit_1084,2
|
| 1087 |
+
digit_1085,6
|
| 1088 |
+
digit_1086,3
|
| 1089 |
+
digit_1087,3
|
| 1090 |
+
digit_1088,7
|
| 1091 |
+
digit_1089,3
|
| 1092 |
+
digit_1090,3
|
| 1093 |
+
digit_1091,4
|
| 1094 |
+
digit_1092,6
|
| 1095 |
+
digit_1093,6
|
| 1096 |
+
digit_1094,6
|
| 1097 |
+
digit_1095,4
|
| 1098 |
+
digit_1096,9
|
| 1099 |
+
digit_1097,1
|
| 1100 |
+
digit_1098,5
|
| 1101 |
+
digit_1099,0
|
| 1102 |
+
digit_1100,9
|
| 1103 |
+
digit_1101,5
|
| 1104 |
+
digit_1102,2
|
| 1105 |
+
digit_1103,8
|
| 1106 |
+
digit_1104,2
|
| 1107 |
+
digit_1105,0
|
| 1108 |
+
digit_1106,0
|
| 1109 |
+
digit_1107,1
|
| 1110 |
+
digit_1108,7
|
| 1111 |
+
digit_1109,6
|
| 1112 |
+
digit_1110,3
|
| 1113 |
+
digit_1111,2
|
| 1114 |
+
digit_1112,1
|
| 1115 |
+
digit_1113,7
|
| 1116 |
+
digit_1114,4
|
| 1117 |
+
digit_1115,6
|
| 1118 |
+
digit_1116,3
|
| 1119 |
+
digit_1117,1
|
| 1120 |
+
digit_1118,3
|
| 1121 |
+
digit_1119,9
|
| 1122 |
+
digit_1120,1
|
| 1123 |
+
digit_1121,7
|
| 1124 |
+
digit_1122,6
|
| 1125 |
+
digit_1123,8
|
| 1126 |
+
digit_1124,4
|
| 1127 |
+
digit_1125,3
|
| 1128 |
+
digit_1126,1
|
| 1129 |
+
digit_1127,4
|
| 1130 |
+
digit_1128,0
|
| 1131 |
+
digit_1129,5
|
| 1132 |
+
digit_1130,3
|
| 1133 |
+
digit_1131,6
|
| 1134 |
+
digit_1132,9
|
| 1135 |
+
digit_1133,6
|
| 1136 |
+
digit_1134,1
|
| 1137 |
+
digit_1135,7
|
| 1138 |
+
digit_1136,5
|
| 1139 |
+
digit_1137,4
|
| 1140 |
+
digit_1138,4
|
| 1141 |
+
digit_1139,7
|
| 1142 |
+
digit_1140,2
|
| 1143 |
+
digit_1141,8
|
| 1144 |
+
digit_1142,2
|
| 1145 |
+
digit_1143,2
|
| 1146 |
+
digit_1144,5
|
| 1147 |
+
digit_1145,7
|
| 1148 |
+
digit_1146,9
|
| 1149 |
+
digit_1147,5
|
| 1150 |
+
digit_1148,4
|
| 1151 |
+
digit_1149,8
|
| 1152 |
+
digit_1150,8
|
| 1153 |
+
digit_1151,4
|
| 1154 |
+
digit_1152,9
|
| 1155 |
+
digit_1153,0
|
| 1156 |
+
digit_1154,8
|
| 1157 |
+
digit_1155,9
|
| 1158 |
+
digit_1156,8
|
| 1159 |
+
digit_1157,0
|
| 1160 |
+
digit_1158,1
|
| 1161 |
+
digit_1159,2
|
| 1162 |
+
digit_1160,3
|
| 1163 |
+
digit_1161,4
|
| 1164 |
+
digit_1162,5
|
| 1165 |
+
digit_1163,6
|
| 1166 |
+
digit_1164,7
|
| 1167 |
+
digit_1165,8
|
| 1168 |
+
digit_1166,9
|
| 1169 |
+
digit_1167,0
|
| 1170 |
+
digit_1168,1
|
| 1171 |
+
digit_1169,2
|
| 1172 |
+
digit_1170,3
|
| 1173 |
+
digit_1171,4
|
| 1174 |
+
digit_1172,5
|
| 1175 |
+
digit_1173,6
|
| 1176 |
+
digit_1174,7
|
| 1177 |
+
digit_1175,8
|
| 1178 |
+
digit_1176,9
|
| 1179 |
+
digit_1177,0
|
| 1180 |
+
digit_1178,1
|
| 1181 |
+
digit_1179,2
|
| 1182 |
+
digit_1180,3
|
| 1183 |
+
digit_1181,4
|
| 1184 |
+
digit_1182,5
|
| 1185 |
+
digit_1183,6
|
| 1186 |
+
digit_1184,7
|
| 1187 |
+
digit_1185,8
|
| 1188 |
+
digit_1186,9
|
| 1189 |
+
digit_1187,0
|
| 1190 |
+
digit_1188,9
|
| 1191 |
+
digit_1189,5
|
| 1192 |
+
digit_1190,5
|
| 1193 |
+
digit_1191,6
|
| 1194 |
+
digit_1192,5
|
| 1195 |
+
digit_1193,0
|
| 1196 |
+
digit_1194,9
|
| 1197 |
+
digit_1195,8
|
| 1198 |
+
digit_1196,9
|
| 1199 |
+
digit_1197,8
|
| 1200 |
+
digit_1198,4
|
| 1201 |
+
digit_1199,1
|
| 1202 |
+
digit_1200,7
|
| 1203 |
+
digit_1201,7
|
| 1204 |
+
digit_1202,3
|
| 1205 |
+
digit_1203,5
|
| 1206 |
+
digit_1204,1
|
| 1207 |
+
digit_1205,0
|
| 1208 |
+
digit_1206,0
|
| 1209 |
+
digit_1207,2
|
| 1210 |
+
digit_1208,2
|
| 1211 |
+
digit_1209,7
|
| 1212 |
+
digit_1210,8
|
| 1213 |
+
digit_1211,2
|
| 1214 |
+
digit_1212,0
|
| 1215 |
+
digit_1213,1
|
| 1216 |
+
digit_1214,2
|
| 1217 |
+
digit_1215,6
|
| 1218 |
+
digit_1216,3
|
| 1219 |
+
digit_1217,3
|
| 1220 |
+
digit_1218,7
|
| 1221 |
+
digit_1219,3
|
| 1222 |
+
digit_1220,3
|
| 1223 |
+
digit_1221,4
|
| 1224 |
+
digit_1222,6
|
| 1225 |
+
digit_1223,6
|
| 1226 |
+
digit_1224,6
|
| 1227 |
+
digit_1225,4
|
| 1228 |
+
digit_1226,9
|
| 1229 |
+
digit_1227,1
|
| 1230 |
+
digit_1228,5
|
| 1231 |
+
digit_1229,0
|
| 1232 |
+
digit_1230,9
|
| 1233 |
+
digit_1231,5
|
| 1234 |
+
digit_1232,2
|
| 1235 |
+
digit_1233,8
|
| 1236 |
+
digit_1234,2
|
| 1237 |
+
digit_1235,0
|
| 1238 |
+
digit_1236,0
|
| 1239 |
+
digit_1237,1
|
| 1240 |
+
digit_1238,7
|
| 1241 |
+
digit_1239,6
|
| 1242 |
+
digit_1240,3
|
| 1243 |
+
digit_1241,2
|
| 1244 |
+
digit_1242,1
|
| 1245 |
+
digit_1243,7
|
| 1246 |
+
digit_1244,4
|
| 1247 |
+
digit_1245,6
|
| 1248 |
+
digit_1246,3
|
| 1249 |
+
digit_1247,1
|
| 1250 |
+
digit_1248,3
|
| 1251 |
+
digit_1249,9
|
| 1252 |
+
digit_1250,1
|
| 1253 |
+
digit_1251,7
|
| 1254 |
+
digit_1252,6
|
| 1255 |
+
digit_1253,8
|
| 1256 |
+
digit_1254,4
|
| 1257 |
+
digit_1255,3
|
| 1258 |
+
digit_1256,1
|
| 1259 |
+
digit_1257,4
|
| 1260 |
+
digit_1258,0
|
| 1261 |
+
digit_1259,5
|
| 1262 |
+
digit_1260,3
|
| 1263 |
+
digit_1261,6
|
| 1264 |
+
digit_1262,9
|
| 1265 |
+
digit_1263,6
|
| 1266 |
+
digit_1264,1
|
| 1267 |
+
digit_1265,7
|
| 1268 |
+
digit_1266,5
|
| 1269 |
+
digit_1267,4
|
| 1270 |
+
digit_1268,4
|
| 1271 |
+
digit_1269,7
|
| 1272 |
+
digit_1270,2
|
| 1273 |
+
digit_1271,8
|
| 1274 |
+
digit_1272,2
|
| 1275 |
+
digit_1273,2
|
| 1276 |
+
digit_1274,5
|
| 1277 |
+
digit_1275,7
|
| 1278 |
+
digit_1276,9
|
| 1279 |
+
digit_1277,5
|
| 1280 |
+
digit_1278,4
|
| 1281 |
+
digit_1279,8
|
| 1282 |
+
digit_1280,8
|
| 1283 |
+
digit_1281,4
|
| 1284 |
+
digit_1282,9
|
| 1285 |
+
digit_1283,0
|
| 1286 |
+
digit_1284,8
|
| 1287 |
+
digit_1285,9
|
| 1288 |
+
digit_1286,8
|
| 1289 |
+
digit_1287,0
|
| 1290 |
+
digit_1288,1
|
| 1291 |
+
digit_1289,2
|
| 1292 |
+
digit_1290,3
|
| 1293 |
+
digit_1291,4
|
| 1294 |
+
digit_1292,5
|
| 1295 |
+
digit_1293,6
|
| 1296 |
+
digit_1294,7
|
| 1297 |
+
digit_1295,8
|
| 1298 |
+
digit_1296,9
|
| 1299 |
+
digit_1297,0
|
| 1300 |
+
digit_1298,1
|
| 1301 |
+
digit_1299,2
|
| 1302 |
+
digit_1300,3
|
| 1303 |
+
digit_1301,4
|
| 1304 |
+
digit_1302,5
|
| 1305 |
+
digit_1303,6
|
| 1306 |
+
digit_1304,7
|
| 1307 |
+
digit_1305,8
|
| 1308 |
+
digit_1306,9
|
| 1309 |
+
digit_1307,0
|
| 1310 |
+
digit_1308,1
|
| 1311 |
+
digit_1309,2
|
| 1312 |
+
digit_1310,3
|
| 1313 |
+
digit_1311,4
|
| 1314 |
+
digit_1312,5
|
| 1315 |
+
digit_1313,6
|
| 1316 |
+
digit_1314,7
|
| 1317 |
+
digit_1315,8
|
| 1318 |
+
digit_1316,9
|
| 1319 |
+
digit_1317,0
|
| 1320 |
+
digit_1318,9
|
| 1321 |
+
digit_1319,5
|
| 1322 |
+
digit_1320,5
|
| 1323 |
+
digit_1321,6
|
| 1324 |
+
digit_1322,5
|
| 1325 |
+
digit_1323,0
|
| 1326 |
+
digit_1324,9
|
| 1327 |
+
digit_1325,8
|
| 1328 |
+
digit_1326,9
|
| 1329 |
+
digit_1327,8
|
| 1330 |
+
digit_1328,4
|
| 1331 |
+
digit_1329,1
|
| 1332 |
+
digit_1330,7
|
| 1333 |
+
digit_1331,7
|
| 1334 |
+
digit_1332,3
|
| 1335 |
+
digit_1333,5
|
| 1336 |
+
digit_1334,1
|
| 1337 |
+
digit_1335,0
|
| 1338 |
+
digit_1336,0
|
| 1339 |
+
digit_1337,2
|
| 1340 |
+
digit_1338,2
|
| 1341 |
+
digit_1339,7
|
| 1342 |
+
digit_1340,8
|
| 1343 |
+
digit_1341,2
|
| 1344 |
+
digit_1342,0
|
| 1345 |
+
digit_1343,1
|
| 1346 |
+
digit_1344,2
|
| 1347 |
+
digit_1345,6
|
| 1348 |
+
digit_1346,3
|
| 1349 |
+
digit_1347,3
|
| 1350 |
+
digit_1348,7
|
| 1351 |
+
digit_1349,3
|
| 1352 |
+
digit_1350,3
|
| 1353 |
+
digit_1351,4
|
| 1354 |
+
digit_1352,6
|
| 1355 |
+
digit_1353,6
|
| 1356 |
+
digit_1354,6
|
| 1357 |
+
digit_1355,4
|
| 1358 |
+
digit_1356,9
|
| 1359 |
+
digit_1357,1
|
| 1360 |
+
digit_1358,5
|
| 1361 |
+
digit_1359,0
|
| 1362 |
+
digit_1360,9
|
| 1363 |
+
digit_1361,5
|
| 1364 |
+
digit_1362,2
|
| 1365 |
+
digit_1363,8
|
| 1366 |
+
digit_1364,2
|
| 1367 |
+
digit_1365,0
|
| 1368 |
+
digit_1366,0
|
| 1369 |
+
digit_1367,1
|
| 1370 |
+
digit_1368,7
|
| 1371 |
+
digit_1369,6
|
| 1372 |
+
digit_1370,3
|
| 1373 |
+
digit_1371,2
|
| 1374 |
+
digit_1372,1
|
| 1375 |
+
digit_1373,7
|
| 1376 |
+
digit_1374,4
|
| 1377 |
+
digit_1375,6
|
| 1378 |
+
digit_1376,3
|
| 1379 |
+
digit_1377,1
|
| 1380 |
+
digit_1378,3
|
| 1381 |
+
digit_1379,9
|
| 1382 |
+
digit_1380,1
|
| 1383 |
+
digit_1381,7
|
| 1384 |
+
digit_1382,6
|
| 1385 |
+
digit_1383,8
|
| 1386 |
+
digit_1384,4
|
| 1387 |
+
digit_1385,3
|
| 1388 |
+
digit_1386,1
|
| 1389 |
+
digit_1387,4
|
| 1390 |
+
digit_1388,0
|
| 1391 |
+
digit_1389,5
|
| 1392 |
+
digit_1390,3
|
| 1393 |
+
digit_1391,6
|
| 1394 |
+
digit_1392,9
|
| 1395 |
+
digit_1393,6
|
| 1396 |
+
digit_1394,1
|
| 1397 |
+
digit_1395,7
|
| 1398 |
+
digit_1396,5
|
| 1399 |
+
digit_1397,4
|
| 1400 |
+
digit_1398,4
|
| 1401 |
+
digit_1399,7
|
| 1402 |
+
digit_1400,2
|
| 1403 |
+
digit_1401,8
|
| 1404 |
+
digit_1402,2
|
| 1405 |
+
digit_1403,2
|
| 1406 |
+
digit_1404,5
|
| 1407 |
+
digit_1405,7
|
| 1408 |
+
digit_1406,9
|
| 1409 |
+
digit_1407,5
|
| 1410 |
+
digit_1408,4
|
| 1411 |
+
digit_1409,8
|
| 1412 |
+
digit_1410,8
|
| 1413 |
+
digit_1411,4
|
| 1414 |
+
digit_1412,9
|
| 1415 |
+
digit_1413,0
|
| 1416 |
+
digit_1414,8
|
| 1417 |
+
digit_1415,0
|
| 1418 |
+
digit_1416,1
|
| 1419 |
+
digit_1417,2
|
| 1420 |
+
digit_1418,3
|
| 1421 |
+
digit_1419,4
|
| 1422 |
+
digit_1420,5
|
| 1423 |
+
digit_1421,6
|
| 1424 |
+
digit_1422,7
|
| 1425 |
+
digit_1423,8
|
| 1426 |
+
digit_1424,9
|
| 1427 |
+
digit_1425,0
|
| 1428 |
+
digit_1426,1
|
| 1429 |
+
digit_1427,2
|
| 1430 |
+
digit_1428,3
|
| 1431 |
+
digit_1429,4
|
| 1432 |
+
digit_1430,5
|
| 1433 |
+
digit_1431,6
|
| 1434 |
+
digit_1432,7
|
| 1435 |
+
digit_1433,8
|
| 1436 |
+
digit_1434,9
|
| 1437 |
+
digit_1435,0
|
| 1438 |
+
digit_1436,1
|
| 1439 |
+
digit_1437,2
|
| 1440 |
+
digit_1438,3
|
| 1441 |
+
digit_1439,4
|
| 1442 |
+
digit_1440,5
|
| 1443 |
+
digit_1441,6
|
| 1444 |
+
digit_1442,7
|
| 1445 |
+
digit_1443,8
|
| 1446 |
+
digit_1444,9
|
| 1447 |
+
digit_1445,0
|
| 1448 |
+
digit_1446,9
|
| 1449 |
+
digit_1447,5
|
| 1450 |
+
digit_1448,5
|
| 1451 |
+
digit_1449,6
|
| 1452 |
+
digit_1450,5
|
| 1453 |
+
digit_1451,0
|
| 1454 |
+
digit_1452,9
|
| 1455 |
+
digit_1453,8
|
| 1456 |
+
digit_1454,9
|
| 1457 |
+
digit_1455,8
|
| 1458 |
+
digit_1456,4
|
| 1459 |
+
digit_1457,1
|
| 1460 |
+
digit_1458,7
|
| 1461 |
+
digit_1459,7
|
| 1462 |
+
digit_1460,3
|
| 1463 |
+
digit_1461,5
|
| 1464 |
+
digit_1462,1
|
| 1465 |
+
digit_1463,0
|
| 1466 |
+
digit_1464,0
|
| 1467 |
+
digit_1465,2
|
| 1468 |
+
digit_1466,2
|
| 1469 |
+
digit_1467,7
|
| 1470 |
+
digit_1468,8
|
| 1471 |
+
digit_1469,2
|
| 1472 |
+
digit_1470,0
|
| 1473 |
+
digit_1471,1
|
| 1474 |
+
digit_1472,2
|
| 1475 |
+
digit_1473,6
|
| 1476 |
+
digit_1474,3
|
| 1477 |
+
digit_1475,3
|
| 1478 |
+
digit_1476,7
|
| 1479 |
+
digit_1477,3
|
| 1480 |
+
digit_1478,3
|
| 1481 |
+
digit_1479,4
|
| 1482 |
+
digit_1480,6
|
| 1483 |
+
digit_1481,6
|
| 1484 |
+
digit_1482,6
|
| 1485 |
+
digit_1483,4
|
| 1486 |
+
digit_1484,9
|
| 1487 |
+
digit_1485,1
|
| 1488 |
+
digit_1486,5
|
| 1489 |
+
digit_1487,0
|
| 1490 |
+
digit_1488,9
|
| 1491 |
+
digit_1489,5
|
| 1492 |
+
digit_1490,2
|
| 1493 |
+
digit_1491,8
|
| 1494 |
+
digit_1492,2
|
| 1495 |
+
digit_1493,0
|
| 1496 |
+
digit_1494,0
|
| 1497 |
+
digit_1495,1
|
| 1498 |
+
digit_1496,7
|
| 1499 |
+
digit_1497,6
|
| 1500 |
+
digit_1498,3
|
| 1501 |
+
digit_1499,2
|
| 1502 |
+
digit_1500,1
|
| 1503 |
+
digit_1501,7
|
| 1504 |
+
digit_1502,4
|
| 1505 |
+
digit_1503,6
|
| 1506 |
+
digit_1504,3
|
| 1507 |
+
digit_1505,1
|
| 1508 |
+
digit_1506,3
|
| 1509 |
+
digit_1507,9
|
| 1510 |
+
digit_1508,1
|
| 1511 |
+
digit_1509,7
|
| 1512 |
+
digit_1510,6
|
| 1513 |
+
digit_1511,8
|
| 1514 |
+
digit_1512,4
|
| 1515 |
+
digit_1513,3
|
| 1516 |
+
digit_1514,1
|
| 1517 |
+
digit_1515,4
|
| 1518 |
+
digit_1516,0
|
| 1519 |
+
digit_1517,5
|
| 1520 |
+
digit_1518,3
|
| 1521 |
+
digit_1519,6
|
| 1522 |
+
digit_1520,9
|
| 1523 |
+
digit_1521,6
|
| 1524 |
+
digit_1522,1
|
| 1525 |
+
digit_1523,7
|
| 1526 |
+
digit_1524,5
|
| 1527 |
+
digit_1525,4
|
| 1528 |
+
digit_1526,4
|
| 1529 |
+
digit_1527,7
|
| 1530 |
+
digit_1528,2
|
| 1531 |
+
digit_1529,8
|
| 1532 |
+
digit_1530,2
|
| 1533 |
+
digit_1531,2
|
| 1534 |
+
digit_1532,5
|
| 1535 |
+
digit_1533,7
|
| 1536 |
+
digit_1534,9
|
| 1537 |
+
digit_1535,5
|
| 1538 |
+
digit_1536,4
|
| 1539 |
+
digit_1537,8
|
| 1540 |
+
digit_1538,8
|
| 1541 |
+
digit_1539,4
|
| 1542 |
+
digit_1540,9
|
| 1543 |
+
digit_1541,0
|
| 1544 |
+
digit_1542,8
|
| 1545 |
+
digit_1543,9
|
| 1546 |
+
digit_1544,8
|
| 1547 |
+
digit_1545,0
|
| 1548 |
+
digit_1546,1
|
| 1549 |
+
digit_1547,2
|
| 1550 |
+
digit_1548,3
|
| 1551 |
+
digit_1549,4
|
| 1552 |
+
digit_1550,5
|
| 1553 |
+
digit_1551,6
|
| 1554 |
+
digit_1552,7
|
| 1555 |
+
digit_1553,8
|
| 1556 |
+
digit_1554,9
|
| 1557 |
+
digit_1555,0
|
| 1558 |
+
digit_1556,1
|
| 1559 |
+
digit_1557,2
|
| 1560 |
+
digit_1558,3
|
| 1561 |
+
digit_1559,4
|
| 1562 |
+
digit_1560,5
|
| 1563 |
+
digit_1561,6
|
| 1564 |
+
digit_1562,9
|
| 1565 |
+
digit_1563,0
|
| 1566 |
+
digit_1564,1
|
| 1567 |
+
digit_1565,2
|
| 1568 |
+
digit_1566,3
|
| 1569 |
+
digit_1567,4
|
| 1570 |
+
digit_1568,5
|
| 1571 |
+
digit_1569,6
|
| 1572 |
+
digit_1570,7
|
| 1573 |
+
digit_1571,8
|
| 1574 |
+
digit_1572,9
|
| 1575 |
+
digit_1573,0
|
| 1576 |
+
digit_1574,9
|
| 1577 |
+
digit_1575,5
|
| 1578 |
+
digit_1576,5
|
| 1579 |
+
digit_1577,6
|
| 1580 |
+
digit_1578,5
|
| 1581 |
+
digit_1579,0
|
| 1582 |
+
digit_1580,9
|
| 1583 |
+
digit_1581,8
|
| 1584 |
+
digit_1582,9
|
| 1585 |
+
digit_1583,8
|
| 1586 |
+
digit_1584,4
|
| 1587 |
+
digit_1585,1
|
| 1588 |
+
digit_1586,7
|
| 1589 |
+
digit_1587,7
|
| 1590 |
+
digit_1588,3
|
| 1591 |
+
digit_1589,5
|
| 1592 |
+
digit_1590,1
|
| 1593 |
+
digit_1591,0
|
| 1594 |
+
digit_1592,0
|
| 1595 |
+
digit_1593,2
|
| 1596 |
+
digit_1594,2
|
| 1597 |
+
digit_1595,7
|
| 1598 |
+
digit_1596,8
|
| 1599 |
+
digit_1597,2
|
| 1600 |
+
digit_1598,0
|
| 1601 |
+
digit_1599,1
|
| 1602 |
+
digit_1600,2
|
| 1603 |
+
digit_1601,6
|
| 1604 |
+
digit_1602,3
|
| 1605 |
+
digit_1603,3
|
| 1606 |
+
digit_1604,7
|
| 1607 |
+
digit_1605,3
|
| 1608 |
+
digit_1606,3
|
| 1609 |
+
digit_1607,4
|
| 1610 |
+
digit_1608,6
|
| 1611 |
+
digit_1609,6
|
| 1612 |
+
digit_1610,6
|
| 1613 |
+
digit_1611,4
|
| 1614 |
+
digit_1612,9
|
| 1615 |
+
digit_1613,1
|
| 1616 |
+
digit_1614,5
|
| 1617 |
+
digit_1615,0
|
| 1618 |
+
digit_1616,9
|
| 1619 |
+
digit_1617,5
|
| 1620 |
+
digit_1618,2
|
| 1621 |
+
digit_1619,8
|
| 1622 |
+
digit_1620,0
|
| 1623 |
+
digit_1621,1
|
| 1624 |
+
digit_1622,7
|
| 1625 |
+
digit_1623,6
|
| 1626 |
+
digit_1624,3
|
| 1627 |
+
digit_1625,2
|
| 1628 |
+
digit_1626,1
|
| 1629 |
+
digit_1627,7
|
| 1630 |
+
digit_1628,4
|
| 1631 |
+
digit_1629,6
|
| 1632 |
+
digit_1630,3
|
| 1633 |
+
digit_1631,1
|
| 1634 |
+
digit_1632,3
|
| 1635 |
+
digit_1633,9
|
| 1636 |
+
digit_1634,1
|
| 1637 |
+
digit_1635,7
|
| 1638 |
+
digit_1636,6
|
| 1639 |
+
digit_1637,8
|
| 1640 |
+
digit_1638,4
|
| 1641 |
+
digit_1639,3
|
| 1642 |
+
digit_1640,1
|
| 1643 |
+
digit_1641,4
|
| 1644 |
+
digit_1642,0
|
| 1645 |
+
digit_1643,5
|
| 1646 |
+
digit_1644,3
|
| 1647 |
+
digit_1645,6
|
| 1648 |
+
digit_1646,9
|
| 1649 |
+
digit_1647,6
|
| 1650 |
+
digit_1648,1
|
| 1651 |
+
digit_1649,7
|
| 1652 |
+
digit_1650,5
|
| 1653 |
+
digit_1651,4
|
| 1654 |
+
digit_1652,4
|
| 1655 |
+
digit_1653,7
|
| 1656 |
+
digit_1654,2
|
| 1657 |
+
digit_1655,2
|
| 1658 |
+
digit_1656,5
|
| 1659 |
+
digit_1657,7
|
| 1660 |
+
digit_1658,9
|
| 1661 |
+
digit_1659,5
|
| 1662 |
+
digit_1660,4
|
| 1663 |
+
digit_1661,4
|
| 1664 |
+
digit_1662,9
|
| 1665 |
+
digit_1663,0
|
| 1666 |
+
digit_1664,8
|
| 1667 |
+
digit_1665,9
|
| 1668 |
+
digit_1666,8
|
| 1669 |
+
digit_1667,0
|
| 1670 |
+
digit_1668,1
|
| 1671 |
+
digit_1669,2
|
| 1672 |
+
digit_1670,3
|
| 1673 |
+
digit_1671,4
|
| 1674 |
+
digit_1672,5
|
| 1675 |
+
digit_1673,6
|
| 1676 |
+
digit_1674,7
|
| 1677 |
+
digit_1675,8
|
| 1678 |
+
digit_1676,9
|
| 1679 |
+
digit_1677,0
|
| 1680 |
+
digit_1678,1
|
| 1681 |
+
digit_1679,2
|
| 1682 |
+
digit_1680,3
|
| 1683 |
+
digit_1681,4
|
| 1684 |
+
digit_1682,5
|
| 1685 |
+
digit_1683,6
|
| 1686 |
+
digit_1684,7
|
| 1687 |
+
digit_1685,8
|
| 1688 |
+
digit_1686,9
|
| 1689 |
+
digit_1687,0
|
| 1690 |
+
digit_1688,1
|
| 1691 |
+
digit_1689,2
|
| 1692 |
+
digit_1690,3
|
| 1693 |
+
digit_1691,4
|
| 1694 |
+
digit_1692,5
|
| 1695 |
+
digit_1693,6
|
| 1696 |
+
digit_1694,7
|
| 1697 |
+
digit_1695,8
|
| 1698 |
+
digit_1696,9
|
| 1699 |
+
digit_1697,0
|
| 1700 |
+
digit_1698,9
|
| 1701 |
+
digit_1699,5
|
| 1702 |
+
digit_1700,5
|
| 1703 |
+
digit_1701,6
|
| 1704 |
+
digit_1702,5
|
| 1705 |
+
digit_1703,0
|
| 1706 |
+
digit_1704,9
|
| 1707 |
+
digit_1705,8
|
| 1708 |
+
digit_1706,9
|
| 1709 |
+
digit_1707,8
|
| 1710 |
+
digit_1708,4
|
| 1711 |
+
digit_1709,1
|
| 1712 |
+
digit_1710,7
|
| 1713 |
+
digit_1711,7
|
| 1714 |
+
digit_1712,3
|
| 1715 |
+
digit_1713,5
|
| 1716 |
+
digit_1714,1
|
| 1717 |
+
digit_1715,0
|
| 1718 |
+
digit_1716,0
|
| 1719 |
+
digit_1717,2
|
| 1720 |
+
digit_1718,2
|
| 1721 |
+
digit_1719,7
|
| 1722 |
+
digit_1720,8
|
| 1723 |
+
digit_1721,2
|
| 1724 |
+
digit_1722,0
|
| 1725 |
+
digit_1723,1
|
| 1726 |
+
digit_1724,2
|
| 1727 |
+
digit_1725,6
|
| 1728 |
+
digit_1726,3
|
| 1729 |
+
digit_1727,3
|
| 1730 |
+
digit_1728,7
|
| 1731 |
+
digit_1729,3
|
| 1732 |
+
digit_1730,3
|
| 1733 |
+
digit_1731,4
|
| 1734 |
+
digit_1732,6
|
| 1735 |
+
digit_1733,6
|
| 1736 |
+
digit_1734,6
|
| 1737 |
+
digit_1735,4
|
| 1738 |
+
digit_1736,9
|
| 1739 |
+
digit_1737,1
|
| 1740 |
+
digit_1738,5
|
| 1741 |
+
digit_1739,0
|
| 1742 |
+
digit_1740,9
|
| 1743 |
+
digit_1741,5
|
| 1744 |
+
digit_1742,2
|
| 1745 |
+
digit_1743,8
|
| 1746 |
+
digit_1744,2
|
| 1747 |
+
digit_1745,0
|
| 1748 |
+
digit_1746,0
|
| 1749 |
+
digit_1747,1
|
| 1750 |
+
digit_1748,7
|
| 1751 |
+
digit_1749,6
|
| 1752 |
+
digit_1750,3
|
| 1753 |
+
digit_1751,2
|
| 1754 |
+
digit_1752,1
|
| 1755 |
+
digit_1753,7
|
| 1756 |
+
digit_1754,4
|
| 1757 |
+
digit_1755,6
|
| 1758 |
+
digit_1756,3
|
| 1759 |
+
digit_1757,1
|
| 1760 |
+
digit_1758,3
|
| 1761 |
+
digit_1759,9
|
| 1762 |
+
digit_1760,1
|
| 1763 |
+
digit_1761,7
|
| 1764 |
+
digit_1762,6
|
| 1765 |
+
digit_1763,8
|
| 1766 |
+
digit_1764,4
|
| 1767 |
+
digit_1765,3
|
| 1768 |
+
digit_1766,1
|
| 1769 |
+
digit_1767,4
|
| 1770 |
+
digit_1768,0
|
| 1771 |
+
digit_1769,5
|
| 1772 |
+
digit_1770,3
|
| 1773 |
+
digit_1771,6
|
| 1774 |
+
digit_1772,9
|
| 1775 |
+
digit_1773,6
|
| 1776 |
+
digit_1774,1
|
| 1777 |
+
digit_1775,7
|
| 1778 |
+
digit_1776,5
|
| 1779 |
+
digit_1777,4
|
| 1780 |
+
digit_1778,4
|
| 1781 |
+
digit_1779,7
|
| 1782 |
+
digit_1780,2
|
| 1783 |
+
digit_1781,8
|
| 1784 |
+
digit_1782,2
|
| 1785 |
+
digit_1783,2
|
| 1786 |
+
digit_1784,5
|
| 1787 |
+
digit_1785,7
|
| 1788 |
+
digit_1786,9
|
| 1789 |
+
digit_1787,5
|
| 1790 |
+
digit_1788,4
|
| 1791 |
+
digit_1789,8
|
| 1792 |
+
digit_1790,8
|
| 1793 |
+
digit_1791,4
|
| 1794 |
+
digit_1792,9
|
| 1795 |
+
digit_1793,0
|
| 1796 |
+
digit_1794,8
|
| 1797 |
+
digit_1795,9
|
| 1798 |
+
digit_1796,8
|
tmp/inputs/iris_data.csv
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
,sepal length (cm),sepal width (cm),petal length (cm),petal width (cm)
|
| 2 |
+
sample_0,5.1,3.5,1.4,0.2
|
| 3 |
+
sample_1,4.9,3.0,1.4,0.2
|
| 4 |
+
sample_2,4.7,3.2,1.3,0.2
|
| 5 |
+
sample_3,4.6,3.1,1.5,0.2
|
| 6 |
+
sample_4,5.0,3.6,1.4,0.2
|
| 7 |
+
sample_5,5.4,3.9,1.7,0.4
|
| 8 |
+
sample_6,4.6,3.4,1.4,0.3
|
| 9 |
+
sample_7,5.0,3.4,1.5,0.2
|
| 10 |
+
sample_8,4.4,2.9,1.4,0.2
|
| 11 |
+
sample_9,4.9,3.1,1.5,0.1
|
| 12 |
+
sample_10,5.4,3.7,1.5,0.2
|
| 13 |
+
sample_11,4.8,3.4,1.6,0.2
|
| 14 |
+
sample_12,4.8,3.0,1.4,0.1
|
| 15 |
+
sample_13,4.3,3.0,1.1,0.1
|
| 16 |
+
sample_14,5.8,4.0,1.2,0.2
|
| 17 |
+
sample_15,5.7,4.4,1.5,0.4
|
| 18 |
+
sample_16,5.4,3.9,1.3,0.4
|
| 19 |
+
sample_17,5.1,3.5,1.4,0.3
|
| 20 |
+
sample_18,5.7,3.8,1.7,0.3
|
| 21 |
+
sample_19,5.1,3.8,1.5,0.3
|
| 22 |
+
sample_20,5.4,3.4,1.7,0.2
|
| 23 |
+
sample_21,5.1,3.7,1.5,0.4
|
| 24 |
+
sample_22,4.6,3.6,1.0,0.2
|
| 25 |
+
sample_23,5.1,3.3,1.7,0.5
|
| 26 |
+
sample_24,4.8,3.4,1.9,0.2
|
| 27 |
+
sample_25,5.0,3.0,1.6,0.2
|
| 28 |
+
sample_26,5.0,3.4,1.6,0.4
|
| 29 |
+
sample_27,5.2,3.5,1.5,0.2
|
| 30 |
+
sample_28,5.2,3.4,1.4,0.2
|
| 31 |
+
sample_29,4.7,3.2,1.6,0.2
|
| 32 |
+
sample_30,4.8,3.1,1.6,0.2
|
| 33 |
+
sample_31,5.4,3.4,1.5,0.4
|
| 34 |
+
sample_32,5.2,4.1,1.5,0.1
|
| 35 |
+
sample_33,5.5,4.2,1.4,0.2
|
| 36 |
+
sample_34,4.9,3.1,1.5,0.2
|
| 37 |
+
sample_35,5.0,3.2,1.2,0.2
|
| 38 |
+
sample_36,5.5,3.5,1.3,0.2
|
| 39 |
+
sample_37,4.9,3.6,1.4,0.1
|
| 40 |
+
sample_38,4.4,3.0,1.3,0.2
|
| 41 |
+
sample_39,5.1,3.4,1.5,0.2
|
| 42 |
+
sample_40,5.0,3.5,1.3,0.3
|
| 43 |
+
sample_41,4.5,2.3,1.3,0.3
|
| 44 |
+
sample_42,4.4,3.2,1.3,0.2
|
| 45 |
+
sample_43,5.0,3.5,1.6,0.6
|
| 46 |
+
sample_44,5.1,3.8,1.9,0.4
|
| 47 |
+
sample_45,4.8,3.0,1.4,0.3
|
| 48 |
+
sample_46,5.1,3.8,1.6,0.2
|
| 49 |
+
sample_47,4.6,3.2,1.4,0.2
|
| 50 |
+
sample_48,5.3,3.7,1.5,0.2
|
| 51 |
+
sample_49,5.0,3.3,1.4,0.2
|
| 52 |
+
sample_50,7.0,3.2,4.7,1.4
|
| 53 |
+
sample_51,6.4,3.2,4.5,1.5
|
| 54 |
+
sample_52,6.9,3.1,4.9,1.5
|
| 55 |
+
sample_53,5.5,2.3,4.0,1.3
|
| 56 |
+
sample_54,6.5,2.8,4.6,1.5
|
| 57 |
+
sample_55,5.7,2.8,4.5,1.3
|
| 58 |
+
sample_56,6.3,3.3,4.7,1.6
|
| 59 |
+
sample_57,4.9,2.4,3.3,1.0
|
| 60 |
+
sample_58,6.6,2.9,4.6,1.3
|
| 61 |
+
sample_59,5.2,2.7,3.9,1.4
|
| 62 |
+
sample_60,5.0,2.0,3.5,1.0
|
| 63 |
+
sample_61,5.9,3.0,4.2,1.5
|
| 64 |
+
sample_62,6.0,2.2,4.0,1.0
|
| 65 |
+
sample_63,6.1,2.9,4.7,1.4
|
| 66 |
+
sample_64,5.6,2.9,3.6,1.3
|
| 67 |
+
sample_65,6.7,3.1,4.4,1.4
|
| 68 |
+
sample_66,5.6,3.0,4.5,1.5
|
| 69 |
+
sample_67,5.8,2.7,4.1,1.0
|
| 70 |
+
sample_68,6.2,2.2,4.5,1.5
|
| 71 |
+
sample_69,5.6,2.5,3.9,1.1
|
| 72 |
+
sample_70,5.9,3.2,4.8,1.8
|
| 73 |
+
sample_71,6.1,2.8,4.0,1.3
|
| 74 |
+
sample_72,6.3,2.5,4.9,1.5
|
| 75 |
+
sample_73,6.1,2.8,4.7,1.2
|
| 76 |
+
sample_74,6.4,2.9,4.3,1.3
|
| 77 |
+
sample_75,6.6,3.0,4.4,1.4
|
| 78 |
+
sample_76,6.8,2.8,4.8,1.4
|
| 79 |
+
sample_77,6.7,3.0,5.0,1.7
|
| 80 |
+
sample_78,6.0,2.9,4.5,1.5
|
| 81 |
+
sample_79,5.7,2.6,3.5,1.0
|
| 82 |
+
sample_80,5.5,2.4,3.8,1.1
|
| 83 |
+
sample_81,5.5,2.4,3.7,1.0
|
| 84 |
+
sample_82,5.8,2.7,3.9,1.2
|
| 85 |
+
sample_83,6.0,2.7,5.1,1.6
|
| 86 |
+
sample_84,5.4,3.0,4.5,1.5
|
| 87 |
+
sample_85,6.0,3.4,4.5,1.6
|
| 88 |
+
sample_86,6.7,3.1,4.7,1.5
|
| 89 |
+
sample_87,6.3,2.3,4.4,1.3
|
| 90 |
+
sample_88,5.6,3.0,4.1,1.3
|
| 91 |
+
sample_89,5.5,2.5,4.0,1.3
|
| 92 |
+
sample_90,5.5,2.6,4.4,1.2
|
| 93 |
+
sample_91,6.1,3.0,4.6,1.4
|
| 94 |
+
sample_92,5.8,2.6,4.0,1.2
|
| 95 |
+
sample_93,5.0,2.3,3.3,1.0
|
| 96 |
+
sample_94,5.6,2.7,4.2,1.3
|
| 97 |
+
sample_95,5.7,3.0,4.2,1.2
|
| 98 |
+
sample_96,5.7,2.9,4.2,1.3
|
| 99 |
+
sample_97,6.2,2.9,4.3,1.3
|
| 100 |
+
sample_98,5.1,2.5,3.0,1.1
|
| 101 |
+
sample_99,5.7,2.8,4.1,1.3
|
| 102 |
+
sample_100,6.3,3.3,6.0,2.5
|
| 103 |
+
sample_101,5.8,2.7,5.1,1.9
|
| 104 |
+
sample_102,7.1,3.0,5.9,2.1
|
| 105 |
+
sample_103,6.3,2.9,5.6,1.8
|
| 106 |
+
sample_104,6.5,3.0,5.8,2.2
|
| 107 |
+
sample_105,7.6,3.0,6.6,2.1
|
| 108 |
+
sample_106,4.9,2.5,4.5,1.7
|
| 109 |
+
sample_107,7.3,2.9,6.3,1.8
|
| 110 |
+
sample_108,6.7,2.5,5.8,1.8
|
| 111 |
+
sample_109,7.2,3.6,6.1,2.5
|
| 112 |
+
sample_110,6.5,3.2,5.1,2.0
|
| 113 |
+
sample_111,6.4,2.7,5.3,1.9
|
| 114 |
+
sample_112,6.8,3.0,5.5,2.1
|
| 115 |
+
sample_113,5.7,2.5,5.0,2.0
|
| 116 |
+
sample_114,5.8,2.8,5.1,2.4
|
| 117 |
+
sample_115,6.4,3.2,5.3,2.3
|
| 118 |
+
sample_116,6.5,3.0,5.5,1.8
|
| 119 |
+
sample_117,7.7,3.8,6.7,2.2
|
| 120 |
+
sample_118,7.7,2.6,6.9,2.3
|
| 121 |
+
sample_119,6.0,2.2,5.0,1.5
|
| 122 |
+
sample_120,6.9,3.2,5.7,2.3
|
| 123 |
+
sample_121,5.6,2.8,4.9,2.0
|
| 124 |
+
sample_122,7.7,2.8,6.7,2.0
|
| 125 |
+
sample_123,6.3,2.7,4.9,1.8
|
| 126 |
+
sample_124,6.7,3.3,5.7,2.1
|
| 127 |
+
sample_125,7.2,3.2,6.0,1.8
|
| 128 |
+
sample_126,6.2,2.8,4.8,1.8
|
| 129 |
+
sample_127,6.1,3.0,4.9,1.8
|
| 130 |
+
sample_128,6.4,2.8,5.6,2.1
|
| 131 |
+
sample_129,7.2,3.0,5.8,1.6
|
| 132 |
+
sample_130,7.4,2.8,6.1,1.9
|
| 133 |
+
sample_131,7.9,3.8,6.4,2.0
|
| 134 |
+
sample_132,6.4,2.8,5.6,2.2
|
| 135 |
+
sample_133,6.3,2.8,5.1,1.5
|
| 136 |
+
sample_134,6.1,2.6,5.6,1.4
|
| 137 |
+
sample_135,7.7,3.0,6.1,2.3
|
| 138 |
+
sample_136,6.3,3.4,5.6,2.4
|
| 139 |
+
sample_137,6.4,3.1,5.5,1.8
|
| 140 |
+
sample_138,6.0,3.0,4.8,1.8
|
| 141 |
+
sample_139,6.9,3.1,5.4,2.1
|
| 142 |
+
sample_140,6.7,3.1,5.6,2.4
|
| 143 |
+
sample_141,6.9,3.1,5.1,2.3
|
| 144 |
+
sample_142,5.8,2.7,5.1,1.9
|
| 145 |
+
sample_143,6.8,3.2,5.9,2.3
|
| 146 |
+
sample_144,6.7,3.3,5.7,2.5
|
| 147 |
+
sample_145,6.7,3.0,5.2,2.3
|
| 148 |
+
sample_146,6.3,2.5,5.0,1.9
|
| 149 |
+
sample_147,6.5,3.0,5.2,2.0
|
| 150 |
+
sample_148,6.2,3.4,5.4,2.3
|
| 151 |
+
sample_149,5.9,3.0,5.1,1.8
|
tmp/inputs/iris_labels.csv
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
,label
|
| 2 |
+
sample_0,setosa
|
| 3 |
+
sample_1,setosa
|
| 4 |
+
sample_2,setosa
|
| 5 |
+
sample_3,setosa
|
| 6 |
+
sample_4,setosa
|
| 7 |
+
sample_5,setosa
|
| 8 |
+
sample_6,setosa
|
| 9 |
+
sample_7,setosa
|
| 10 |
+
sample_8,setosa
|
| 11 |
+
sample_9,setosa
|
| 12 |
+
sample_10,setosa
|
| 13 |
+
sample_11,setosa
|
| 14 |
+
sample_12,setosa
|
| 15 |
+
sample_13,setosa
|
| 16 |
+
sample_14,setosa
|
| 17 |
+
sample_15,setosa
|
| 18 |
+
sample_16,setosa
|
| 19 |
+
sample_17,setosa
|
| 20 |
+
sample_18,setosa
|
| 21 |
+
sample_19,setosa
|
| 22 |
+
sample_20,setosa
|
| 23 |
+
sample_21,setosa
|
| 24 |
+
sample_22,setosa
|
| 25 |
+
sample_23,setosa
|
| 26 |
+
sample_24,setosa
|
| 27 |
+
sample_25,setosa
|
| 28 |
+
sample_26,setosa
|
| 29 |
+
sample_27,setosa
|
| 30 |
+
sample_28,setosa
|
| 31 |
+
sample_29,setosa
|
| 32 |
+
sample_30,setosa
|
| 33 |
+
sample_31,setosa
|
| 34 |
+
sample_32,setosa
|
| 35 |
+
sample_33,setosa
|
| 36 |
+
sample_34,setosa
|
| 37 |
+
sample_35,setosa
|
| 38 |
+
sample_36,setosa
|
| 39 |
+
sample_37,setosa
|
| 40 |
+
sample_38,setosa
|
| 41 |
+
sample_39,setosa
|
| 42 |
+
sample_40,setosa
|
| 43 |
+
sample_41,setosa
|
| 44 |
+
sample_42,setosa
|
| 45 |
+
sample_43,setosa
|
| 46 |
+
sample_44,setosa
|
| 47 |
+
sample_45,setosa
|
| 48 |
+
sample_46,setosa
|
| 49 |
+
sample_47,setosa
|
| 50 |
+
sample_48,setosa
|
| 51 |
+
sample_49,setosa
|
| 52 |
+
sample_50,versicolor
|
| 53 |
+
sample_51,versicolor
|
| 54 |
+
sample_52,versicolor
|
| 55 |
+
sample_53,versicolor
|
| 56 |
+
sample_54,versicolor
|
| 57 |
+
sample_55,versicolor
|
| 58 |
+
sample_56,versicolor
|
| 59 |
+
sample_57,versicolor
|
| 60 |
+
sample_58,versicolor
|
| 61 |
+
sample_59,versicolor
|
| 62 |
+
sample_60,versicolor
|
| 63 |
+
sample_61,versicolor
|
| 64 |
+
sample_62,versicolor
|
| 65 |
+
sample_63,versicolor
|
| 66 |
+
sample_64,versicolor
|
| 67 |
+
sample_65,versicolor
|
| 68 |
+
sample_66,versicolor
|
| 69 |
+
sample_67,versicolor
|
| 70 |
+
sample_68,versicolor
|
| 71 |
+
sample_69,versicolor
|
| 72 |
+
sample_70,versicolor
|
| 73 |
+
sample_71,versicolor
|
| 74 |
+
sample_72,versicolor
|
| 75 |
+
sample_73,versicolor
|
| 76 |
+
sample_74,versicolor
|
| 77 |
+
sample_75,versicolor
|
| 78 |
+
sample_76,versicolor
|
| 79 |
+
sample_77,versicolor
|
| 80 |
+
sample_78,versicolor
|
| 81 |
+
sample_79,versicolor
|
| 82 |
+
sample_80,versicolor
|
| 83 |
+
sample_81,versicolor
|
| 84 |
+
sample_82,versicolor
|
| 85 |
+
sample_83,versicolor
|
| 86 |
+
sample_84,versicolor
|
| 87 |
+
sample_85,versicolor
|
| 88 |
+
sample_86,versicolor
|
| 89 |
+
sample_87,versicolor
|
| 90 |
+
sample_88,versicolor
|
| 91 |
+
sample_89,versicolor
|
| 92 |
+
sample_90,versicolor
|
| 93 |
+
sample_91,versicolor
|
| 94 |
+
sample_92,versicolor
|
| 95 |
+
sample_93,versicolor
|
| 96 |
+
sample_94,versicolor
|
| 97 |
+
sample_95,versicolor
|
| 98 |
+
sample_96,versicolor
|
| 99 |
+
sample_97,versicolor
|
| 100 |
+
sample_98,versicolor
|
| 101 |
+
sample_99,versicolor
|
| 102 |
+
sample_100,virginica
|
| 103 |
+
sample_101,virginica
|
| 104 |
+
sample_102,virginica
|
| 105 |
+
sample_103,virginica
|
| 106 |
+
sample_104,virginica
|
| 107 |
+
sample_105,virginica
|
| 108 |
+
sample_106,virginica
|
| 109 |
+
sample_107,virginica
|
| 110 |
+
sample_108,virginica
|
| 111 |
+
sample_109,virginica
|
| 112 |
+
sample_110,virginica
|
| 113 |
+
sample_111,virginica
|
| 114 |
+
sample_112,virginica
|
| 115 |
+
sample_113,virginica
|
| 116 |
+
sample_114,virginica
|
| 117 |
+
sample_115,virginica
|
| 118 |
+
sample_116,virginica
|
| 119 |
+
sample_117,virginica
|
| 120 |
+
sample_118,virginica
|
| 121 |
+
sample_119,virginica
|
| 122 |
+
sample_120,virginica
|
| 123 |
+
sample_121,virginica
|
| 124 |
+
sample_122,virginica
|
| 125 |
+
sample_123,virginica
|
| 126 |
+
sample_124,virginica
|
| 127 |
+
sample_125,virginica
|
| 128 |
+
sample_126,virginica
|
| 129 |
+
sample_127,virginica
|
| 130 |
+
sample_128,virginica
|
| 131 |
+
sample_129,virginica
|
| 132 |
+
sample_130,virginica
|
| 133 |
+
sample_131,virginica
|
| 134 |
+
sample_132,virginica
|
| 135 |
+
sample_133,virginica
|
| 136 |
+
sample_134,virginica
|
| 137 |
+
sample_135,virginica
|
| 138 |
+
sample_136,virginica
|
| 139 |
+
sample_137,virginica
|
| 140 |
+
sample_138,virginica
|
| 141 |
+
sample_139,virginica
|
| 142 |
+
sample_140,virginica
|
| 143 |
+
sample_141,virginica
|
| 144 |
+
sample_142,virginica
|
| 145 |
+
sample_143,virginica
|
| 146 |
+
sample_144,virginica
|
| 147 |
+
sample_145,virginica
|
| 148 |
+
sample_146,virginica
|
| 149 |
+
sample_147,virginica
|
| 150 |
+
sample_148,virginica
|
| 151 |
+
sample_149,virginica
|