Full Code of KarypisLab/ParMETIS for AI

main 8ee6a372ca70 cached
78 files
22.5 MB
5.9M tokens
254 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (23,648K chars total). Download the full file to get everything.
Repository: KarypisLab/ParMETIS
Branch: main
Commit: 8ee6a372ca70
Files: 78
Total size: 22.5 MB

Directory structure:
gitextract_o70mdxnl/

├── .gitignore
├── .gitmodules
├── BUILD.txt
├── CMakeLists.txt
├── Changelog
├── Install.txt
├── LICENSE
├── Makefile
├── README.md
├── conf/
│   ├── check_thread_storage.c
│   └── gkbuild.cmake
├── graphs/
│   ├── bricks.hex3d
│   ├── rotor.graph
│   └── rotor.graph.xyz
├── include/
│   ├── CMakeLists.txt
│   └── parmetis.h
├── libparmetis/
│   ├── CMakeLists.txt
│   ├── akwayfm.c
│   ├── ametis.c
│   ├── balancemylink.c
│   ├── comm.c
│   ├── csrmatch.c
│   ├── ctrl.c
│   ├── debug.c
│   ├── defs.h
│   ├── diffutil.c
│   ├── frename.c
│   ├── gklib.c
│   ├── gklib_defs.h
│   ├── gklib_rename.h
│   ├── gkmetis.c
│   ├── gkmpi.c
│   ├── graph.c
│   ├── initbalance.c
│   ├── initmsection.c
│   ├── initpart.c
│   ├── kmetis.c
│   ├── kwayrefine.c
│   ├── macros.h
│   ├── match.c
│   ├── mdiffusion.c
│   ├── mesh.c
│   ├── mmetis.c
│   ├── move.c
│   ├── msetup.c
│   ├── node_refine.c
│   ├── ometis.c
│   ├── parmetislib.h
│   ├── proto.h
│   ├── pspases.c
│   ├── redomylink.c
│   ├── remap.c
│   ├── rename.h
│   ├── renumber.c
│   ├── rmetis.c
│   ├── selectq.c
│   ├── serial.c
│   ├── stat.c
│   ├── struct.h
│   ├── timer.c
│   ├── util.c
│   ├── wave.c
│   ├── weird.c
│   ├── wspace.c
│   └── xyzpart.c
├── programs/
│   ├── CMakeLists.txt
│   ├── adaptgraph.c
│   ├── dglpart.c
│   ├── io.c
│   ├── mtest.c
│   ├── otest.c
│   ├── parmetis.c
│   ├── parmetisbin.h
│   ├── plotorder.pl
│   ├── pometis.c
│   ├── proto.h
│   └── ptest.c
└── utils/
    └── listunescapedsymbols.csh

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Prerequisites
*.d

# Object files
*.o
*.ko
*.obj
*.elf

# Linker output
*.ilk
*.map
*.exp

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex

# Debug files
*.dSYM/
*.su
*.idb
*.pdb

# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf

# GK things
build/
graphs/*.part.*
graphs/*.iperm
graphs/*.epart.*
graphs/*.npart.*
.svn/



================================================
FILE: .gitmodules
================================================


================================================
FILE: BUILD.txt
================================================
------------------------------------------------------------------------------
Building ParMETIS requires CMake 2.8, found at http://www.cmake.org/, as well as
GNU make. Assumming CMake and GNU make are installed, two commands should
suffice to build ParMETIS:

     $ make config
     $ make


Configuration
-------------
ParMETIS is primarily configured by passing options to make config. For
example:

     $ make config shared=1 

would configure ParMETIS to be built as a shared library.

Common configuration options are:
  cc=[compiler]   - The C compiler to use [default is mpicc]
  cxx=[compiler]  - The C++ compiler to use [default is mpicxx]
  shared=1        - Build a shared library instead of a static one 
                    [off by default]
  prefix=[PATH]   - Set the installation prefix [/usr/local/ by default]

Advanced debugging related options:
  gdb=1       - Build with support for GDB [off by default]
  debug=1     - Enable debugging support [off by default]
  assert=1    - Enable asserts [off by default]
  assert2=1   - Enable very expensive asserts [off by default]

Installation
------------
To install ParMETIS, run

    $ make install

The default installation prefix is /usr/local. To pick an installation 
prefix for ParMETIS pass prefix=[path] to make config. For example,

    $ make config prefix=~/myroot/

will cause ParMETIS to be installed in ~/myroot/ when make install is run.


Other make commands
-------------------
   $ make uninstall 
          Removes all files installed by 'make install'.
   
   $ make clean 
          Removes all object files but retains the configuration options.
   
   $ make distclean 
          Performs clean and completely removes the build directory.

------------------------------------------------------------------------------


================================================
FILE: CMakeLists.txt
================================================
cmake_minimum_required(VERSION 2.8)
project(ParMETIS C)


# Search for MPI.
# GK commented this out as it seems to be creating problems
# include(FindMPI)
# if(NOT MPI_FOUND)
#   message(FATAL_ERROR "mpi is not found")
# endif()
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_COMPILE_FLAGS}")


# Prepare libraries.
if(SHARED)
  set(ParMETIS_LIBRARY_TYPE SHARED)
else()
  set(ParMETIS_LIBRARY_TYPE STATIC)
endif()

include(./conf/gkbuild.cmake)

# List of paths that the compiler will search for header files.
# i.e., the -I equivalent
include_directories(include)
include_directories(${MPI_INCLUDE_PATH})
include_directories(${GKLIB_PATH}/include)
include_directories(${METIS_PATH}/include)
include_directories(${CMAKE_INSTALL_PREFIX}/include)

# List of paths that the compiler will search for library files.
# i.e., the -L equivalent
link_directories(${GKLIB_PATH}/lib)
link_directories(${METIS_PATH}/lib)
link_directories(${CMAKE_INSTALL_PREFIX}/lib)

# List of directories that cmake will look for CMakeLists.txt
add_subdirectory(include)
add_subdirectory(libparmetis)
add_subdirectory(programs)

# This is for testing during development and is not being distributed
#add_subdirectory(test)


================================================
FILE: Changelog
================================================

Changes in version 4.0.3
r13947; 2013-03-30 10:55:56 -0500 (Sat, 30 Mar 2013) 

- Fixed various issues related to wavefront diffusion (flyspray #43).
- Fixed issue related to the serial code for adaptive repartitioning
  (flyspray #95).
- Incorporated the latest version of Metis.


Changes in version 4.0.2
r10987; 2011-10-31 09:42:33 -0500 (Mon, 31 Oct 2011)

- Updated cmake files to use mpicc/mpicxx by default and remove 
  MPI auto-detection that has been creating problems.
- Fixed refinement assert failure for 0 degree vertices.


Changes in version 4.0.1
r10758; 2011-09-15 17:09:42 -0500 (Thu, 15 Sep 2011)

- Fixed issue with geometric partitioning and too few vertices.
- Fixed memory leak related to progress reporting.


Changes in version 4.0
r10658; 2011-08-03 09:38:45 -0500 (Wed, 03 Aug 2011)

- Switch to collective comm operations in geometric partitioning.
- Fixed issues with numflag==1 and npes==1.
- Added Visual studio support.
- More manual updates.


Changes in version 4.0rc1 
r10592; 2011-07-16 16:17:53 -0500 (Sat, 16 Jul 2011)

- Improved the quality of the geometric partitioning routines. 
- Removed the 4K limit on the maximum number of processors for
  geometric partitioning.
- Fixed minor bugs that surfaced since 4.0a3.
- Updated the manual.
  

Changes in version 4.0a3 
r10573; 2011-07-14 08:31:54 -0500 (Thu, 14 Jul 2011)

- Fixed an old and well-hidden bug in the core sparse communication
  routines.
- Fixed the mesh partitioning routines, which were broken due to 
  the fact that ParMetis now tracks all memory allocations and 
  frees them at the end of the computations.


Changes in version 4.0a2 
r10566; 2011-07-13 11:15:54 -0500 (Wed, 13 Jul 2011) 

- Removed MAXNCON and MAX_PES constant dependency.
- Reduced memory requirements for MPI comm related data structures.
- Restructuring of the parameter-checking part of the code.
- Rewrote how ctrl/graph are being setup. Cleaner code; fewer bugs.
- Fixed some bugs identified by the early testers.


Changes in version 4.0a1
- Serial parts of the code are now based on Metis 5.0.
- Complete 64 bit support that is controlled at build time by setting
  the width of the idx_t type in metis/include/metis.h
- Re-wrote the memory management subsystem that ParMetis utilizes to
  reduce the total amount of memory that it uses and to support graceful
  exits (to be implemented in the final 4.0).
- Better support for multi-constraint partitioning with per-constraint
  unbalance tolerances.
- Fixed various bugs that were there since 3.0.


Changes in version 3.2
- Added a new ordering code that incorporates two major improvements
  in the refinement routines that should give it a performance that is
  comparable to that of serial Metis. In addition, the new ordering
  routines eliminate the power of two restriction of the old routines.
- Added a new API function ParMETIS_V32_NodeND that exposes the new
  ordering options to the user. The old API function is still valid
  and utilizes the new API.
- Added a logic to switch to ParMETIS_V3_PartKway when the 
  ParMETIS_V3_PartGeomKway is called with more than 4096 processors.
  This is due to a current limitation of the ParMETIS_V3_PartGeomKway
  for large number of processors (i.e., it uses too much memory).
- Fixed various compilation warnings due to the latest glibc version.
- Better handling of island (multi-)vertices.
- Fixed a number of reported bugs. The following tasks correspond 
  to the issues reported at http://glaros.dtc.umn.edu/flyspray
  - Flyspray Task 55: Fixed segfault when graph->nvtxs == 0.
  - Flyspray Task 54: The above fix applies here as well.
  - Flyspray Task 53: Implemented a partial fix. Complete fix in 4.0.
  - Flyspray Task 50: Free-memory write in PartGeomKway.
  - Flyspray Task 38: Removed malloc.h from stdheaders.h


Changes in version 3.1.1
- Fixed a number of bugs that have been reported over the years.
  The following tasks correspond to the issues reported at 
  http://glaros.dtc.umn.edu/flyspray
  - Flyspray Task  8: Fixed deallocation of user-supplied vsize
  - Flyspray Task 28: Fixed ParMETIS_V3_Mesh2Dual static arrays 
  - Flyspray Task 30: Fixed 1025 instead of 1024 buckets
  - Flyspray Task 34: Fixed writting past wspace->core for certain cases
  - Flyspray Task 35: Fixed issues associated with assumed 0-based indexing
  - Flyspray Task 36: Fixed mesh 1->0 numbering error
- Fixed non-utilization of the user-supplied seed for the parallel ordering 
  code


Changes in version 3.1
- The mesh partitioning and dual creation routines have changed to support mixed
  element meshes.

- The parmetis.h header file has been restructured and is now C++ friendly.

- Fortran bindings/renamings for various routines have been added.

- A number of bugs have been fixed.
  - tpwgts are now respected for small graphs.
  - fixed various divide by zero errors.
  - removed dependency on the old drand48() routines.
  - fixed some memory leaks.



Changes in version 3.0

- The names and calling sequence of all the routines have changed due to expanded
  functionality that has been provided in this release. However, the 2.0 API calls 
  have been mapped to the new routines. However, the expanded functionality provided 
  with this release is only available by using the new calling sequences.

- The four adaptive repartitioning routines: 
    ParMETIS_RepartLDiffusion, 
    ParMETIS_RepartGDiffusion,
    ParMETIS_RepartRemap, and
    ParMETIS_RepartMLRemap,
  have been replaced by a single routine called ParMETIS_V3_AdpativeRepart that 
  implements a unified repartitioning algorithm which combines the best features 
  of the previous routines.

- Multiple vertex weights/balance constraints are supported for most of the
  routines. This allows ParMETIS to be used to partition graphs for multi-phase
  and multi-physics simulations.

- In order to optimize partitionings for specific heterogeneous computing 
  architectures, it is now possible to specify the target sub-domain weights 
  for each of the sub-domains and for each balance constraint. This feature, 
  for example, allows the user to compute a partitioning in which one of the 
  sub-domains is twice the size of all of the others.

- The number of sub-domains has been de-coupled from the number of processors
  in both the static and the adaptive partitioning schemes. Hence, it is now
  possible to use the parallel partitioning and repartitioning algorithms
  to compute a k-way partitioning independent of the number of processors
  that are used. Note that Version 2.0 provided this functionality for the 
  static partitioning schemes only.

- Routines are provided for both directly partitioning a finite element mesh, 
  and for constructing the dual graph of a mesh in parallel.



Changes in version 2.0

- Changed the names and calling sequences of all the routines to make it 
  easier to use ParMETIS with Fortran. 

- Improved the performance of the diffusive adaptive repartitioning 
  algorithms.

- Added a new set of adaptive repartitioning routines that are based on the
  remapping paradigm. These routines are called ParMETIS_RepartRemap and
  ParMETIS_RepartMLRemap

- The number of partitions has been de-coupled from the number of processors.
  You can now use the parallel partitioning algorithms to compute a k-way
  partitioning independent of the number of processors that you use.

- The partitioning and ordering algorithms in ParMETIS now utilize various
  portions of the serial METIS library. As a result of this, the quality
  of the produced partitionings and orderings have been improved. 
  Remember to link your code with both libmetis.a and libparmetis.a


Changes in version 1.0

- Added partitioning routines that take advantage of coordinate information.
  These routines are based on space-filling curves and they are used to 
  quickly compute a initial distribution for PARKMETIS.
  A total of three routines have been added called PARGKMETIS, PARGRMETIS,
  and PARGMETIS

- Added a fill-reducing ordering routine that is based on multilevel nested 
  dissection. This is similar to the ordering routine in the serial Metis 
  with the difference that is directly computes and refines vertex 
  separators. The new routine is called PAROMETIS and returns the new ordering
  of the local nodes plus a vector describing the sizes of the various
  separators that form the elimination tree.  

- Changed the calling sequence again! I found it awkward to require that
  communicators and other scalar quantities being passed by reference.

- Fixed a number of memory leaks.



Changes in version 0.3

- Incorporated parallel multilevel diffusion algorithms for repartitioning
  adaptively refined meshes. Two routines have been added for this purpose:
  PARUAMETIS that performs undirected multilevel diffusion
  PARDAMETIS that performs directed multilevel diffusion

- Changed the names and calling sequences of the parallel partitioning
  and refinement algorithms. Now they are called PARKMETIS for the
  k-way partitioning and PARRMETIS for the k-way refinement.
  Also the calling sequence has been changed slightly to make ParMETIS
  Fortran callable.

- Added an additional option for selecting the algorithm for initial
  partitioning at the coarsest graph. Now you have the choice of selecting
  either a serial or a parallel algorithm. The parallel initial partitioning
  speeds up the algorithm especially for large number of processors.
  NOTE that the parallel initial partitioning works only for partitions that
  are power of two. If you want partitions that are not power of two you must
  use the old serial initial partitioning option.

- Fixed some bugs in the initial partitioning code.

- Made parallel k-way refinement more robust by randomly ordering the
  processors at each phase


Changes in version 0.2

- A complete reworking of the primary algorithms. The performance
  of the code has improved considerably. Over 30% on 128 processor
  Cray T3D. Improvement should be higher on machines with high
  latencies.

  Here are some performance numbers on T3D using Cray's MPI
  for 2 graphs, mdual (0.25M vertices) and mdual2 (1.0M vertices)

	       16PEs 	32PEs	64PEs	128PEs
  mdual		4.07	2.97	2.82	
  mdual2       15.02	8.89	6.12	5.75

- The quality of the produced partitions has been improved.
- Added options[2] to specify C or Fortran style numbering.




================================================
FILE: Install.txt
================================================

These are some preliminary instructions for the 4.0 release of ParMetis.

1. You need to have a C compiler that supports the C99 standard. 
   Gcc works just fine, but I have not tested it on many other architectures
   (any feedback/patches for different architectures are welcomed)
   
2. You need to have GNU make and CMake 2.8 (http://www.cmake.org/) installed.

3. Edit the file metis/include/metis.h and specify the width (32 or 64 bits) 
   of the elementary data type used in ParMetis (and METIS). This is controled 
   by the IDXTYPEWIDTH constant.

   For now, on a 32 bit architecture you can only specify a width of 32, 
   whereas for a 64 bit architecture you can specify a width of either 
   32 or 64 bits.


4. At the top of ParMetis' directory execute 'make' and follow the instructions.
   
      make



================================================
FILE: LICENSE
================================================
Copyright & License Notice
--------------------------

The ParMETIS package is copyrighted by the Regents of the 
University of Minnesota. It can be freely used for educational and 
research purposes by non-profit institutions and US government 
agencies only. Other organizations are allowed to use ParMETIS 
only for evaluation purposes, and any further uses will require prior 
approval. The software may not be sold or redistributed without prior 
approval. One may make copies of the software for their use provided 
that the copies, are not sold or distributed, are used under the same 
terms and conditions.

As unestablished research software, this code is provided on an 
``as is'' basis without warranty of any kind, either expressed or
implied. The downloading, or executing any part of this software
constitutes an implicit agreement to these terms. These terms and
conditions are subject to change at any time without prior notice.



================================================
FILE: Makefile
================================================
# Configuration options.
cc         = mpicc
gdb        = not-set
assert     = not-set
assert2    = not-set
debug      = not-set
openmp     = not-set
shared     = not-set
prefix     = ~/local
gklib_path = ~/local
metis_path = ~/local


# Basically proxies everything to the builddir cmake.

PKGNAME = parmetis-4.0.3

cputype = $(shell uname -m | sed "s/\\ /_/g")
systype = $(shell uname -s)

BUILDDIR = build/$(systype)-$(cputype)

# Process configuration options.
CONFIG_FLAGS = -DCMAKE_VERBOSE_MAKEFILE=1
ifneq ($(gklib_path), not-set)
    CONFIG_FLAGS += -DGKLIB_PATH=$(abspath $(gklib_path)) 
endif
ifneq ($(metis_path), not-set)
    CONFIG_FLAGS += -DMETIS_PATH=$(abspath $(metis_path))
endif
ifneq ($(prefix), not-set)
    CONFIG_FLAGS += -DCMAKE_INSTALL_PREFIX=$(prefix)
endif
ifneq ($(gdb), not-set)
    CONFIG_FLAGS += -DGDB=$(gdb)
endif
ifneq ($(assert), not-set)
    CONFIG_FLAGS += -DASSERT=$(assert)
endif
ifneq ($(assert2), not-set)
    CONFIG_FLAGS += -DASSERT2=$(assert2)
endif
ifneq ($(debug), not-set)
    CONFIG_FLAGS += -DDEBUG=$(debug)
endif
ifneq ($(openmp), not-set)
    CONFIG_FLAGS += -DOPENMP=$(openmp)
endif
ifneq ($(shared), not-set)
    CONFIG_FLAGS += -DSHARED=1
endif
ifneq ($(cc), not-set)
    CONFIG_FLAGS += -DCMAKE_C_COMPILER=$(cc)
endif

define run-config
mkdir -p $(BUILDDIR)
cd $(BUILDDIR) && cmake $(CURDIR) $(CONFIG_FLAGS)
endef

all clean install:
	@if [ ! -f $(BUILDDIR)/Makefile ]; then \
		more BUILD.txt; \
	else \
	  	make -C $(BUILDDIR) $@ $(MAKEFLAGS); \
	fi

uninstall:
	xargs rm < $(BUILDDIR)/install_manifest.txt

config: distclean
	$(run-config)

distclean:
	rm -rf $(BUILDDIR)

remake:
	find . -name CMakeLists.txt -exec touch {} ';'

dist:
	util/mkdist.sh $(PKGNAME)


.PHONY: config distclean dist all clean install uninstall remake


================================================
FILE: README.md
================================================
# ParMETIS 

ParMETIS is an MPI-based library for partitioning graphs, partitioning finite element meshes, 
and producing fill reducing orderings for sparse matrices. The algorithms implemented in 
ParMETIS are based on the multilevel recursive-bisection, multilevel k-way, and multi-constraint 
partitioning schemes developed in our lab.

##  Downloading ParMETIS

You can download ParMETIS by simply cloning it using the command:
```
git clone https://github.com/KarypisLab/ParMETIS.git
```

## Building the ParMETIS library

To build ParMETIS you can follow the instructions below:

### Dependencies

General dependencies for building ParMETIS are: gcc, cmake, build-essential, and an MPI library. 
In Ubuntu systems these can be obtained from the apt package manager (e.g., apt-get install cmake, mpich, etc) 

```
sudo apt-get install build-essential
sudo apt-get install cmake
```

In addition, you need to download and install
[GKlib](https://github.com/KarypisLab/GKlib) and 
[METIS](https://github.com/KarypisLab/METIS) by following the instructions there. 


### Building and installing ParMETIS  

ParMETIS is primarily configured by passing options to make config. For example:

```
make config cc=mpicc prefix=~/local
make install
```

will configure ParMETIS to be built using mpicc and then install the binaries, header files, and libraries at 

```
~/local/bin
~/local/include
~/local/lib
```

directories, respectively.

### Common configuration options are:

    cc=[compiler]     - The C compiler to use [default is determined by CMake]
    shared=1          - Build a shared library instead of a static one [off by default]
    prefix=[PATH]     - Set the installation prefix [~/local by default]
    gklib_path=[PATH] - Set the prefix path where GKlib has been installed. You can skip
                        this if GKlib's installation prefix is the same as that of ParMETIS.
    metis_path=[PATH] - Set the prefix path where METIS has been installed. You can skip
                        this if METIS' installation prefix is the same as that of ParMETIS.

### Advanced debugging related options:

    gdb=1           - Build with support for GDB [off by default]
    debug=1         - Enable debugging support [off by default]
    assert=1        - Enable asserts [off by default]
    assert2=1       - Enable very expensive asserts [off by default]

### Other make commands

    make uninstall
         Removes all files installed by 'make install'.

    make clean
         Removes all object files but retains the configuration options.

    make distclean
         Performs clean and completely removes the build directory.


### Definitions of supported data types

ParMETIS uses the same data types for integers and floating point numbers (32/64 bit
integers and single/double precision floating point numbers) as used when configuring
and building METIS.


## Copyright & License Notice
Copyright 1998-2020, Regents of the University of Minnesota




================================================
FILE: conf/check_thread_storage.c
================================================
extern __thread int x;

int main(int argc, char **argv) {
  return 0;
}


================================================
FILE: conf/gkbuild.cmake
================================================
# Helper modules.
include(CheckFunctionExists)
include(CheckIncludeFile)

# Setup options.
option(GDB "enable use of GDB" OFF)
option(ASSERT "turn asserts on" OFF)
option(ASSERT2 "additional assertions" OFF)
option(DEBUG "add debugging support" OFF)
option(GPROF "add gprof support" OFF)
option(OPENMP "enable OpenMP support" OFF)
option(PCRE "enable PCRE support" OFF)
option(GKREGEX "enable GKREGEX support" OFF)
option(GKRAND "enable GKRAND support" OFF)

# Add compiler flags.
if(MSVC)
  set(GK_COPTS "/Ox")
  set(GK_COPTIONS "-DWIN32 -DMSC -D_CRT_SECURE_NO_DEPRECATE -DUSE_GKREGEX")
elseif(MINGW)
  set(GK_COPTS "-DUSE_GKREGEX")
else()
  set(GK_COPTIONS "-DLINUX -D_FILE_OFFSET_BITS=64")
endif(MSVC)
if(CYGWIN)
  set(GK_COPTIONS "${GK_COPTIONS} -DCYGWIN")
endif(CYGWIN)
if(CMAKE_COMPILER_IS_GNUCC)
# GCC opts.
  set(GK_COPTIONS "${GK_COPTIONS} -std=c99 -fno-strict-aliasing")
# -march=native is not a valid flag on PPC:
if(CMAKE_SYSTEM_PROCESSOR MATCHES "power|ppc|powerpc|ppc64|powerpc64" OR (APPLE AND CMAKE_OSX_ARCHITECTURES MATCHES "ppc|ppc64"))
  set(GK_COPTIONS "${GK_COPTIONS} -mtune=native")
else()
  set(GK_COPTIONS "${GK_COPTIONS} -march=native")
endif()
  if(NOT MINGW)
      set(GK_COPTIONS "${GK_COPTIONS} -fPIC")
  endif(NOT MINGW)
# GCC warnings.
  set(GK_COPTIONS "${GK_COPTIONS} -Werror -Wall -pedantic -Wno-unused-function -Wno-unused-but-set-variable -Wno-unused-variable -Wno-unknown-pragmas -Wno-unused-label")
elseif(${CMAKE_C_COMPILER_ID} MATCHES "Sun")
# Sun insists on -xc99.
  set(GK_COPTIONS "${GK_COPTIONS} -xc99")
endif(CMAKE_COMPILER_IS_GNUCC)

if(${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
  set(GK_COPTIONS "${GK_COPTIONS} -xHost")
  #  set(GK_COPTIONS "${GK_COPTIONS} -fast")
endif()

# Add support for the Accelerate framework in OS X
if(APPLE)
  set(GK_COPTIONS "${GK_COPTIONS} -framework Accelerate")
endif(APPLE)

# Find OpenMP if it is requested.
if(OPENMP)
  include(FindOpenMP)
  if(OPENMP_FOUND)
    set(GK_COPTIONS "${GK_COPTIONS} -D__OPENMP__ ${OpenMP_C_FLAGS}")
  else()
    message(WARNING "OpenMP was requested but support was not found")
  endif(OPENMP_FOUND)
endif(OPENMP)


# Add various definitions.
if(GDB)
  set(GK_COPTS "${GK_COPTS} -g")
  set(GK_COPTIONS "${GK_COPTIONS} -Werror")
else()
  set(GK_COPTS "-O3")
endif(GDB)


if(DEBUG)
  set(GK_COPTS "-Og")
  set(GK_COPTIONS "${GK_COPTIONS} -DDEBUG")
endif(DEBUG)

if(GPROF)
  set(GK_COPTS "-pg")
endif(GPROF)

if(NOT ASSERT)
  set(GK_COPTIONS "${GK_COPTIONS} -DNDEBUG")
endif(NOT ASSERT)

if(NOT ASSERT2)
  set(GK_COPTIONS "${GK_COPTIONS} -DNDEBUG2")
endif(NOT ASSERT2)


# Add various options
if(PCRE)
  set(GK_COPTIONS "${GK_COPTIONS} -D__WITHPCRE__")
endif(PCRE)

if(GKREGEX)
  set(GK_COPTIONS "${GK_COPTIONS} -DUSE_GKREGEX")
endif(GKREGEX)

if(GKRAND)
  set(GK_COPTIONS "${GK_COPTIONS} -DUSE_GKRAND")
endif(GKRAND)


# Check for features.
check_include_file(execinfo.h HAVE_EXECINFO_H)
if(HAVE_EXECINFO_H)
  set(GK_COPTIONS "${GK_COPTIONS} -DHAVE_EXECINFO_H")
endif(HAVE_EXECINFO_H)

check_function_exists(getline HAVE_GETLINE)
if(HAVE_GETLINE)
  set(GK_COPTIONS "${GK_COPTIONS} -DHAVE_GETLINE")
endif(HAVE_GETLINE)


# Custom check for TLS.
if(MSVC)
  set(GK_COPTIONS "${GK_COPTIONS} -D__thread=__declspec(thread)")

  # This if checks if that value is cached or not.
  if("${HAVE_THREADLOCALSTORAGE}" MATCHES "^${HAVE_THREADLOCALSTORAGE}$")
    try_compile(HAVE_THREADLOCALSTORAGE
      ${CMAKE_BINARY_DIR}
      ${CMAKE_SOURCE_DIR}/conf/check_thread_storage.c)
    if(HAVE_THREADLOCALSTORAGE)
      message(STATUS "checking for thread-local storage - found")
    else()
      message(STATUS "checking for thread-local storage - not found")
    endif()
  endif()
  if(NOT HAVE_THREADLOCALSTORAGE)
    set(GK_COPTIONS "${GK_COPTIONS} -D__thread=")
  endif()
endif()

# Finally set the official C flags.
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${GK_COPTIONS} ${GK_COPTS}")



================================================
FILE: graphs/bricks.hex3d
================================================
  117649  3
       1      2501      2551        51         2      2502      2552        52
       2      2502      2552        52         3      2503      2553        53
       3      2503      2553        53         4      2504      2554        54
       4      2504      2554        54         5      2505      2555        55
       5      2505      2555        55         6      2506      2556        56
       6      2506      2556        56         7      2507      2557        57
       7      2507      2557        57         8      2508      2558        58
       8      2508      2558        58         9      2509      2559        59
       9      2509      2559        59        10      2510      2560        60
      10      2510      2560        60        11      2511      2561        61
      11      2511      2561        61        12      2512      2562        62
      12      2512      2562        62        13      2513      2563        63
      13      2513      2563        63        14      2514      2564        64
      14      2514      2564        64        15      2515      2565        65
      15      2515      2565        65        16      2516      2566        66
      16      2516      2566        66        17      2517      2567        67
      17      2517      2567        67        18      2518      2568        68
      18      2518      2568        68        19      2519      2569        69
      19      2519      2569        69        20      2520      2570        70
      20      2520      2570        70        21      2521      2571        71
      21      2521      2571        71        22      2522      2572        72
      22      2522      2572        72        23      2523      2573        73
      23      2523      2573        73        24      2524      2574        74
      24      2524      2574        74        25      2525      2575        75
      25      2525      2575        75        26      2526      2576        76
      26      2526      2576        76        27      2527      2577        77
      27      2527      2577        77        28      2528      2578        78
      28      2528      2578        78        29      2529      2579        79
      29      2529      2579        79        30      2530      2580        80
      30      2530      2580        80        31      2531      2581        81
      31      2531      2581        81        32      2532      2582        82
      32      2532      2582        82        33      2533      2583        83
      33      2533      2583        83        34      2534      2584        84
      34      2534      2584        84        35      2535      2585        85
      35      2535      2585        85        36      2536      2586        86
      36      2536      2586        86        37      2537      2587        87
      37      2537      2587        87        38      2538      2588        88
      38      2538      2588        88        39      2539      2589        89
      39      2539      2589        89        40      2540      2590        90
      40      2540      2590        90        41      2541      2591        91
      41      2541      2591        91        42      2542      2592        92
      42      2542      2592        92        43      2543      2593        93
      43      2543      2593        93        44      2544      2594        94
      44      2544      2594        94        45      2545      2595        95
      45      2545      2595        95        46      2546      2596        96
      46      2546      2596        96        47      2547      2597        97
      47      2547      2597        97        48      2548      2598        98
      48      2548      2598        98        49      2549      2599        99
      49      2549      2599        99        50      2550      2600       100
      51      2551      2601       101        52      2552      2602       102
      52      2552      2602       102        53      2553      2603       103
      53      2553      2603       103        54      2554      2604       104
      54      2554      2604       104        55      2555      2605       105
      55      2555      2605       105        56      2556      2606       106
      56      2556      2606       106        57      2557      2607       107
      57      2557      2607       107        58      2558      2608       108
      58      2558      2608       108        59      2559      2609       109
      59      2559      2609       109        60      2560      2610       110
      60      2560      2610       110        61      2561      2611       111
      61      2561      2611       111        62      2562      2612       112
      62      2562      2612       112        63      2563      2613       113
      63      2563      2613       113        64      2564      2614       114
      64      2564      2614       114        65      2565      2615       115
      65      2565      2615       115        66      2566      2616       116
      66      2566      2616       116        67      2567      2617       117
      67      2567      2617       117        68      2568      2618       118
      68      2568      2618       118        69      2569      2619       119
      69      2569      2619       119        70      2570      2620       120
      70      2570      2620       120        71      2571      2621       121
      71      2571      2621       121        72      2572      2622       122
      72      2572      2622       122        73      2573      2623       123
      73      2573      2623       123        74      2574      2624       124
      74      2574      2624       124        75      2575      2625       125
      75      2575      2625       125        76      2576      2626       126
      76      2576      2626       126        77      2577      2627       127
      77      2577      2627       127        78      2578      2628       128
      78      2578      2628       128        79      2579      2629       129
      79      2579      2629       129        80      2580      2630       130
      80      2580      2630       130        81      2581      2631       131
      81      2581      2631       131        82      2582      2632       132
      82      2582      2632       132        83      2583      2633       133
      83      2583      2633       133        84      2584      2634       134
      84      2584      2634       134        85      2585      2635       135
      85      2585      2635       135        86      2586      2636       136
      86      2586      2636       136        87      2587      2637       137
      87      2587      2637       137        88      2588      2638       138
      88      2588      2638       138        89      2589      2639       139
      89      2589      2639       139        90      2590      2640       140
      90      2590      2640       140        91      2591      2641       141
      91      2591      2641       141        92      2592      2642       142
      92      2592      2642       142        93      2593      2643       143
      93      2593      2643       143        94      2594      2644       144
      94      2594      2644       144        95      2595      2645       145
      95      2595      2645       145        96      2596      2646       146
      96      2596      2646       146        97      2597      2647       147
      97      2597      2647       147        98      2598      2648       148
      98      2598      2648       148        99      2599      2649       149
      99      2599      2649       149       100      2600      2650       150
     101      2601      2651       151       102      2602      2652       152
     102      2602      2652       152       103      2603      2653       153
     103      2603      2653       153       104      2604      2654       154
     104      2604      2654       154       105      2605      2655       155
     105      2605      2655       155       106      2606      2656       156
     106      2606      2656       156       107      2607      2657       157
     107      2607      2657       157       108      2608      2658       158
     108      2608      2658       158       109      2609      2659       159
     109      2609      2659       159       110      2610      2660       160
     110      2610      2660       160       111      2611      2661       161
     111      2611      2661       161       112      2612      2662       162
     112      2612      2662       162       113      2613      2663       163
     113      2613      2663       163       114      2614      2664       164
     114      2614      2664       164       115      2615      2665       165
     115      2615      2665       165       116      2616      2666       166
     116      2616      2666       166       117      2617      2667       167
     117      2617      2667       167       118      2618      2668       168
     118      2618      2668       168       119      2619      2669       169
     119      2619      2669       169       120      2620      2670       170
     120      2620      2670       170       121      2621      2671       171
     121      2621      2671       171       122      2622      2672       172
     122      2622      2672       172       123      2623      2673       173
     123      2623      2673       173       124      2624      2674       174
     124      2624      2674       174       125      2625      2675       175
     125      2625      2675       175       126      2626      2676       176
     126      2626      2676       176       127      2627      2677       177
     127      2627      2677       177       128      2628      2678       178
     128      2628      2678       178       129      2629      2679       179
     129      2629      2679       179       130      2630      2680       180
     130      2630      2680       180       131      2631      2681       181
     131      2631      2681       181       132      2632      2682       182
     132      2632      2682       182       133      2633      2683       183
     133      2633      2683       183       134      2634      2684       184
     134      2634      2684       184       135      2635      2685       185
     135      2635      2685       185       136      2636      2686       186
     136      2636      2686       186       137      2637      2687       187
     137      2637      2687       187       138      2638      2688       188
     138      2638      2688       188       139      2639      2689       189
     139      2639      2689       189       140      2640      2690       190
     140      2640      2690       190       141      2641      2691       191
     141      2641      2691       191       142      2642      2692       192
     142      2642      2692       192       143      2643      2693       193
     143      2643      2693       193       144      2644      2694       194
     144      2644      2694       194       145      2645      2695       195
     145      2645      2695       195       146      2646      2696       196
     146      2646      2696       196       147      2647      2697       197
     147      2647      2697       197       148      2648      2698       198
     148      2648      2698       198       149      2649      2699       199
     149      2649      2699       199       150      2650      2700       200
     151      2651      2701       201       152      2652      2702       202
     152      2652      2702       202       153      2653      2703       203
     153      2653      2703       203       154      2654      2704       204
     154      2654      2704       204       155      2655      2705       205
     155      2655      2705       205       156      2656      2706       206
     156      2656      2706       206       157      2657      2707       207
     157      2657      2707       207       158      2658      2708       208
     158      2658      2708       208       159      2659      2709       209
     159      2659      2709       209       160      2660      2710       210
     160      2660      2710       210       161      2661      2711       211
     161      2661      2711       211       162      2662      2712       212
     162      2662      2712       212       163      2663      2713       213
     163      2663      2713       213       164      2664      2714       214
     164      2664      2714       214       165      2665      2715       215
     165      2665      2715       215       166      2666      2716       216
     166      2666      2716       216       167      2667      2717       217
     167      2667      2717       217       168      2668      2718       218
     168      2668      2718       218       169      2669      2719       219
     169      2669      2719       219       170      2670      2720       220
     170      2670      2720       220       171      2671      2721       221
     171      2671      2721       221       172      2672      2722       222
     172      2672      2722       222       173      2673      2723       223
     173      2673      2723       223       174      2674      2724       224
     174      2674      2724       224       175      2675      2725       225
     175      2675      2725       225       176      2676      2726       226
     176      2676      2726       226       177      2677      2727       227
     177      2677      2727       227       178      2678      2728       228
     178      2678      2728       228       179      2679      2729       229
     179      2679      2729       229       180      2680      2730       230
     180      2680      2730       230       181      2681      2731       231
     181      2681      2731       231       182      2682      2732       232
     182      2682      2732       232       183      2683      2733       233
     183      2683      2733       233       184      2684      2734       234
     184      2684      2734       234       185      2685      2735       235
     185      2685      2735       235       186      2686      2736       236
     186      2686      2736       236       187      2687      2737       237
     187      2687      2737       237       188      2688      2738       238
     188      2688      2738       238       189      2689      2739       239
     189      2689      2739       239       190      2690      2740       240
     190      2690      2740       240       191      2691      2741       241
     191      2691      2741       241       192      2692      2742       242
     192      2692      2742       242       193      2693      2743       243
     193      2693      2743       243       194      2694      2744       244
     194      2694      2744       244       195      2695      2745       245
     195      2695      2745       245       196      2696      2746       246
     196      2696      2746       246       197      2697      2747       247
     197      2697      2747       247       198      2698      2748       248
     198      2698      2748       248       199      2699      2749       249
     199      2699      2749       249       200      2700      2750       250
     201      2701      2751       251       202      2702      2752       252
     202      2702      2752       252       203      2703      2753       253
     203      2703      2753       253       204      2704      2754       254
     204      2704      2754       254       205      2705      2755       255
     205      2705      2755       255       206      2706      2756       256
     206      2706      2756       256       207      2707      2757       257
     207      2707      2757       257       208      2708      2758       258
     208      2708      2758       258       209      2709      2759       259
     209      2709      2759       259       210      2710      2760       260
     210      2710      2760       260       211      2711      2761       261
     211      2711      2761       261       212      2712      2762       262
     212      2712      2762       262       213      2713      2763       263
     213      2713      2763       263       214      2714      2764       264
     214      2714      2764       264       215      2715      2765       265
     215      2715      2765       265       216      2716      2766       266
     216      2716      2766       266       217      2717      2767       267
     217      2717      2767       267       218      2718      2768       268
     218      2718      2768       268       219      2719      2769       269
     219      2719      2769       269       220      2720      2770       270
     220      2720      2770       270       221      2721      2771       271
     221      2721      2771       271       222      2722      2772       272
     222      2722      2772       272       223      2723      2773       273
     223      2723      2773       273       224      2724      2774       274
     224      2724      2774       274       225      2725      2775       275
     225      2725      2775       275       226      2726      2776       276
     226      2726      2776       276       227      2727      2777       277
     227      2727      2777       277       228      2728      2778       278
     228      2728      2778       278       229      2729      2779       279
     229      2729      2779       279       230      2730      2780       280
     230      2730      2780       280       231      2731      2781       281
     231      2731      2781       281       232      2732      2782       282
     232      2732      2782       282       233      2733      2783       283
     233      2733      2783       283       234      2734      2784       284
     234      2734      2784       284       235      2735      2785       285
     235      2735      2785       285       236      2736      2786       286
     236      2736      2786       286       237      2737      2787       287
     237      2737      2787       287       238      2738      2788       288
     238      2738      2788       288       239      2739      2789       289
     239      2739      2789       289       240      2740      2790       290
     240      2740      2790       290       241      2741      2791       291
     241      2741      2791       291       242      2742      2792       292
     242      2742      2792       292       243      2743      2793       293
     243      2743      2793       293       244      2744      2794       294
     244      2744      2794       294       245      2745      2795       295
     245      2745      2795       295       246      2746      2796       296
     246      2746      2796       296       247      2747      2797       297
     247      2747      2797       297       248      2748      2798       298
     248      2748      2798       298       249      2749      2799       299
     249      2749      2799       299       250      2750      2800       300
     251      2751      2801       301       252      2752      2802       302
     252      2752      2802       302       253      2753      2803       303
     253      2753      2803       303       254      2754      2804       304
     254      2754      2804       304       255      2755      2805       305
     255      2755      2805       305       256      2756      2806       306
     256      2756      2806       306       257      2757      2807       307
     257      2757      2807       307       258      2758      2808       308
     258      2758      2808       308       259      2759      2809       309
     259      2759      2809       309       260      2760      2810       310
     260      2760      2810       310       261      2761      2811       311
     261      2761      2811       311       262      2762      2812       312
     262      2762      2812       312       263      2763      2813       313
     263      2763      2813       313       264      2764      2814       314
     264      2764      2814       314       265      2765      2815       315
     265      2765      2815       315       266      2766      2816       316
     266      2766      2816       316       267      2767      2817       317
     267      2767      2817       317       268      2768      2818       318
     268      2768      2818       318       269      2769      2819       319
     269      2769      2819       319       270      2770      2820       320
     270      2770      2820       320       271      2771      2821       321
     271      2771      2821       321       272      2772      2822       322
     272      2772      2822       322       273      2773      2823       323
     273      2773      2823       323       274      2774      2824       324
     274      2774      2824       324       275      2775      2825       325
     275      2775      2825       325       276      2776      2826       326
     276      2776      2826       326       277      2777      2827       327
     277      2777      2827       327       278      2778      2828       328
     278      2778      2828       328       279      2779      2829       329
     279      2779      2829       329       280      2780      2830       330
     280      2780      2830       330       281      2781      2831       331
     281      2781      2831       331       282      2782      2832       332
     282      2782      2832       332       283      2783      2833       333
     283      2783      2833       333       284      2784      2834       334
     284      2784      2834       334       285      2785      2835       335
     285      2785      2835       335       286      2786      2836       336
     286      2786      2836       336       287      2787      2837       337
     287      2787      2837       337       288      2788      2838       338
     288      2788      2838       338       289      2789      2839       339
     289      2789      2839       339       290      2790      2840       340
     290      2790      2840       340       291      2791      2841       341
     291      2791      2841       341       292      2792      2842       342
     292      2792      2842       342       293      2793      2843       343
     293      2793      2843       343       294      2794      2844       344
     294      2794      2844       344       295      2795      2845       345
     295      2795      2845       345       296      2796      2846       346
     296      2796      2846       346       297      2797      2847       347
     297      2797      2847       347       298      2798      2848       348
     298      2798      2848       348       299      2799      2849       349
     299      2799      2849       349       300      2800      2850       350
     301      2801      2851       351       302      2802      2852       352
     302      2802      2852       352       303      2803      2853       353
     303      2803      2853       353       304      2804      2854       354
     304      2804      2854       354       305      2805      2855       355
     305      2805      2855       355       306      2806      2856       356
     306      2806      2856       356       307      2807      2857       357
     307      2807      2857       357       308      2808      2858       358
     308      2808      2858       358       309      2809      2859       359
     309      2809      2859       359       310      2810      2860       360
     310      2810      2860       360       311      2811      2861       361
     311      2811      2861       361       312      2812      2862       362
     312      2812      2862       362       313      2813      2863       363
     313      2813      2863       363       314      2814      2864       364
     314      2814      2864       364       315      2815      2865       365
     315      2815      2865       365       316      2816      2866       366
     316      2816      2866       366       317      2817      2867       367
     317      2817      2867       367       318      2818      2868       368
     318      2818      2868       368       319      2819      2869       369
     319      2819      2869       369       320      2820      2870       370
     320      2820      2870       370       321      2821      2871       371
     321      2821      2871       371       322      2822      2872       372
     322      2822      2872       372       323      2823      2873       373
     323      2823      2873       373       324      2824      2874       374
     324      2824      2874       374       325      2825      2875       375
     325      2825      2875       375       326      2826      2876       376
     326      2826      2876       376       327      2827      2877       377
     327      2827      2877       377       328      2828      2878       378
     328      2828      2878       378       329      2829      2879       379
     329      2829      2879       379       330      2830      2880       380
     330      2830      2880       380       331      2831      2881       381
     331      2831      2881       381       332      2832      2882       382
     332      2832      2882       382       333      2833      2883       383
     333      2833      2883       383       334      2834      2884       384
     334      2834      2884       384       335      2835      2885       385
     335      2835      2885       385       336      2836      2886       386
     336      2836      2886       386       337      2837      2887       387
     337      2837      2887       387       338      2838      2888       388
     338      2838      2888       388       339      2839      2889       389
     339      2839      2889       389       340      2840      2890       390
     340      2840      2890       390       341      2841      2891       391
     341      2841      2891       391       342      2842      2892       392
     342      2842      2892       392       343      2843      2893       393
     343      2843      2893       393       344      2844      2894       394
     344      2844      2894       394       345      2845      2895       395
     345      2845      2895       395       346      2846      2896       396
     346      2846      2896       396       347      2847      2897       397
     347      2847      2897       397       348      2848      2898       398
     348      2848      2898       398       349      2849      2899       399
     349      2849      2899       399       350      2850      2900       400
     351      2851      2901       401       352      2852      2902       402
     352      2852      2902       402       353      2853      2903       403
     353      2853      2903       403       354      2854      2904       404
     354      2854      2904       404       355      2855      2905       405
     355      2855      2905       405       356      2856      2906       406
     356      2856      2906       406       357      2857      2907       407
     357      2857      2907       407       358      2858      2908       408
     358      2858      2908       408       359      2859      2909       409
     359      2859      2909       409       360      2860      2910       410
     360      2860      2910       410       361      2861      2911       411
     361      2861      2911       411       362      2862      2912       412
     362      2862      2912       412       363      2863      2913       413
     363      2863      2913       413       364      2864      2914       414
     364      2864      2914       414       365      2865      2915       415
     365      2865      2915       415       366      2866      2916       416
     366      2866      2916       416       367      2867      2917       417
     367      2867      2917       417       368      2868      2918       418
     368      2868      2918       418       369      2869      2919       419
     369      2869      2919       419       370      2870      2920       420
     370      2870      2920       420       371      2871      2921       421
     371      2871      2921       421       372      2872      2922       422
     372      2872      2922       422       373      2873      2923       423
     373      2873      2923       423       374      2874      2924       424
     374      2874      2924       424       375      2875      2925       425
     375      2875      2925       425       376      2876      2926       426
     376      2876      2926       426       377      2877      2927       427
     377      2877      2927       427       378      2878      2928       428
     378      2878      2928       428       379      2879      2929       429
     379      2879      2929       429       380      2880      2930       430
     380      2880      2930       430       381      2881      2931       431
     381      2881      2931       431       382      2882      2932       432
     382      2882      2932       432       383      2883      2933       433
     383      2883      2933       433       384      2884      2934       434
     384      2884      2934       434       385      2885      2935       435
     385      2885      2935       435       386      2886      2936       436
     386      2886      2936       436       387      2887      2937       437
     387      2887      2937       437       388      2888      2938       438
     388      2888      2938       438       389      2889      2939       439
     389      2889      2939       439       390      2890      2940       440
     390      2890      2940       440       391      2891      2941       441
     391      2891      2941       441       392      2892      2942       442
     392      2892      2942       442       393      2893      2943       443
     393      2893      2943       443       394      2894      2944       444
     394      2894      2944       444       395      2895      2945       445
     395      2895      2945       445       396      2896      2946       446
     396      2896      2946       446       397      2897      2947       447
     397      2897      2947       447       398      2898      2948       448
     398      2898      2948       448       399      2899      2949       449
     399      2899      2949       449       400      2900      2950       450
     401      2901      2951       451       402      2902      2952       452
     402      2902      2952       452       403      2903      2953       453
     403      2903      2953       453       404      2904      2954       454
     404      2904      2954       454       405      2905      2955       455
     405      2905      2955       455       406      2906      2956       456
     406      2906      2956       456       407      2907      2957       457
     407      2907      2957       457       408      2908      2958       458
     408      2908      2958       458       409      2909      2959       459
     409      2909      2959       459       410      2910      2960       460
     410      2910      2960       460       411      2911      2961       461
     411      2911      2961       461       412      2912      2962       462
     412      2912      2962       462       413      2913      2963       463
     413      2913      2963       463       414      2914      2964       464
     414      2914      2964       464       415      2915      2965       465
     415      2915      2965       465       416      2916      2966       466
     416      2916      2966       466       417      2917      2967       467
     417      2917      2967       467       418      2918      2968       468
     418      2918      2968       468       419      2919      2969       469
     419      2919      2969       469       420      2920      2970       470
     420      2920      2970       470       421      2921      2971       471
     421      2921      2971       471       422      2922      2972       472
     422      2922      2972       472       423      2923      2973       473
     423      2923      2973       473       424      2924      2974       474
     424      2924      2974       474       425      2925      2975       475
     425      2925      2975       475       426      2926      2976       476
     426      2926      2976       476       427      2927      2977       477
     427      2927      2977       477       428      2928      2978       478
     428      2928      2978       478       429      2929      2979       479
     429      2929      2979       479       430      2930      2980       480
     430      2930      2980       480       431      2931      2981       481
     431      2931      2981       481       432      2932      2982       482
     432      2932      2982       482       433      2933      2983       483
     433      2933      2983       483       434      2934      2984       484
     434      2934      2984       484       435      2935      2985       485
     435      2935      2985       485       436      2936      2986       486
     436      2936      2986       486       437      2937      2987       487
     437      2937      2987       487       438      2938      2988       488
     438      2938      2988       488       439      2939      2989       489
     439      2939      2989       489       440      2940      2990       490
     440      2940      2990       490       441      2941      2991       491
     441      2941      2991       491       442      2942      2992       492
     442      2942      2992       492       443      2943      2993       493
     443      2943      2993       493       444      2944      2994       494
     444      2944      2994       494       445      2945      2995       495
     445      2945      2995       495       446      2946      2996       496
     446      2946      2996       496       447      2947      2997       497
     447      2947      2997       497       448      2948      2998       498
     448      2948      2998       498       449      2949      2999       499
     449      2949      2999       499       450      2950      3000       500
     451      2951      3001       501       452      2952      3002       502
     452      2952      3002       502       453      2953      3003       503
     453      2953      3003       503       454      2954      3004       504
     454      2954      3004       504       455      2955      3005       505
     455      2955      3005       505       456      2956      3006       506
     456      2956      3006       506       457      2957      3007       507
     457      2957      3007       507       458      2958      3008       508
     458      2958      3008       508       459      2959      3009       509
     459      2959      3009       509       460      2960      3010       510
     460      2960      3010       510       461      2961      3011       511
     461      2961      3011       511       462      2962      3012       512
     462      2962      3012       512       463      2963      3013       513
     463      2963      3013       513       464      2964      3014       514
     464      2964      3014       514       465      2965      3015       515
     465      2965      3015       515       466      2966      3016       516
     466      2966      3016       516       467      2967      3017       517
     467      2967      3017       517       468      2968      3018       518
     468      2968      3018       518       469      2969      3019       519
     469      2969      3019       519       470      2970      3020       520
     470      2970      3020       520       471      2971      3021       521
     471      2971      3021       521       472      2972      3022       522
     472      2972      3022       522       473      2973      3023       523
     473      2973      3023       523       474      2974      3024       524
     474      2974      3024       524       475      2975      3025       525
     475      2975      3025       525       476      2976      3026       526
     476      2976      3026       526       477      2977      3027       527
     477      2977      3027       527       478      2978      3028       528
     478      2978      3028       528       479      2979      3029       529
     479      2979      3029       529       480      2980      3030       530
     480      2980      3030       530       481      2981      3031       531
     481      2981      3031       531       482      2982      3032       532
     482      2982      3032       532       483      2983      3033       533
     483      2983      3033       533       484      2984      3034       534
     484      2984      3034       534       485      2985      3035       535
     485      2985      3035       535       486      2986      3036       536
     486      2986      3036       536       487      2987      3037       537
     487      2987      3037       537       488      2988      3038       538
     488      2988      3038       538       489      2989      3039       539
     489      2989      3039       539       490      2990      3040       540
     490      2990      3040       540       491      2991      3041       541
     491      2991      3041       541       492      2992      3042       542
     492      2992      3042       542       493      2993      3043       543
     493      2993      3043       543       494      2994      3044       544
     494      2994      3044       544       495      2995      3045       545
     495      2995      3045       545       496      2996      3046       546
     496      2996      3046       546       497      2997      3047       547
     497      2997      3047       547       498      2998      3048       548
     498      2998      3048       548       499      2999      3049       549
     499      2999      3049       549       500      3000      3050       550
     501      3001      3051       551       502      3002      3052       552
     502      3002      3052       552       503      3003      3053       553
     503      3003      3053       553       504      3004      3054       554
     504      3004      3054       554       505      3005      3055       555
     505      3005      3055       555       506      3006      3056       556
     506      3006      3056       556       507      3007      3057       557
     507      3007      3057       557       508      3008      3058       558
     508      3008      3058       558       509      3009      3059       559
     509      3009      3059       559       510      3010      3060       560
     510      3010      3060       560       511      3011      3061       561
     511      3011      3061       561       512      3012      3062       562
     512      3012      3062       562       513      3013      3063       563
     513      3013      3063       563       514      3014      3064       564
     514      3014      3064       564       515      3015      3065       565
     515      3015      3065       565       516      3016      3066       566
     516      3016      3066       566       517      3017      3067       567
     517      3017      3067       567       518      3018      3068       568
     518      3018      3068       568       519      3019      3069       569
     519      3019      3069       569       520      3020      3070       570
     520      3020      3070       570       521      3021      3071       571
     521      3021      3071       571       522      3022      3072       572
     522      3022      3072       572       523      3023      3073       573
     523      3023      3073       573       524      3024      3074       574
     524      3024      3074       574       525      3025      3075       575
     525      3025      3075       575       526      3026      3076       576
     526      3026      3076       576       527      3027      3077       577
     527      3027      3077       577       528      3028      3078       578
     528      3028      3078       578       529      3029      3079       579
     529      3029      3079       579       530      3030      3080       580
     530      3030      3080       580       531      3031      3081       581
     531      3031      3081       581       532      3032      3082       582
     532      3032      3082       582       533      3033      3083       583
     533      3033      3083       583       534      3034      3084       584
     534      3034      3084       584       535      3035      3085       585
     535      3035      3085       585       536      3036      3086       586
     536      3036      3086       586       537      3037      3087       587
     537      3037      3087       587       538      3038      3088       588
     538      3038      3088       588       539      3039      3089       589
     539      3039      3089       589       540      3040      3090       590
     540      3040      3090       590       541      3041      3091       591
     541      3041      3091       591       542      3042      3092       592
     542      3042      3092       592       543      3043      3093       593
     543      3043      3093       593       544      3044      3094       594
     544      3044      3094       594       545      3045      3095       595
     545      3045      3095       595       546      3046      3096       596
     546      3046      3096       596       547      3047      3097       597
     547      3047      3097       597       548      3048      3098       598
     548      3048      3098       598       549      3049      3099       599
     549      3049      3099       599       550      3050      3100       600
     551      3051      3101       601       552      3052      3102       602
     552      3052      3102       602       553      3053      3103       603
     553      3053      3103       603       554      3054      3104       604
     554      3054      3104       604       555      3055      3105       605
     555      3055      3105       605       556      3056      3106       606
     556      3056      3106       606       557      3057      3107       607
     557      3057      3107       607       558      3058      3108       608
     558      3058      3108       608       559      3059      3109       609
     559      3059      3109       609       560      3060      3110       610
     560      3060      3110       610       561      3061      3111       611
     561      3061      3111       611       562      3062      3112       612
     562      3062      3112       612       563      3063      3113       613
     563      3063      3113       613       564      3064      3114       614
     564      3064      3114       614       565      3065      3115       615
     565      3065      3115       615       566      3066      3116       616
     566      3066      3116       616       567      3067      3117       617
     567      3067      3117       617       568      3068      3118       618
     568      3068      3118       618       569      3069      3119       619
     569      3069      3119       619       570      3070      3120       620
     570      3070      3120       620       571      3071      3121       621
     571      3071      3121       621       572      3072      3122       622
     572      3072      3122       622       573      3073      3123       623
     573      3073      3123       623       574      3074      3124       624
     574      3074      3124       624       575      3075      3125       625
     575      3075      3125       625       576      3076      3126       626
     576      3076      3126       626       577      3077      3127       627
     577      3077      3127       627       578      3078      3128       628
     578      3078      3128       628       579      3079      3129       629
     579      3079      3129       629       580      3080      3130       630
     580      3080      3130       630       581      3081      3131       631
     581      3081      3131       631       582      3082      3132       632
     582      3082      3132       632       583      3083      3133       633
     583      3083      3133       633       584      3084      3134       634
     584      3084      3134       634       585      3085      3135       635
     585      3085      3135       635       586      3086      3136       636
     586      3086      3136       636       587      3087      3137       637
     587      3087      3137       637       588      3088      3138       638
     588      3088      3138       638       589      3089      3139       639
     589      3089      3139       639       590      3090      3140       640
     590      3090      3140       640       591      3091      3141       641
     591      3091      3141       641       592      3092      3142       642
     592      3092      3142       642       593      3093      3143       643
     593      3093      3143       643       594      3094      3144       644
     594      3094      3144       644       595      3095      3145       645
     595      3095      3145       645       596      3096      3146       646
     596      3096      3146       646       597      3097      3147       647
     597      3097      3147       647       598      3098      3148       648
     598      3098      3148       648       599      3099      3149       649
     599      3099      3149       649       600      3100      3150       650
     601      3101      3151       651       602      3102      3152       652
     602      3102      3152       652       603      3103      3153       653
     603      3103      3153       653       604      3104      3154       654
     604      3104      3154       654       605      3105      3155       655
     605      3105      3155       655       606      3106      3156       656
     606      3106      3156       656       607      3107      3157       657
     607      3107      3157       657       608      3108      3158       658
     608      3108      3158       658       609      3109      3159       659
     609      3109      3159       659       610      3110      3160       660
     610      3110      3160       660       611      3111      3161       661
     611      3111      3161       661       612      3112      3162       662
     612      3112      3162       662       613      3113      3163       663
     613      3113      3163       663       614      3114      3164       664
     614      3114      3164       664       615      3115      3165       665
     615      3115      3165       665       616      3116      3166       666
     616      3116      3166       666       617      3117      3167       667
     617      3117      3167       667       618      3118      3168       668
     618      3118      3168       668       619      3119      3169       669
     619      3119      3169       669       620      3120      3170       670
     620      3120      3170       670       621      3121      3171       671
     621      3121      3171       671       622      3122      3172       672
     622      3122      3172       672       623      3123      3173       673
     623      3123      3173       673       624      3124      3174       674
     624      3124      3174       674       625      3125      3175       675
     625      3125      3175       675       626      3126      3176       676
     626      3126      3176       676       627      3127      3177       677
     627      3127      3177       677       628      3128      3178       678
     628      3128      3178       678       629      3129      3179       679
     629      3129      3179       679       630      3130      3180       680
     630      3130      3180       680       631      3131      3181       681
     631      3131      3181       681       632      3132      3182       682
     632      3132      3182       682       633      3133      3183       683
     633      3133      3183       683       634      3134      3184       684
     634      3134      3184       684       635      3135      3185       685
     635      3135      3185       685       636      3136      3186       686
     636      3136      3186       686       637      3137      3187       687
     637      3137      3187       687       638      3138      3188       688
     638      3138      3188       688       639      3139      3189       689
     639      3139      3189       689       640      3140      3190       690
     640      3140      3190       690       641      3141      3191       691
     641      3141      3191       691       642      3142      3192       692
     642      3142      3192       692       643      3143      3193       693
     643      3143      3193       693       644      3144      3194       694
     644      3144      3194       694       645      3145      3195       695
     645      3145      3195       695       646      3146      3196       696
     646      3146      3196       696       647      3147      3197       697
     647      3147      3197       697       648      3148      3198       698
     648      3148      3198       698       649      3149      3199       699
     649      3149      3199       699       650      3150      3200       700
     651      3151      3201       701       652      3152      3202       702
     652      3152      3202       702       653      3153      3203       703
     653      3153      3203       703       654      3154      3204       704
     654      3154      3204       704       655      3155      3205       705
     655      3155      3205       705       656      3156      3206       706
     656      3156      3206       706       657      3157      3207       707
     657      3157      3207       707       658      3158      3208       708
     658      3158      3208       708       659      3159      3209       709
     659      3159      3209       709       660      3160      3210       710
     660      3160      3210       710       661      3161      3211       711
     661      3161      3211       711       662      3162      3212       712
     662      3162      3212       712       663      3163      3213       713
     663      3163      3213       713       664      3164      3214       714
     664      3164      3214       714       665      3165      3215       715
     665      3165      3215       715       666      3166      3216       716
     666      3166      3216       716       667      3167      3217       717
     667      3167      3217       717       668      3168      3218       718
     668      3168      3218       718       669      3169      3219       719
     669      3169      3219       719       670      3170      3220       720
     670      3170      3220       720       671      3171      3221       721
     671      3171      3221       721       672      3172      3222       722
     672      3172      3222       722       673      3173      3223       723
     673      3173      3223       723       674      3174      3224       724
     674      3174      3224       724       675      3175      3225       725
     675      3175      3225       725       676      3176      3226       726
     676      3176      3226       726       677      3177      3227       727
     677      3177      3227       727       678      3178      3228       728
     678      3178      3228       728       679      3179      3229       729
     679      3179      3229       729       680      3180      3230       730
     680      3180      3230       730       681      3181      3231       731
     681      3181      3231       731       682      3182      3232       732
     682      3182      3232       732       683      3183      3233       733
     683      3183      3233       733       684      3184      3234       734
     684      3184      3234       734       685      3185      3235       735
     685      3185      3235       735       686      3186      3236       736
     686      3186      3236       736       687      3187      3237       737
     687      3187      3237       737       688      3188      3238       738
     688      3188      3238       738       689      3189      3239       739
     689      3189      3239       739       690      3190      3240       740
     690      3190      3240       740       691      3191      3241       741
     691      3191      3241       741       692      3192      3242       742
     692      3192      3242       742       693      3193      3243       743
     693      3193      3243       743       694      3194      3244       744
     694      3194      3244       744       695      3195      3245       745
     695      3195      3245       745       696      3196      3246       746
     696      3196      3246       746       697      3197      3247       747
     697      3197      3247       747       698      3198      3248       748
     698      3198      3248       748       699      3199      3249       749
     699      3199      3249       749       700      3200      3250       750
     701      3201      3251       751       702      3202      3252       752
     702      3202      3252       752       703      3203      3253       753
     703      3203      3253       753       704      3204      3254       754
     704      3204      3254       754       705      3205      3255       755
     705      3205      3255       755       706      3206      3256       756
     706      3206      3256       756       707      3207      3257       757
     707      3207      3257       757       708      3208      3258       758
     708      3208      3258       758       709      3209      3259       759
     709      3209      3259       759       710      3210      3260       760
     710      3210      3260       760       711      3211      3261       761
     711      3211      3261       761       712      3212      3262       762
     712      3212      3262       762       713      3213      3263       763
     713      3213      3263       763       714      3214      3264       764
     714      3214      3264       764       715      3215      3265       765
     715      3215      3265       765       716      3216      3266       766
     716      3216      3266       766       717      3217      3267       767
     717      3217      3267       767       718      3218      3268       768
     718      3218      3268       768       719      3219      3269       769
     719      3219      3269       769       720      3220      3270       770
     720      3220      3270       770       721      3221      3271       771
     721      3221      3271       771       722      3222      3272       772
     722      3222      3272       772       723      3223      3273       773
     723      3223      3273       773       724      3224      3274       774
     724      3224      3274       774       725      3225      3275       775
     725      3225      3275       775       726      3226      3276       776
     726      3226      3276       776       727      3227      3277       777
     727      3227      3277       777       728      3228      3278       778
     728      3228      3278       778       729      3229      3279       779
     729      3229      3279       779       730      3230      3280       780
     730      3230      3280       780       731      3231      3281       781
     731      3231      3281       781       732      3232      3282       782
     732      3232      3282       782       733      3233      3283       783
     733      3233      3283       783       734      3234      3284       784
     734      3234      3284       784       735      3235      3285       785
     735      3235      3285       785       736      3236      3286       786
     736      3236      3286       786       737      3237      3287       787
     737      3237      3287       787       738      3238      3288       788
     738      3238      3288       788       739      3239      3289       789
     739      3239      3289       789       740      3240      3290       790
     740      3240      3290       790       741      3241      3291       791
     741      3241      3291       791       742      3242      3292       792
     742      3242      3292       792       743      3243      3293       793
     743      3243      3293       793       744      3244      3294       794
     744      3244      3294       794       745      3245      3295       795
     745      3245      3295       795       746      3246      3296       796
     746      3246      3296       796       747      3247      3297       797
     747      3247      3297       797       748      3248      3298       798
     748      3248      3298       798       749      3249      3299       799
     749      3249      3299       799       750      3250      3300       800
     751      3251      3301       801       752      3252      3302       802
     752      3252      3302       802       753      3253      3303       803
     753      3253      3303       803       754      3254      3304       804
     754      3254      3304       804       755      3255      3305       805
     755      3255      3305       805       756      3256      3306       806
     756      3256      3306       806       757      3257      3307       807
     757      3257      3307       807       758      3258      3308       808
     758      3258      3308       808       759      3259      3309       809
     759      3259      3309       809       760      3260      3310       810
     760      3260      3310       810       761      3261      3311       811
     761      3261      3311       811       762      3262      3312       812
     762      3262      3312       812       763      3263      3313       813
     763      3263      3313       813       764      3264      3314       814
     764      3264      3314       814       765      3265      3315       815
     765      3265      3315       815       766      3266      3316       816
     766      3266      3316       816       767      3267      3317       817
     767      3267      3317       817       768      3268      3318       818
     768      3268      3318       818       769      3269      3319       819
     769      3269      3319       819       770      3270      3320       820
     770      3270      3320       820       771      3271      3321       821
     771      3271      3321       821       772      3272      3322       822
     772      3272      3322       822       773      3273      3323       823
     773      3273      3323       823       774      3274      3324       824
     774      3274      3324       824       775      3275      3325       825
     775      3275      3325       825       776      3276      3326       826
     776      3276      3326       826       777      3277      3327       827
     777      3277      3327       827       778      3278      3328       828
     778      3278      3328       828       779      3279      3329       829
     779      3279      3329       829       780      3280      3330       830
     780      3280      3330       830       781      3281      3331       831
     781      3281      3331       831       782      3282      3332       832
     782      3282      3332       832       783      3283      3333       833
     783      3283      3333       833       784      3284      3334       834
     784      3284      3334       834       785      3285      3335       835
     785      3285      3335       835       786      3286      3336       836
     786      3286      3336       836       787      3287      3337       837
     787      3287      3337       837       788      3288      3338       838
     788      3288      3338       838       789      3289      3339       839
     789      3289      3339       839       790      3290      3340       840
     790      3290      3340       840       791      3291      3341       841
     791      3291      3341       841       792      3292      3342       842
     792      3292      3342       842       793      3293      3343       843
     793      3293      3343       843       794      3294      3344       844
     794      3294      3344       844       795      3295      3345       845
     795      3295      3345       845       796      3296      3346       846
     796      3296      3346       846       797      3297      3347       847
     797      3297      3347       847       798      3298      3348       848
     798      3298      3348       848       799      3299      3349       849
     799      3299      3349       849       800      3300      3350       850
     801      3301      3351       851       802      3302      3352       852
     802      3302      3352       852       803      3303      3353       853
     803      3303      3353       853       804      3304      3354       854
     804      3304      3354       854       805      3305      3355       855
     805      3305      3355       855       806      3306      3356       856
     806      3306      3356       856       807      3307      3357       857
     807      3307      3357       857       808      3308      3358       858
     808      3308      3358       858       809      3309      3359       859
     809      3309      3359       859       810      3310      3360       860
     810      3310      3360       860       811      3311      3361       861
     811      3311      3361       861       812      3312      3362       862
     812      3312      3362       862       813      3313      3363       863
     813      3313      3363       863       814      3314      3364       864
     814      3314      3364       864       815      3315      3365       865
     815      3315      3365       865       816      3316      3366       866
     816      3316      3366       866       817      3317      3367       867
     817      3317      3367       867       818      3318      3368       868
     818      3318      3368       868       819      3319      3369       869
     819      3319      3369       869       820      3320      3370       870
     820      3320      3370       870       821      3321      3371       871
     821      3321      3371       871       822      3322      3372       872
     822      3322      3372       872       823      3323      3373       873
     823      3323      3373       873       824      3324      3374       874
     824      3324      3374       874       825      3325      3375       875
     825      3325      3375       875       826      3326      3376       876
     826      3326      3376       876       827      3327      3377       877
     827      3327      3377       877       828      3328      3378       878
     828      3328      3378       878       829      3329      3379       879
     829      3329      3379       879       830      3330      3380       880
     830      3330      3380       880       831      3331      3381       881
     831      3331      3381       881       832      3332      3382       882
     832      3332      3382       882       833      3333      3383       883
     833      3333      3383       883       834      3334      3384       884
     834      3334      3384       884       835      3335      3385       885
     835      3335      3385       885       836      3336      3386       886
     836      3336      3386       886       837      3337      3387       887
     837      3337      3387       887       838      3338      3388       888
     838      3338      3388       888       839      3339      3389       889
     839      3339      3389       889       840      3340      3390       890
     840      3340      3390       890       841      3341      3391       891
     841      3341      3391       891       842      3342      3392       892
     842      3342      3392       892       843      3343      3393       893
     843      3343      3393       893       844      3344      3394       894
     844      3344      3394       894       845      3345      3395       895
     845      3345      3395       895       846      3346      3396       896
     846      3346      3396       896       847      3347      3397       897
     847      3347      3397       897       848      3348      3398       898
     848      3348      3398       898       849      3349      3399       899
     849      3349      3399       899       850      3350      3400       900
     851      3351      3401       901       852      3352      3402       902
     852      3352      3402       902       853      3353      3403       903
     853      3353      3403       903       854      3354      3404       904
     854      3354      3404       904       855      3355      3405       905
     855      3355      3405       905       856      3356      3406       906
     856      3356      3406       906       857      3357      3407       907
     857      3357      3407       907       858      3358      3408       908
     858      3358      3408       908       859      3359      3409       909
     859      3359      3409       909       860      3360      3410       910
     860      3360      3410       910       861      3361      3411       911
     861      3361      3411       911       862      3362      3412       912
     862      3362      3412       912       863      3363      3413       913
     863      3363      3413       913       864      3364      3414       914
     864      3364      3414       914       865      3365      3415       915
     865      3365      3415       915       866      3366      3416       916
     866      3366      3416       916       867      3367      3417       917
     867      3367      3417       917       868      3368      3418       918
     868      3368      3418       918       869      3369      3419       919
     869      3369      3419       919       870      3370      3420       920
     870      3370      3420       920       871      3371      3421       921
     871      3371      3421       921       872      3372      3422       922
     872      3372      3422       922       873      3373      3423       923
     873      3373      3423       923       874      3374      3424       924
     874      3374      3424       924       875      3375      3425       925
     875      3375      3425       925       876      3376      3426       926
     876      3376      3426       926       877      3377      3427       927
     877      3377      3427       927       878      3378      3428       928
     878      3378      3428       928       879      3379      3429       929
     879      3379      3429       929       880      3380      3430       930
     880      3380      3430       930       881      3381      3431       931
     881      3381      3431       931       882      3382      3432       932
     882      3382      3432       932       883      3383      3433       933
     883      3383      3433       933       884      3384      3434       934
     884      3384      3434       934       885      3385      3435       935
     885      3385      3435       935       886      3386      3436       936
     886      3386      3436       936       887      3387      3437       937
     887      3387      3437       937       888      3388      3438       938
     888      3388      3438       938       889      3389      3439       939
     889      3389      3439       939       890      3390      3440       940
     890      3390      3440       940       891      3391      3441       941
     891      3391      3441       941       892      3392      3442       942
     892      3392      3442       942       893      3393      3443       943
     893      3393      3443       943       894      3394      3444       944
     894      3394      3444       944       895      3395      3445       945
     895      3395      3445       945       896      3396      3446       946
     896      3396      3446       946       897      3397      3447       947
     897      3397      3447       947       898      3398      3448       948
     898      3398      3448       948       899      3399      3449       949
     899      3399      3449       949       900      3400      3450       950
     901      3401      3451       951       902      3402      3452       952
     902      3402      3452       952       903      3403      3453       953
     903      3403      3453       953       904      3404      3454       954
     904      3404      3454       954       905      3405      3455       955
     905      3405      3455       955       906      3406      3456       956
     906      3406      3456       956       907      3407      3457       957
     907      3407      3457       957       908      3408      3458       958
     908      3408      3458       958       909      3409      3459       959
     909      3409      3459       959       910      3410      3460       960
     910      3410      3460       960       911      3411      3461       961
     911      3411      3461       961       912      3412      3462       962
     912      3412      3462       962       913      3413      3463       963
     913      3413      3463       963       914      3414      3464       964
     914      3414      3464       964       915      3415      3465       965
     915      3415      3465       965       916      3416      3466       966
     916      3416      3466       966       917      3417      3467       967
     917      3417      3467       967       918      3418      3468       968
     918      3418      3468       968       919      3419      3469       969
     919      3419      3469       969       920      3420      3470       970
     920      3420      3470       970       921      3421      3471       971
     921      3421      3471       971       922      3422      3472       972
     922      3422      3472       972       923      3423      3473       973
     923      3423      3473       973       924      3424      3474       974
     924      3424      3474       974       925      3425      3475       975
     925      3425      3475       975       926      3426      3476       976
     926      3426      3476       976       927      3427      3477       977
     927      3427      3477       977       928      3428      3478       978
     928      3428      3478       978       929      3429      3479       979
     929      3429      3479       979       930      3430      3480       980
     930      3430      3480       980       931      3431      3481       981
     931      3431      3481       981       932      3432      3482       982
     932      3432      3482       982       933      3433      3483       983
     933      3433      3483       983       934      3434      3484       984
     934      3434      3484       984       935      3435      3485       985
     935      3435      3485       985       936      3436      3486       986
     936      3436      3486       986       937      3437      3487       987
     937      3437      3487       987       938      3438      3488       988
     938      3438      3488       988       939      3439      3489       989
     939      3439      3489       989       940      3440      3490       990
     940      3440      3490       990       941      3441      3491       991
     941      3441      3491       991       942      3442      3492       992
     942      3442      3492       992       943      3443      3493       993
     943      3443      3493       993       944      3444      3494       994
     944      3444      3494       994       945      3445      3495       995
     945      3445      3495       995       946      3446      3496       996
     946      3446      3496       996       947      3447      3497       997
     947      3447      3497       997       948      3448      3498       998
     948      3448      3498       998       949      3449      3499       999
     949      3449      3499       999       950      3450      3500      1000
     951      3451      3501      1001       952      3452      3502      1002
     952      3452      3502      1002       953      3453      3503      1003
     953      3453      3503      1003       954      3454      3504      1004
     954      3454      3504      1004       955      3455      3505      1005
     955      3455      3505      1005       956      3456      3506      1006
     956      3456      3506      1006       957      3457      3507      1007
     957      3457      3507      1007       958      3458      3508      1008
     958      3458      3508      1008       959      3459      3509      1009
     959      3459      3509      1009       960      3460      3510      1010
     960      3460      3510      1010       961      3461      3511      1011
     961      3461      3511      1011       962      3462      3512      1012
     962      3462      3512      1012       963      3463      3513      1013
     963      3463      3513      1013       964      3464      3514      1014
     964      3464      3514      1014       965      3465      3515      1015
     965      3465      3515      1015       966      3466      3516      1016
     966      3466      3516      1016       967      3467      3517      1017
     967      3467      3517      1017       968      3468      3518      1018
     968      3468      3518      1018       969      3469      3519      1019
     969      3469      3519      1019       970      3470      3520      1020
     970      3470      3520      1020       971      3471      3521      1021
     971      3471      3521      1021       972      3472      3522      1022
     972      3472      3522      1022       973      3473      3523      1023
     973      3473      3523      1023       974      3474      3524      1024
     974      3474      3524      1024       975      3475      3525      1025
     975      3475      3525      1025       976      3476      3526      1026
     976      3476      3526      1026       977      3477      3527      1027
     977      3477      3527      1027       978      3478      3528      1028
     978      3478      3528      1028       979      3479      3529      1029
     979      3479      3529      1029       980      3480      3530      1030
     980      3480      3530      1030       981      3481      3531      1031
     981      3481      3531      1031       982      3482      3532      1032
     982      3482      3532      1032       983      3483      3533      1033
     983      3483      3533      1033       984      3484      3534      1034
     984      3484      3534      1034       985      3485      3535      1035
     985      3485      3535      1035       986      3486      3536      1036
     986      3486      3536      1036       987      3487      3537      1037
     987      3487      3537      1037       988      3488      3538      1038
     988      3488      3538      1038       989      3489      3539      1039
     989      3489      3539      1039       990      3490      3540      1040
     990      3490      3540      1040       991      3491      3541      1041
     991      3491      3541      1041       992      3492      3542      1042
     992      3492      3542      1042       993      3493      3543      1043
     993      3493      3543      1043       994      3494      3544      1044
     994      3494      3544      1044       995      3495      3545      1045
     995      3495      3545      1045       996      3496      3546      1046
     996      3496      3546      1046       997      3497      3547      1047
     997      3497      3547      1047       998      3498      3548      1048
     998      3498      3548      1048       999      3499      3549      1049
     999      3499      3549      1049      1000      3500      3550      1050
    1001      3501      3551      1051      1002      3502      3552      1052
    1002      3502      3552      1052      1003      3503      3553      1053
    1003      3503      3553      1053      1004      3504      3554      1054
    1004      3504      3554      1054      1005      3505      3555      1055
    1005      3505      3555      1055      1006      3506      3556      1056
    1006      3506      3556      1056      1007      3507      3557      1057
    1007      3507      3557      1057      1008      3508      3558      1058
    1008      3508      3558      1058      1009      3509      3559      1059
    1009      3509      3559      1059      1010      3510      3560      1060
    1010      3510      3560      1060      1011      3511      3561      1061
    1011      3511      3561      1061      1012      3512      3562      1062
    1012      3512      3562      1062      1013      3513      3563      1063
    1013      3513      3563      1063      1014      3514      3564      1064
    1014      3514      3564      1064      1015      3515      3565      1065
    1015      3515      3565      1065      1016      3516      3566      1066
    1016      3516      3566      1066      1017      3517      3567      1067
    1017      3517      3567      1067      1018      3518      3568      1068
    1018      3518      3568      1068      1019      3519      3569      1069
    1019      3519      3569      1069      1020      3520      3570      1070
    1020      3520      3570      1070      1021      3521      3571      1071
    1021      3521      3571      1071      1022      3522      3572      1072
    1022      3522      3572      1072      1023      3523      3573      1073
    1023      3523      3573      1073      1024      3524      3574      1074
    1024      3524      3574      1074      1025      3525      3575      1075
    1025      3525      3575      1075      1026      3526      3576      1076
    1026      3526      3576      1076      1027      3527      3577      1077
    1027      3527      3577      1077      1028      3528      3578      1078
    1028      3528      3578      1078      1029      3529      3579      1079
    1029      3529      3579      1079      1030      3530      3580      1080
    1030      3530      3580      1080      1031      3531      3581      1081
    1031      3531      3581      1081      1032      3532      3582      1082
    1032      3532      3582      1082      1033      3533      3583      1083
    1033      3533      3583      1083      1034      3534      3584      1084
    1034      3534      3584      1084      1035      3535      3585      1085
    1035      3535      3585      1085      1036      3536      3586      1086
    1036      3536      3586      1086      1037      3537      3587      1087
    1037      3537      3587      1087      1038      3538      3588      1088
    1038      3538      3588      1088      1039      3539      3589      1089
    1039      3539      3589      1089      1040      3540      3590      1090
    1040      3540      3590      1090      1041      3541      3591      1091
    1041      3541      3591      1091      1042      3542      3592      1092
    1042      3542      3592      1092      1043      3543      3593      1093
    1043      3543      3593      1093      1044      3544      3594      1094
    1044      3544      3594      1094      1045      3545      3595      1095
    1045      3545      3595      1095      1046      3546      3596      1096
    1046      3546      3596      1096      1047      3547      3597      1097
    1047      3547      3597      1097      1048      3548      3598      1098
    1048      3548      3598      1098      1049      3549      3599      1099
    1049      3549      3599      1099      1050      3550      3600      1100
    1051      3551      3601      1101      1052      3552      3602      1102
    1052      3552      3602      1102      1053      3553      3603      1103
    1053      3553      3603      1103      1054      3554      3604      1104
    1054      3554      3604      1104      1055      3555      3605      1105
    1055      3555      3605      1105      1056      3556      3606      1106
    1056      3556      3606      1106      1057      3557      3607      1107
    1057      3557      3607      1107      1058      3558      3608      1108
    1058      3558      3608      1108      1059      3559      3609      1109
    1059      3559      3609      1109      1060      3560      3610      1110
    1060      3560      3610      1110      1061      3561      3611      1111
    1061      3561      3611      1111      1062      3562      3612      1112
    1062      3562      3612      1112      1063      3563      3613      1113
    1063      3563      3613      1113      1064      3564      3614      1114
    1064      3564      3614      1114      1065      3565      3615      1115
    1065      3565      3615      1115      1066      3566      3616      1116
    1066      3566      3616      1116      1067      3567      3617      1117
    1067      3567      3617      1117      1068      3568      3618      1118
    1068      3568      3618      1118      1069      3569      3619      1119
    1069      3569      3619      1119      1070      3570      3620      1120
    1070      3570      3620      1120      1071      3571      3621      1121
    1071      3571      3621      1121      1072      3572      3622      1122
    1072      3572      3622      1122      1073      3573      3623      1123
    1073      3573      3623      1123      1074      3574      3624      1124
    1074      3574      3624      1124      1075      3575      3625      1125
    1075      3575      3625      1125      1076      3576      3626      1126
    1076      3576      3626      1126      1077      3577      3627      1127
    1077      3577      3627      1127      1078      3578      3628      1128
    1078      3578      3628      1128      1079      3579      3629      1129
    1079      3579      3629      1129      1080      3580      3630      1130
    1080      3580      3630      1130      1081      3581      3631      1131
    1081      3581      3631      1131      1082      3582      3632      1132
    1082      3582      3632      1132      1083      3583      3633      1133
    1083      3583      3633      1133      1084      3584      3634      1134
    1084      3584      3634      1134      1085      3585      3635      1135
    1085      3585      3635      1135      1086      3586      3636      1136
    1086      3586      3636      1136      1087      3587      3637      1137
    1087      3587      3637      1137      1088      3588      3638      1138
    1088      3588      3638      1138      1089      3589      3639      1139
    1089      3589      3639      1139      1090      3590      3640      1140
    1090      3590      3640      1140      1091      3591      3641      1141
    1091      3591      3641      1141      1092      3592      3642      1142
    1092      3592      3642      1142      1093      3593      3643      1143
    1093      3593      3643      1143      1094      3594      3644      1144
    1094      3594      3644      1144      1095      3595      3645      1145
    1095      3595      3645      1145      1096      3596      3646      1146
    1096      3596      3646      1146      1097      3597      3647      1147
    1097      3597      3647      1147      1098      3598      3648      1148
    1098      3598      3648      1148      1099      3599      3649      1149
    1099      3599      3649      1149      1100      3600      3650      1150
    1101      3601      3651      1151      1102      3602      3652      1152
    1102      3602      3652      1152      1103      3603      3653      1153
    1103      3603      3653      1153      1104      3604      3654      1154
    1104      3604      3654      1154      1105      3605      3655      1155
    1105      3605      3655      1155      1106      3606      3656      1156
    1106      3606      3656      1156      1107      3607      3657      1157
    1107      3607      3657      1157      1108      3608      3658      1158
    1108      3608      3658      1158      1109      3609      3659      1159
    1109      3609      3659      1159      1110      3610      3660      1160
    1110      3610      3660      1160      1111      3611      3661      1161
    1111      3611      3661      1161      1112      3612      3662      1162
    1112      3612      3662      1162      1113      3613      3663      1163
    1113      3613      3663      1163      1114      3614      3664      1164
    1114      3614      3664      1164      1115      3615      3665      1165
    1115      3615      3665      1165      1116      3616      3666      1166
    1116      3616      3666      1166      1117      3617      3667      1167
    1117      3617      3667      1167      1118      3618      3668      1168
    1118      3618      3668      1168      1119      3619      3669      1169
    1119      3619      3669      1169      1120      3620      3670      1170
    1120      3620      3670      1170      1121      3621      3671      1171
    1121      3621      3671      1171      1122      3622      3672      1172
    1122      3622      3672      1172      1123      3623      3673      1173
    1123      3623      3673      1173      1124      3624      3674      1174
    1124      3624      3674      1174      1125      3625      3675      1175
    1125      3625      3675      1175      1126      3626      3676      1176
    1126      3626      3676      1176      1127      3627      3677      1177
    1127      3627      3677      1177      1128      3628      3678      1178
    1128      3628      3678      1178      1129      3629      3679      1179
    1129      3629      3679      1179      1130      3630      3680      1180
    1130      3630      3680      1180      1131      3631      3681      1181
    1131      3631      3681      1181      1132      3632      3682      1182
    1132      3632      3682      1182      1133      3633      3683      1183
    1133      3633      3683      1183      1134      3634      3684      1184
    1134      3634      3684      1184      1135      3635      3685      1185
    1135      3635      3685      1185      1136      3636      3686      1186
    1136      3636      3686      1186      1137      3637      3687      1187
    1137      3637      3687      1187      1138      3638      3688      1188
    1138      3638      3688      1188      1139      3639      3689      1189
    1139      3639      3689      1189      1140      3640      3690      1190
    1140      3640      3690      1190      1141      3641      3691      1191
    1141      3641      3691      1191      1142      3642      3692      1192
    1142      3642      3692      1192      1143      3643      3693      1193
    1143      3643      3693      1193      1144      3644      3694      1194
    1144      3644      3694      1194      1145      3645      3695      1195
    1145      3645      3695      1195      1146      3646      3696      1196
    1146      3646      3696      1196      1147      3647      3697      1197
    1147      3647      3697      1197      1148      3648      3698      1198
    1148      3648      3698      1198      1149      3649      3699      1199
    1149      3649      3699      1199      1150      3650      3700      1200
    1151      3651      3701      1201      1152      3652      3702      1202
    1152      3652      3702      1202      1153      3653      3703      1203
    1153      3653      3703      1203      1154      3654      3704      1204
    1154      3654      3704      1204      1155      3655      3705      1205
    1155      3655      3705      1205      1156      3656      3706      1206
    1156      3656      3706      1206      1157      3657      3707      1207
    1157      3657      3707      1207      1158      3658      3708      1208
    1158      3658      3708      1208      1159      3659      3709      1209
    1159      3659      3709      1209      1160      3660      3710      1210
    1160      3660      3710      1210      1161      3661      3711      1211
    1161      3661      3711      1211      1162      3662      3712      1212
    1162      3662      3712      1212      1163      3663      3713      1213
    1163      3663      3713      1213      1164      3664      3714      1214
    1164      3664      3714      1214      1165      3665      3715      1215
    1165      3665      3715      1215      1166      3666      3716      1216
    1166      3666      3716      1216      1167      3667      3717      1217
    1167      3667      3717      1217      1168      3668      3718      1218
    1168      3668      3718      1218      1169      3669      3719      1219
    1169      3669      3719      1219      1170      3670      3720      1220
    1170      3670      3720      1220      1171      3671      3721      1221
    1171      3671      3721      1221      1172      3672      3722      1222
    1172      3672      3722      1222      1173      3673      3723      1223
    1173      3673      3723      1223      1174      3674      3724      1224
    1174      3674      3724      1224      1175      3675      3725      1225
    1175      3675      3725      1225      1176      3676      3726      1226
    1176      3676      3726      1226      1177      3677      3727      1227
    1177      3677      3727      1227      1178      3678      3728      1228
    1178      3678      3728      1228      1179      3679      3729      1229
    1179      3679      3729      1229      1180      3680      3730      1230
    1180      3680      3730      1230      1181      3681      3731      1231
    1181      3681      3731      1231      1182      3682      3732      1232
    1182      3682      3732      1232      1183      3683      3733      1233
    1183      3683      3733      1233      1184      3684      3734      1234
    1184      3684      3734      1234      1185      3685      3735      1235
    1185      3685      3735      1235      1186      3686      3736      1236
    1186      3686      3736      1236      1187      3687      3737      1237
    1187      3687      3737      1237      1188      3688      3738      1238
    1188      3688      3738      1238      1189      3689      3739      1239
    1189      3689      3739      1239      1190      3690      3740      1240
    1190      3690      3740      1240      1191      3691      3741      1241
    1191      3691      3741      1241      1192      3692      3742      1242
    1192      3692      3742      1242      1193      3693      3743      1243
    1193      3693      3743      1243      1194      3694      3744      1244
    1194      3694      3744      1244      1195      3695      3745      1245
    1195      3695      3745      1245      1196      3696      3746      1246
    1196      3696      3746      1246      1197      3697      3747      1247
    1197      3697      3747      1247      1198      3698      3748      1248
    1198      3698      3748      1248      1199      3699      3749      1249
    1199      3699      3749      1249      1200      3700      3750      1250
    1201      3701      3751      1251      1202      3702      3752      1252
    1202      3702      3752      1252      1203      3703      3753      1253
    1203      3703      3753      1253      1204      3704      3754      1254
    1204      3704      3754      1254      1205      3705      3755      1255
    1205      3705      3755      1255      1206      3706      3756      1256
    1206      3706      3756      1256      1207      3707      3757      1257
    1207      3707      3757      1257      1208      3708      3758      1258
    1208      3708      3758      1258      1209      3709      3759      1259
    1209      3709      3759      1259      1210      3710      3760      1260
    1210      3710      3760      1260      1211      3711      3761      1261
    1211      3711      3761      1261      1212      3712      3762      1262
    1212      3712      3762      1262      1213      3713      3763      1263
    1213      3713      3763      1263      1214      3714      3764      1264
    1214      3714      3764      1264      1215      3715      3765      1265
    1215      3715      3765      1265      1216      3716      3766      1266
    1216      3716      3766      1266      1217      3717      3767      1267
    1217      3717      3767      1267      1218      3718      3768      1268
    1218      3718      3768      1268      1219      3719      3769      1269
    1219      3719      3769      1269      1220      3720      3770      1270
    1220      3720      3770      1270      1221      3721      3771      1271
    1221      3721      3771      1271      1222      3722      3772      1272
    1222      3722      3772      1272      1223      3723      3773      1273
    1223      3723      3773      1273      1224      3724      3774      1274
    1224      3724      3774      1274      1225      3725      3775      1275
    1225      3725      3775      1275      1226      3726      3776      1276
    1226      3726      3776      1276      1227      3727      3777      1277
    1227      3727      3777      1277      1228      3728      3778      1278
    1228      3728      3778      1278      1229      3729      3779      1279
    1229      3729      3779      1279      1230      3730      3780      1280
    1230      3730      3780      1280      1231      3731      3781      1281
    1231      3731      3781      1281      1232      3732      3782      1282
    1232      3732      3782      1282      1233      3733      3783      1283
    1233      3733      3783      1283      1234      3734      3784      1284
    1234      3734      3784      1284      1235      3735      3785      1285
    1235      3735      3785      1285      1236      3736      3786      1286
    1236      3736      3786      1286      1237      3737      3787      1287
    1237      3737      3787      1287      1238      3738      3788      1288
    1238      3738      3788      1288      1239      3739      3789      1289
    1239      3739      3789      1289      1240      3740      3790      1290
    1240      3740      3790      1290      1241      3741      3791      1291
    1241      3741      3791      1291      1242      3742      3792      1292
    1242      3742      3792      1292      1243      3743      3793      1293
    1243      3743      3793      1293      1244      3744      3794      1294
    1244      3744      3794      1294      1245      3745      3795      1295
    1245      3745      3795      1295      1246      3746      3796      1296
    1246      3746      3796      1296      1247      3747      3797      1297
    1247      3747      3797      1297      1248      3748      3798      1298
    1248      3748      3798      1298      1249      3749      3799      1299
    1249      3749      3799      1299      1250      3750      3800      1300
    1251      3751      3801      1301      1252      3752      3802      1302
    1252      3752      3802      1302      1253      3753      3803      1303
    1253      3753      3803      1303      1254      3754      3804      1304
    1254      3754      3804      1304      1255      3755      3805      1305
    1255      3755      3805      1305      1256      3756      3806      1306
    1256      3756      3806      1306      1257      3757      3807      1307
    1257      3757      3807      1307      1258      3758      3808      1308
    1258      3758      3808      1308      1259      3759      3809      1309
    1259      3759      3809      1309      1260      3760      3810      1310
    1260      3760      3810      1310      1261      3761      3811      1311
    1261      3761      3811      1311      1262      3762      3812      1312
    1262      3762      3812      1312      1263      3763      3813      1313
    1263      3763      3813      1313      1264      3764      3814      1314
    1264      3764      3814      1314      1265      3765      3815      1315
    1265      3765      3815      1315      1266      3766      3816      1316
    1266      3766      3816      1316      1267      3767      3817      1317
    1267      3767      3817      1317      1268      3768      3818      1318
    1268      3768      3818      1318      1269      3769      3819      1319
    1269      3769      3819      1319      1270      3770      3820      1320
    1270      3770      3820      1320      1271      3771      3821      1321
    1271      3771      3821      1321      1272      3772      3822      1322
    1272      3772      3822      1322      1273      3773      3823      1323
    1273      3773      3823      1323      1274      3774      3824      1324
    1274      3774      3824      1324      1275      3775      3825      1325
    1275      3775      3825      1325      1276      3776      3826      1326
    1276      3776      3826      1326      1277      3777      3827      1327
    1277      3777      3827      1327      1278      3778      3828      1328
    1278      3778      3828      1328      1279      3779      3829      1329
    1279      3779      3829      1329      1280      3780      3830      1330
    1280      3780      3830      1330      1281      3781      3831      1331
    1281      3781      3831      1331      1282      3782      3832      1332
    1282      3782      3832      1332      1283      3783      3833      1333
    1283      3783      3833      1333      1284      3784      3834      1334
    1284      3784      3834      1334      1285      3785      3835      1335
    1285      3785      3835      1335      1286      3786      3836      1336
    1286      3786      3836      1336      1287      3787      3837      1337
    1287      3787      3837      1337      1288      3788      3838      1338
    1288      3788      3838      1338      1289      3789      3839      1339
    1289      3789      3839      1339      1290      3790      3840      1340
    1290      3790      3840      1340      1291      3791      3841      1341
    1291      3791      3841      1341      1292      3792      3842      1342
    1292      3792      3842      1342      1293      3793      3843      1343
    1293      3793      3843      1343      1294      3794      3844      1344
    1294      3794      3844      1344      1295      3795      3845      1345
    1295      3795      3845      1345      1296      3796      3846      1346
    1296      3796      3846      1346      1297      3797      3847      1347
    1297      3797      3847      1347      1298      3798      3848      1348
    1298      3798      3848      1348      1299      3799      3849      1349
    1299      3799      3849      1349      1300      3800      3850      1350
    1301      3801      3851      1351      1302      3802      3852      1352
    1302      3802      3852      1352      1303      3803      3853      1353
    1303      3803      3853      1353      1304      3804      3854      1354
    1304      3804      3854      1354      1305      3805      3855      1355
    1305      3805      3855      1355      1306      3806      3856      1356
    1306      3806      3856      1356      1307      3807      3857      1357
    1307      3807      3857      1357      1308      3808      3858      1358
    1308      3808      3858      1358      1309      3809      3859      1359
    1309      3809      3859      1359      1310      3810      3860      1360
    1310      3810      3860      1360      1311      3811      3861      1361
    1311      3811      3861      1361      1312      3812      3862      1362
    1312      3812      3862      1362      1313      3813      3863      1363
    1313      3813      3863      1363      1314      3814      3864      1364
    1314      3814      3864      1364      1315      3815      3865      1365
    1315      3815      3865      1365      1316      3816      3866      1366
    1316      3816      3866      1366      1317      3817      3867      1367
    1317      3817      3867      1367      1318      3818      3868      1368
    1318      3818      3868      1368      1319      3819      3869      1369
    1319      3819      3869      1369      1320      3820      3870      1370
    1320      3820      3870      1370      1321      3821      3871      1371
    1321      3821      3871      1371      1322      3822      3872      1372
    1322      3822      3872      1372      1323      3823      3873      1373
    1323      3823      3873      1373      1324      3824      3874      1374
    1324      3824      3874      1374      1325      3825      3875      1375
    1325      3825      3875      1375      1326      3826      3876      1376
    1326      3826      3876      1376      1327      3827      3877      1377
    1327      3827      3877      1377      1328      3828      3878      1378
    1328      3828      3878      1378      1329      3829      3879      1379
    1329      3829      3879      1379      1330      3830      3880      1380
    1330      3830      3880      1380      1331      3831      3881      1381
    1331      3831      3881      1381      1332      3832      3882      1382
    1332      3832      3882      1382      1333      3833      3883      1383
    1333      3833      3883      1383      1334      3834      3884      1384
    1334      3834      3884      1384      1335      3835      3885      1385
    1335      3835      3885      1385      1336      3836      3886      1386
    1336      3836      3886      1386      1337      3837      3887      1387
    1337      3837      3887      1387      1338      3838      3888      1388
    1338      3838      3888      1388      1339      3839      3889      1389
    1339      3839      3889      1389      1340      3840      3890      1390
    1340      3840      3890      1390      1341      3841      3891      1391
    1341      3841      3891      1391      1342      3842      3892      1392
    1342      3842      3892      1392      1343      3843      3893      1393
    1343      3843      3893      1393      1344      3844      3894      1394
    1344      3844      3894      1394      1345      3845      3895      1395
    1345      3845      3895      1395      1346      3846      3896      1396
    1346      3846      3896      1396      1347      3847      3897      1397
    1347      3847      3897      1397      1348      3848      3898      1398
    1348      3848      3898      1398      1349      3849      3899      1399
    1349      3849      3899      1399      1350      3850      3900      1400
    1351      3851      3901      1401      1352      3852      3902      1402
    1352      3852      3902      1402      1353      3853      3903      1403
    1353      3853      3903      1403      1354      3854      3904      1404
    1354      3854      3904      1404      1355      3855      3905      1405
    1355      3855      3905      1405      1356      3856      3906      1406
    1356      3856      3906      1406      1357      3857      3907      1407
    1357      3857      3907      1407      1358      3858      3908      1408
    1358      3858      3908      1408      1359      3859      3909      1409
    1359      3859      3909      1409      1360      3860      3910      1410
    1360      3860      3910      1410      1361      3861      3911      1411
    1361      3861      3911      1411      1362      3862      3912      1412
    1362      3862      3912      1412      1363      3863      3913      1413
    1363      3863      3913      1413      1364      3864      3914      1414
    1364      3864      3914      1414      1365      3865      3915      1415
    1365      3865      3915      1415      1366      3866      3916      1416
    1366      3866      3916      1416      1367      3867      3917      1417
    1367      3867      3917      1417      1368      3868      3918      1418
    1368      3868      3918      1418      1369      3869      3919      1419
    1369      3869      3919      1419      1370      3870      3920      1420
    1370      3870      3920      1420      1371      3871      3921      1421
    1371      3871      3921      1421      1372      3872      3922      1422
    1372      3872      3922      1422      1373      3873      3923      1423
    1373      3873      3923      1423      1374      3874      3924      1424
    1374      3874      3924      1424      1375      3875      3925      1425
    1375      3875      3925      1425      1376      3876      3926      1426
    1376      3876      3926      1426      1377      3877      3927      1427
    1377      3877      3927      1427      1378      3878      3928      1428
    1378      3878      3928      1428      1379      3879      3929      1429
    1379      3879      3929      1429      1380      3880      3930      1430
    1380      3880      3930      1430      1381      3881      3931      1431
    1381      3881      3931      1431      1382      3882      3932      1432
    1382      3882      3932      1432      1383      3883      3933      1433
    1383      3883      3933      1433      1384      3884      3934      1434
    1384      3884      3934      1434      1385      3885      3935      1435
    1385      3885      3935      1435      1386      3886      3936      1436
    1386      3886      3936      1436      1387      3887      3937      1437
    1387      3887      3937      1437      1388      3888      3938      1438
    1388      3888      3938      1438      1389      3889      3939      1439
    1389      3889      3939      1439      1390      3890      3940      1440
    1390      3890      3940      1440      1391      3891      3941      1441
    1391      3891      3941      1441      1392      3892      3942      1442
    1392      3892      3942      1442      1393      3893      3943      1443
    1393      3893      3943      1443      1394      3894      3944      1444
    1394      3894      3944      1444      1395      3895      3945      1445
    1395      3895      3945      1445      1396      3896      3946      1446
    1396      3896      3946      1446      1397      3897      3947      1447
    1397      3897      3947      1447      1398      3898      3948      1448
    1398      3898      3948      1448      1399      3899      3949      1449
    1399      3899      3949      1449      1400      3900      3950      1450
    1401      3901      3951      1451      1402      3902      3952      1452
    1402      3902      3952      1452      1403      3903      3953      1453
    1403      3903      3953      1453      1404      3904      3954      1454
    1404      3904      3954      1454      1405      3905      3955      1455
    1405      3905      3955      1455      1406      3906      3956      1456
    1406      3906      3956      1456      1407      3907      3957      1457
    1407      3907      3957      1457      1408      3908      3958      1458
    1408      3908      3958      1458      1409      3909      3959      1459
    1409      3909      3959      1459      1410      3910      3960      1460
    1410      3910      3960      1460      1411      3911      3961      1461
    1411      3911      3961      1461      1412      3912      3962      1462
    1412      3912      3962      1462      1413      3913      3963      1463
    1413      3913      3963      1463      1414      3914      3964      1464
    1414      3914      3964      1464      1415      3915      3965      1465
    1415      3915      3965      1465      1416      3916      3966      1466
    1416      3916      3966      1466      1417      3917      3967      1467
    1417      3917      3967      1467      1418      3918      3968      1468
    1418      3918      3968      1468      1419      3919      3969      1469
    1419      3919      3969      1469      1420      3920      3970      1470
    1420      3920      3970      1470      1421      3921      3971      1471
    1421      3921      3971      1471      1422      3922      3972      1472
    1422      3922      3972      1472      1423      3923      3973      1473
    1423      3923      3973      1473      1424      3924      3974      1474
    1424      3924      3974      1474      1425      3925      3975      1475
    1425      3925      3975      1475      1426      3926      3976      1476
    1426      3926      3976      1476      1427      3927      3977      1477
    1427      3927      3977      1477      1428      3928      3978      1478
    1428      3928      3978      1478      1429      3929      3979      1479
    1429      3929      3979      1479      1430      3930      3980      1480
    1430      3930      3980      1480      1431      3931      3981      1481
    1431      3931      3981      1481      1432      3932      3982      1482
    1432      3932      3982      1482      1433      3933      3983      1483
    1433      3933      3983      1483      1434      3934      3984      1484
    1434      3934      3984      1484      1435      3935      3985      1485
    1435      3935      3985      1485      1436      3936      3986      1486
    1436      3936      3986      1486      1437      3937      3987      1487
    1437      3937      3987      1487      1438      3938      3988      1488
    1438      3938      3988      1488      1439      3939      3989      1489
    1439      3939      3989      1489      1440      3940      3990      1490
    1440      3940      3990      1490      1441      3941      3991      1491
    1441      3941      3991      1491      1442      3942      3992      1492
    1442      3942      3992      1492      1443      3943      3993      1493
    1443      3943      3993      1493      1444      3944      3994      1494
    1444      3944      3994      1494      1445      3945      3995      1495
    1445      3945      3995      1495      1446      3946      3996      1496
    1446      3946      3996      1496      1447      3947      3997      1497
    1447      3947      3997      1497      1448      3948      3998      1498
    1448      3948      3998      1498      1449      3949      3999      1499
    1449      3949      3999      1499      1450      3950      4000      1500
    1451      3951      4001      1501      1452      3952      4002      1502
    1452      3952      4002      1502      1453      3953      4003      1503
    1453      3953      4003      1503      1454      3954      4004      1504
    1454      3954      4004      1504      1455      3955      4005      1505
    1455      3955      4005      1505      1456      3956      4006      1506
    1456      3956      4006      1506      1457      3957      4007      1507
    1457      3957      4007      1507      1458      3958      4008      1508
    1458      3958      4008      1508      1459      3959      4009      1509
    1459      3959      4009      1509      1460      3960      4010      1510
    1460      3960      4010      1510      1461      3961      4011      1511
    1461      3961      4011      1511      1462      3962      4012      1512
    1462      3962      4012      1512      1463      3963      4013      1513
    1463      3963      4013      1513      1464      3964      4014      1514
    1464      3964      4014      1514      1465      3965      4015      1515
    1465      3965      4015      1515      1466      3966      4016      1516
    1466      3966      4016      1516      1467      3967      4017      1517
    1467      3967      4017      1517      1468      3968      4018      1518
    1468      3968      4018      1518      1469      3969      4019      1519
    1469      3969      4019      1519      1470      3970      4020      1520
    1470      3970      4020      1520      1471      3971      4021      1521
    1471      3971      4021      1521      1472      3972      4022      1522
    1472      3972      4022      1522      1473      3973      4023      1523
    1473      3973      4023      1523      1474      3974      4024      1524
    1474      3974      4024      1524      1475      3975      4025      1525
    1475      3975      4025      1525      1476      3976      4026      1526
    1476      3976      4026      1526      1477      3977      4027      1527
    1477      3977      4027      1527      1478      3978      4028      1528
    1478      3978      4028      1528      1479      3979      4029      1529
    1479      3979      4029      1529      1480      3980      4030      1530
    1480      3980      4030      1530      1481      3981      4031      1531
    1481      3981      4031      1531      1482      3982      4032      1532
    1482      3982      4032      1532      1483      3983      4033      1533
    1483      3983      4033      1533      1484      3984      4034      1534
    1484      3984      4034      1534      1485      3985      4035      1535
    1485      3985      4035      1535      1486      3986      4036      1536
    1486      3986      4036      1536      1487      3987      4037      1537
    1487      3987      4037      1537      1488      3988      4038      1538
    1488      3988      4038      1538      1489      3989      4039      1539
    1489      3989      4039      1539      1490      3990      4040      1540
    1490      3990      4040      1540      1491      3991      4041      1541
    1491      3991      4041      1541      1492      3992      4042      1542
    1492      3992      4042      1542      1493      3993      4043      1543
    1493      3993      4043      1543      1494      3994      4044      1544
    1494      3994      4044      1544      1495      3995      4045      1545
    1495      3995      4045      1545      1496      3996      4046      1546
    1496      3996      4046      1546      1497      3997      4047      1547
    1497      3997      4047      1547      1498      3998      4048      1548
    1498      3998      4048      1548      1499      3999      4049      1549
    1499      3999      4049      1549      1500      4000      4050      1550
    1501      4001      4051      1551      1502      4002      4052      1552
    1502      4002      4052      1552      1503      4003      4053      1553
    1503      4003      4053      1553      1504      4004      4054      1554
    1504      4004      4054      1554      1505      4005      4055      1555
    1505      4005      4055      1555      1506      4006      4056      1556
    1506      4006      4056      1556      1507      4007      4057      1557
    1507      4007      4057      1557      1508      4008      4058      1558
    1508      4008      4058      1558      1509      4009      4059      1559
    1509      4009      4059      1559      1510      4010      4060      1560
    1510      4010      4060      1560      1511      4011      4061      1561
    1511      4011      4061      1561      1512      4012      4062      1562
    1512      4012      4062      1562      1513      4013      4063      1563
    1513      4013      4063      1563      1514      4014      4064      1564
    1514      4014      4064      1564      1515      4015      4065      1565
    1515      4015      4065      1565      1516      4016      4066      1566
    1516      4016      4066      1566      1517      4017      4067      1567
    1517      4017      4067      1567      1518      4018      4068      1568
    1518      4018      4068      1568      1519      4019      4069      1569
    1519      4019      4069      1569      1520      4020      4070      1570
    1520      4020      4070      1570      1521      4021      4071      1571
    1521      4021      4071      1571      1522      4022      4072      1572
    1522      4022      4072      1572      1523      4023      4073      1573
    1523      4023      4073      1573      1524      4024      4074      1574
    1524      4024      4074      1574      1525      4025      4075      1575
    1525      4025      4075      1575      1526      4026      4076      1576
    1526      4026      4076      1576      1527      4027      4077      1577
    1527      4027      4077      1577      1528      4028      4078      1578
    1528      4028      4078      1578      1529      4029      4079      1579
    1529      4029      4079      1579      1530      4030      4080      1580
    1530      4030      4080      1580      1531      4031      4081      1581
    1531      4031      4081      1581      1532      4032      4082      1582
    1532      4032      4082      1582      1533      4033      4083      1583
    1533      4033      4083      1583      1534      4034      4084      1584
    1534      4034      4084      1584      1535      4035      4085      1585
    1535      4035      4085      1585      1536      4036      4086      1586
    1536      4036      4086      1586      1537      4037      4087      1587
    1537      4037      4087      1587      1538      4038      4088      1588
    1538      4038      4088      1588      1539      4039      4089      1589
    1539      4039      4089      1589      1540      4040      4090      1590
    1540      4040      4090      1590      1541      4041      4091      1591
    1541      4041      4091      1591      1542      4042      4092      1592
    1542      4042      4092      1592      1543      4043      4093      1593
    1543      4043      4093      1593      1544      4044      4094      1594
    1544      4044      4094      1594      1545      4045      4095      1595
    1545      4045      4095      1595      1546      4046      4096      1596
    1546      4046      4096      1596      1547      4047      4097      1597
    1547      4047      4097      1597      1548      4048      4098      1598
    1548      4048      4098      1598      1549      4049      4099      1599
    1549      4049      4099      1599      1550      4050      4100      1600
    1551      4051      4101      1601      1552      4052      4102      1602
    1552      4052      4102      1602      1553      4053      4103      1603
    1553      4053      4103      1603      1554      4054      4104      1604
    1554      4054      4104      1604      1555      4055      4105      1605
    1555      4055      4105      1605      1556      4056      4106      1606
    1556      4056      4106      1606      1557      4057      4107      1607
    1557      4057      4107      1607      1558      4058      4108      1608
    1558      4058      4108      1608      1559      4059      4109      1609
    1559      4059      4109      1609      1560      4060      4110      1610
    1560      4060      4110      1610      1561      4061      4111      1611
    1561      4061      4111      1611      1562      4062      4112      1612
    1562      4062      4112      1612      1563      4063      4113      1613
    1563      4063      4113      1613      1564      4064      4114      1614
    1564      4064      4114      1614      1565      4065      4115      1615
    1565      4065      4115      1615      1566      4066      4116      1616
    1566      4066      4116      1616      1567      4067      4117      1617
    1567      4067      4117      1617      1568      4068      4118      1618
    1568      4068      4118      1618      1569      4069      4119      1619
    1569      4069      4119      1619      1570      4070      4120      1620
    1570      4070      4120      1620      1571      4071      4121      1621
    1571      4071      4121      1621      1572      4072      4122      1622
    1572      4072      4122      1622      1573      4073      4123      1623
    1573      4073      4123      1623      1574      4074      4124      1624
    1574      4074      4124      1624      1575      4075      4125      1625
    1575      4075      4125      1625      1576      4076      4126      1626
    1576      4076      4126      1626      1577      4077      4127      1627
    1577      4077      4127      1627      1578      4078      4128      1628
    1578      4078      4128      1628      1579      4079      4129      1629
    1579      4079      4129      1629      1580      4080      4130      1630
    1580      4080      4130      1630      1581      4081      4131      1631
    1581      4081      4131      1631      1582      4082      4132      1632
    1582      4082      4132      1632      1583      4083      4133      1633
    1583      4083      4133      1633      1584      4084      4134      1634
    1584      4084      4134      1634      1585      4085      4135      1635
    1585      4085      4135      1635      1586      4086      4136      1636
    1586      4086      4136      1636      1587      4087      4137      1637
    1587      4087      4137      1637      1588      4088      4138      1638
    1588      4088      4138      1638      1589      4089      4139      1639
    1589      4089      4139      1639      1590      4090      4140      1640
    1590      4090      4140      1640      1591      4091      4141      1641
    1591      4091      4141      1641      1592      4092      4142      1642
    1592      4092      4142      1642      1593      4093      4143      1643
    1593      4093      4143      1643      1594      4094      4144      1644
    1594      4094      4144      1644      1595      4095      4145      1645
    1595      4095      4145      1645      1596      4096      4146      1646
    1596      4096      4146      1646      1597      4097      4147      1647
    1597      4097      4147      1647      1598      4098      4148      1648
    1598      4098      4148      1648      1599      4099      4149      1649
    1599      4099      4149      1649      1600      4100      4150      1650
    1601      4101      4151      1651      1602      4102      4152      1652
    1602      4102      4152      1652      1603      4103      4153      1653
    1603      4103      4153      1653      1604      4104      4154      1654
    1604      4104      4154      1654      1605      4105      4155      1655
    1605      4105      4155      1655      1606      4106      4156      1656
    1606      4106      4156      1656      1607      4107      4157      1657
    1607      4107      4157      1657      1608      4108      4158      1658
    1608      4108      4158      1658      1609      4109      4159      1659
    1609      4109      4159      1659      1610      4110      4160      1660
    1610      4110      4160      1660      1611      4111      4161      1661
    1611      4111      4161      1661      1612      4112      4162      1662
    1612      4112      4162      1662      1613      4113      4163      1663
    1613      4113      4163      1663      1614      4114      4164      1664
    1614      4114      4164      1664      1615      4115      4165      1665
    1615      4115      4165      1665      1616      4116      4166      1666
    1616      4116      4166      1666      1617      4117      4167      1667
    1617      4117      4167      1667      1618      4118      4168      1668
    1618      4118      4168      1668      1619      4119      4169      1669
    1619      4119      4169      1669      1620      4120      4170      1670
    1620      4120      4170      1670      1621      4121      4171      1671
    1621      4121      4171      1671      1622      4122      4172      1672
    1622      4122      4172      1672      1623      4123      4173      1673
    1623      4123      4173      1673      1624      4124      4174      1674
    1624      4124      4174      1674      1625      4125      4175      1675
    1625      4125      4175      1675      1626      4126      4176      1676
    1626      4126      4176      1676      1627      4127      4177      1677
    1627      4127      4177      1677      1628      4128      4178      1678
    1628      4128      4178      1678      1629      4129      4179      1679
    1629      4129      4179      1679      1630      4130      4180      1680
    1630      4130      4180      1680      1631      4131      4181      1681
    1631      4131      4181      1681      1632      4132      4182      1682
    1632      4132      4182      1682      1633      4133      4183      1683
    1633      4133      4183      1683      1634      4134      4184      1684
    1634      4134      4184      1684      1635      4135      4185      1685
    1635      4135      4185      1685      1636      4136      4186      1686
    1636      4136      4186      1686      1637      4137      4187      1687
    1637      4137      4187      1687      1638      4138      4188      1688
    1638      4138      4188      1688      1639      4139      4189      1689
    1639      4139      4189      1689      1640      4140      4190      1690
    1640      4140      4190      1690      1641      4141      4191      1691
    1641      4141      4191      1691      1642      4142      4192      1692
    1642      4142      4192      1692      1643      4143      4193      1693
    1643      4143      4193      1693      1644      4144      4194      1694
    1644      4144      4194      1694      1645      4145      4195      1695
    1645      4145      4195      1695      1646      4146      4196      1696
    1646      4146      4196      1696      1647      4147      4197      1697
    1647      4147      4197      1697      1648      4148      4198      1698
    1648      4148      4198      1698      1649      4149      4199      1699
    1649      4149      4199      1699      1650      4150      4200      1700
    1651      4151      4201      1701      1652      4152      4202      1702
    1652      4152      4202      1702      1653      4153      4203      1703
    1653      4153      4203      1703      1654      4154      4204      1704
    1654      4154      4204      1704      1655      4155      4205      1705
    1655      4155      4205      1705      1656      4156      4206      1706
    1656      4156      4206      1706      1657      4157      4207      1707
    1657      4157      4207      1707      1658      4158      4208      1708
    1658      4158      4208      1708      1659      4159      4209      1709
    1659      4159      4209      1709      1660      4160      4210      1710
    1660      4160      4210      1710      1661      4161      4211      1711
    1661      4161      4211      1711      1662      4162      4212      1712
    1662      4162      4212      1712      1663      4163      4213      1713
    1663      4163      4213      1713      1664      4164      4214      1714
    1664      4164      4214      1714      1665      4165      4215      1715
    1665      4165      4215      1715      1666      4166      4216      1716
    1666      4166      4216      1716      1667      4167      4217      1717
    1667      4167      4217      1717      1668      4168      4218      1718
    1668      4168      4218      1718      1669      4169      4219      1719
    1669      4169      4219      1719      1670      4170      4220      1720
    1670      4170      4220      1720      1671      4171      4221      1721
    1671      4171      4221      1721      1672      4172      4222      1722
    1672      4172      4222      1722      1673      4173      4223      1723
    1673      4173      4223      1723      1674      4174      4224      1724
    1674      4174      4224      1724      1675      4175      4225      1725
    1675      4175      4225      1725      1676      4176      4226      1726
    1676      4176      4226      1726      1677      4177      4227      1727
    1677      4177      4227      1727      1678      4178      4228      1728
    1678      4178      4228      1728      1679      4179      4229      1729
    1679      4179      4229      1729      1680      4180      4230      1730
    1680      4180      4230      1730      1681      4181      4231      1731
    1681      4181      4231      1731      1682      4182      4232      1732
    1682      4182      4232      1732      1683      4183      4233      1733
    1683      4183      4233      1733      1684      4184      4234      1734
    1684      4184      4234      1734      1685      4185      4235      1735
    1685      4185      4235      1735      1686      4186      4236      1736
    1686      4186      4236      1736      1687      4187      4237      1737
    1687      4187      4237      1737      1688      4188      4238      1738
    1688      4188      4238      1738      1689      4189      4239      1739
    1689      4189      4239      1739      1690      4190      4240      1740
    1690      4190      4240      1740      1691      4191      4241      1741
    1691      4191      4241      1741      1692      4192      4242      1742
    1692      4192      4242      1742      1693      4193      4243      1743
    1693      4193      4243      1743      1694      4194      4244      1744
    1694      4194      4244      1744      1695      4195      4245      1745
    1695      4195      4245      1745      1696      4196      4246      1746
    1696      4196      4246      1746      1697      4197      4247      1747
    1697      4197      4247      1747      1698      4198      4248      1748
    1698      4198      4248      1748      1699      4199      4249      1749
    1699      4199      4249      1749      1700      4200      4250      1750
    1701      4201      4251      1751      1702      4202      4252      1752
    1702      4202      4252      1752      1703      4203      4253      1753
    1703      4203      4253      1753      1704      4204      4254      1754
    1704      4204      4254      1754      1705      4205      4255      1755
    1705      4205      4255      1755      1706      4206      4256      1756
    1706      4206      4256      1756      1707      4207      4257      1757
    1707      4207      4257      1757      1708      4208      4258      1758
    1708      4208      4258      1758      1709      4209      4259      1759
    1709      4209      4259      1759      1710      4210      4260      1760
    1710      4210      4260      1760      1711      4211      4261      1761
    1711      4211      4261      1761      1712      4212      4262      1762
    1712      4212      4262      1762      1713      4213      4263      1763
    1713      4213      4263      1763      1714      4214      4264      1764
    1714      4214      4264      1764      1715      4215      4265      1765
    1715      4215      4265      1765      1716      4216      4266      1766
    1716      4216      4266      1766      1717      4217      4267      1767
    1717      4217      4267      1767      1718      4218      4268      1768
    1718      4218      4268      1768      1719      4219      4269      1769
    1719      4219      4269      1769      1720      4220      4270      1770
    1720      4220      4270      1770      1721      4221      4271      1771
    1721      4221      4271      1771      1722      4222      4272      1772
    1722      4222      4272      1772      1723      4223      4273      1773
    1723      4223      4273      1773      1724      4224      4274      1774
    1724      4224      4274      1774      1725      4225      4275      1775
    1725      4225      4275      1775      1726      4226      4276      1776
    1726      4226      4276      1776      1727      4227      4277      1777
    1727      4227      4277      1777      1728      4228      4278      1778
    1728      4228      4278      1778      1729      4229      4279      1779
    1729      4229      4279      1779      1730      4230      4280      1780
    1730      4230      4280      1780      1731      4231      4281      1781
    1731      4231      4281      1781      1732      4232      4282      1782
    1732      4232      4282      1782      1733      4233      4283      1783
    1733      4233      4283      1783      1734      4234      4284      1784
    1734      4234      4284      1784      1735      4235      4285      1785
    1735      4235      4285      1785      1736      4236      4286      1786
    1736      4236      4286      1786      1737      4237      4287      1787
    1737      4237      4287      1787      1738      4238      4288      1788
    1738      4238      4288      1788      1739      4239      4289      1789
    1739      4239      4289      1789      1740      4240      4290      1790
    1740      4240      4290      1790      1741      4241      4291      1791
    1741      4241      4291      1791      1742      4242      4292      1792
    1742      4242      4292      1792      1743      4243      4293      1793
    1743      4243      4293      1793      1744      4244      4294      1794
    1744      4244      4294      1794      1745      4245      4295      1795
    1745      4245      4295      1795      1746      4246      4296      1796
    1746      4246      4296      1796      1747      4247      4297      1797
    1747      4247      4297      1797      1748      4248      4298      1798
    1748      4248      4298      1798      1749      4249      4299      1799
    1749      4249      4299      1799      1750      4250      4300      1800
    1751      4251      4301      1801      1752      4252      4302      1802
    1752      4252      4302      1802      1753      4253      4303      1803
    1753      4253      4303      1803      1754      4254      4304      1804
    1754      4254      4304      1804      1755      4255      4305      1805
    1755      4255      4305      1805      1756      4256      4306      1806
    1756      4256      4306      1806      1757      4257      4307      1807
    1757      4257      4307      1807      1758      4258      4308      1808
    1758      4258      4308      1808      1759      4259      4309      1809
    1759      4259      4309      1809      1760      4260      4310      1810
    1760      4260      4310      1810      1761      4261      4311      1811
    1761      4261      4311      1811      1762      4262      4312      1812
    1762      4262      4312      1812      1763      4263      4313      1813
    1763      4263      4313      1813      1764      4264      4314      1814
    1764      4264      4314      1814      1765      4265      4315      1815
    1765      4265      4315      1815      1766      4266      4316      1816
    1766      4266      4316      1816      1767      4267      4317      1817
    1767      4267      4317      1817      1768      4268      4318      1818
    1768      4268      4318      1818      1769      4269      4319      1819
    1769      4269      4319      1819      1770      4270      4320      1820
    1770      4270      4320      1820      1771      4271      4321      1821
    1771      4271      4321      1821      1772      4272      4322      1822
    1772      4272      4322      1822      1773      4273      4323      1823
    1773      4273      4323      1823      1774      4274      4324      1824
    1774      4274      4324      1824      1775      4275      4325      1825
    1775      4275      4325      1825      1776      4276      4326      1826
    1776      4276      4326      1826      1777      4277      4327      1827
    1777      4277      4327      1827      1778      4278      4328      1828
    1778      4278      4328      1828      1779      4279      4329      1829
    1779      4279      4329      1829      1780      4280      4330      1830
    1780      4280      4330      1830      1781      4281      4331      1831
    1781      4281      4331      1831      1782      4282      4332      1832
    1782      4282      4332      1832      1783      4283      4333      1833
    1783      4283      4333      1833      1784      4284      4334      1834
    1784      4284      4334      1834      1785      4285      4335      1835
    1785      4285      4335      1835      1786      4286      4336      1836
    1786      4286      4336      1836      1787      4287      4337      1837
    1787      4287      4337      1837      1788      4288      4338      1838
    1788      4288      4338      1838      1789      4289      4339      1839
    1789      4289      4339      1839      1790      4290      4340      1840
    1790      4290      4340      1840      1791      4291      4341      1841
    1791      4291      4341      1841      1792      4292      4342      1842
    1792      4292      4342      1842      1793      4293      4343      1843
    1793      4293      4343      1843      1794      4294      4344      1844
    1794      4294      4344      1844      1795      4295      4345      1845
    1795      4295      4345      1845      1796      4296      4346      1846
    1796      4296      4346      1846      1797      4297      4347      1847
    1797      4297      4347      1847      1798      4298      4348      1848
    1798      4298      4348      1848      1799      4299      4349      1849
    1799      4299      4349      1849      1800      4300      4350      1850
    1801      4301      4351      1851      1802      4302      4352      1852
    1802      4302      4352      1852      1803      4303      4353      1853
    1803      4303      4353      1853      1804      4304      4354      1854
    1804      4304      4354      1854      1805      4305      4355      1855
    1805      4305      4355      1855      1806      4306      4356      1856
    1806      4306      4356      1856      1807      4307      4357      1857
    1807      4307      4357      1857      1808      4308      4358      1858
    1808      4308      4358      1858      1809      4309      4359      1859
    1809      4309      4359      1859      1810      4310      4360      1860
    1810      4310      4360      1860      1811      4311      4361      1861
    1811      4311      4361      1861      1812      4312      4362      1862
    1812      4312      4362      1862      1813      4313      4363      1863
    1813      4313      4363      1863      1814      4314      4364      1864
    1814      4314      4364      1864      1815      4315      4365      1865
    1815      4315      4365      1865      1816      4316      4366      1866
    1816      4316      4366      1866      1817      4317      4367      1867
    1817      4317      4367      1867      1818      4318      4368      1868
    1818      4318      4368      1868      1819      4319      4369      1869
    1819      4319      4369      1869      1820      4320      4370      1870
    1820      4320      4370      1870      1821      4321      4371      1871
    1821      4321      4371      1871      1822      4322      4372      1872
    1822      4322      4372      1872      1823      4323      4373      1873
    1823      4323      4373      1873      1824      4324      4374      1874
    1824      4324      4374      1874      1825      4325      4375      1875
    1825      4325      4375      1875      1826      4326      4376      1876
    1826      4326      4376      1876      1827      4327      4377      1877
    1827      4327      4377      1877      1828      4328      4378      1878
    1828      4328      4378      1878      1829      4329      4379      1879
    1829      4329      4379      1879      1830      4330      4380      1880
    1830      4330      4380      1880      1831      4331      4381      1881
    1831      4331      4381      1881      1832      4332      4382      1882
    1832      4332      4382      1882      1833      4333      4383      1883
    1833      4333      4383      1883      1834      4334      4384      1884
    1834      4334      4384      1884      1835      4335      4385      1885
    1835      4335      4385      1885      1836      4336      4386      1886
    1836      4336      4386      1886      1837      4337      4387      1887
    1837      4337      4387      1887      1838      4338      4388      1888
    1838      4338      4388      1888      1839      4339      4389      1889
    1839      4339      4389      1889      1840      4340      4390      1890
    1840      4340      4390      1890      1841      4341      4391      1891
    1841      4341      4391      1891      1842      4342      4392      1892
    1842      4342      4392      1892      1843      4343      4393      1893
    1843      4343      4393      1893      1844      4344      4394      1894
    1844      4344      4394      1894      1845      4345      4395      1895
    1845      4345      4395      1895      1846      4346      4396      1896
    1846      4346      4396      1896      1847      4347      4397      1897
    1847      4347      4397      1897      1848      4348      4398      1898
    1848      4348      4398      1898      1849      4349      4399      1899
    1849      4349      4399      1899      1850      4350      4400      1900
    1851      4351      4401      1901      1852      4352      4402      1902
    1852      4352      4402      1902      1853      4353      4403      1903
    1853      4353      4403      1903      1854      4354      4404      1904
    1854      4354      4404      1904      1855      4355      4405      1905
    1855      4355      4405      1905      1856      4356      4406      1906
    1856      4356      4406      1906      1857      4357      4407      1907
    1857      4357      4407      1907      1858      4358      4408      1908
    1858      4358      4408      1908      1859      4359      4409      1909
    1859      4359      4409      1909      1860      4360      4410      1910
    1860      4360      4410      1910      1861      4361      4411      1911
    1861      4361      4411      1911      1862      4362      4412      1912
    1862      4362      4412      1912      1863      4363      4413      1913
    1863      4363      4413      1913      1864      4364      4414      1914
    1864      4364      4414      1914      1865      4365      4415      1915
    1865      4365      4415      1915      1866      4366      4416      1916
    1866      4366      4416      1916      1867      4367      4417      1917
    1867      4367      4417      1917      1868      4368      4418      1918
    1868      4368      4418      1918      1869      4369      4419      1919
    1869      4369      4419      1919      1870      4370      4420      1920
    1870      4370      4420      1920      1871      4371      4421      1921
    1871      4371      4421      1921      1872      4372      4422      1922
    1872      4372      4422      1922      1873      4373      4423      1923
    1873      4373      4423      1923      1874      4374      4424      1924
    1874      4374      4424      1924      1875      4375      4425      1925
    1875      4375      4425      1925      1876      4376      4426      1926
    1876      4376      4426      1926      1877      4377      4427      1927
    1877      4377      4427      1927      1878      4378      4428      1928
    1878      4378      4428      1928      1879      4379      4429      1929
    1879      4379      4429      1929      1880      4380      4430      1930
    1880      4380      4430      1930      1881      4381      4431      1931
    1881      4381      4431      1931      1882      4382      4432      1932
    1882      4382      4432      1932      1883      4383      4433      1933
    1883      4383      4433      1933      1884      4384      4434      1934
    1884      4384      4434      1934      1885      4385      4435      1935
    1885      4385      4435      1935      1886      4386      4436      1936
    1886      4386      4436      1936      1887      4387      4437      1937
    1887      4387      4437      1937      1888      4388      4438      1938
    1888      4388      4438      1938      1889      4389      4439      1939
    1889      4389      4439      1939      1890      4390      4440      1940
    1890      4390      4440      1940      1891      4391      4441      1941
    1891      4391      4441      1941      1892      4392      4442      1942
    1892      4392      4442      1942      1893      4393      4443      1943
    1893      4393      4443      1943      1894      4394      4444      1944
    1894      4394      4444      1944      1895      4395      4445      1945
    1895      4395      4445      1945      1896      4396      4446      1946
    1896      4396      4446      1946      1897      4397      4447      1947
    1897      4397      4447      1947      1898      4398      4448      1948
    1898      4398      4448      1948      1899      4399      4449      1949
    1899      4399      4449      1949      1900      4400      4450      1950
    1901      4401      4451      1951      1902      4402      4452      1952
    1902      4402      4452      1952      1903      4403      4453      1953
    1903      4403      4453      1953      1904      4404      4454      1954
    1904      4404      4454      1954      1905      4405      4455      1955
    1905      4405      4455      1955      1906      4406      4456      1956
    1906      4406      4456      1956      1907      4407      4457      1957
    1907      4407      4457      1957      1908      4408      4458      1958
    1908      4408      4458      1958      1909      4409      4459      1959
    1909      4409      4459      1959      1910      4410      4460      1960
    1910      4410      4460      1960      1911      4411      4461      1961
    1911      4411      4461      1961      1912      4412      4462      1962
    1912      4412      4462      1962      1913      4413      4463      1963
    1913      4413      4463      1963      1914      4414      4464      1964
    1914      4414      4464      1964      1915      4415      4465      1965
    1915      4415      4465      1965      1916      4416      4466      1966
    1916      4416      4466      1966      1917      4417      4467      1967
    1917      4417      4467      1967      1918      4418      4468      1968
    1918      4418      4468      1968      1919      4419      4469      1969
    1919      4419      4469      1969      1920      4420      4470      1970
    1920      4420      4470      1970      1921      4421      4471      1971
    1921      4421      4471      1971      1922      4422      4472      1972
    1922      4422      4472      1972      1923      4423      4473      1973
    1923      4423      4473      1973      1924      4424      4474      1974
    1924      4424      4474      1974      1925      4425      4475      1975
    1925      4425      4475      1975      1926      4426      4476      1976
    1926      4426      4476      1976      1927      4427      4477      1977
    1927      4427      4477      1977      1928      4428      4478      1978
    1928      4428      4478      1978      1929      4429      4479      1979
    1929      4429      4479      1979      1930      4430      4480      1980
    1930      4430      4480      1980      1931      4431      4481      1981
    1931      4431      4481      1981      1932      4432      4482      1982
    1932      4432      4482      1982      1933      4433      4483      1983
    1933      4433      4483      1983      1934      4434      4484      1984
    1934      4434      4484      1984      1935      4435      4485      1985
    1935      4435      4485      1985      1936      4436      4486      1986
    1936      4436      4486      1986      1937      4437      4487      1987
    1937      4437      4487      1987      1938      4438      4488      1988
    1938      4438      4488      1988      1939      4439      4489      1989
    1939      4439      4489      1989      1940      4440      4490      1990
    1940      4440      4490      1990      1941      4441      4491      1991
    1941      4441      4491      1991      1942      4442      4492      1992
    1942      4442      4492      1992      1943      4443      4493      1993
    1943      4443      4493      1993      1944      4444      4494      1994
    1944      4444      4494      1994      1945      4445      4495      1995
    1945      4445      4495      1995      1946      4446      4496      1996
    1946      4446      4496      1996      1947      4447      4497      1997
    1947      4447      4497      1997      1948      4448      4498      1998
    1948      4448      4498      1998      1949      4449      4499      1999
    1949      4449      4499      1999      1950      4450      4500      2000
    1951      4451      4501      2001      1952      4452      4502      2002
    1952      4452      4502      2002      1953      4453      4503      2003
    1953      4453      4503      2003      1954      4454      4504      2004
    1954      4454      4504      2004      1955      4455      4505      2005
    1955      4455      4505      2005      1956      4456      4506      2006
    1956      4456      4506      2006      1957      4457      4507      2007
    1957      4457      4507      2007      1958      4458      4508      2008
    1958      4458      4508      2008      1959      4459      4509      2009
    1959      4459      4509      2009      1960      4460      4510      2010
    1960      4460      4510      2010      1961      4461      4511      2011
    1961      4461      4511      2011      1962      4462      4512      2012
    1962      4462      4512      2012      1963      4463      4513      2013
    1963      4463      4513      2013      1964      4464      4514      2014
    1964      4464      4514      2014      1965      4465      4515      2015
    1965      4465      4515      2015      1966      4466      4516      2016
    1966      4466      4516      2016      1967      4467      4517      2017
    1967      4467      4517      2017      1968      4468      4518      2018
    1968      4468      4518      2018      1969      4469      4519      2019
    1969      4469      4519      2019      1970      4470      4520      2020
    1970      4470      4520      2020      1971      4471      4521      2021
    1971      4471      4521      2021      1972      4472      4522      2022
    1972      4472      4522      2022      1973      4473      4523      2023
    1973      4473      4523      2023      1974      4474      4524      2024
    1974      4474      4524      2024      1975      4475      4525      2025
    1975      4475      4525      2025      1976      4476      4526      2026
    1976      4476      4526      2026      1977      4477      4527      2027
    1977      4477      4527      2027      1978      4478      4528      2028
    1978      4478      4528      2028      1979      4479      4529      2029
    1979      4479      4529      2029      1980      4480      4530      2030
    1980      4480      4530      2030      1981      4481      4531      2031
    1981      4481      4531      2031      1982      4482      4532      2032
    1982      4482      4532      2032      1983      4483      4533      2033
    1983      4483      4533      2033      1984      4484      4534      2034
    1984      4484      4534      2034      1985      4485      4535      2035
    1985      4485      4535      2035      1986      4486      4536      2036
    1986      4486      4536      2036      1987      4487      4537      2037
    1987      4487      4537      2037      1988      4488      4538      2038
    1988      4488      4538      2038      1989      4489      4539      2039
    1989      4489      4539      2039      1990      4490      4540      2040
    1990      4490      4540      2040      1991      4491      4541      2041
    1991      4491      4541      2041      1992      4492      4542      2042
    1992      4492      4542      2042      1993      4493      4543      2043
    1993      4493      4543      2043      1994      4494      4544      2044
    1994      4494      4544      2044      1995      4495      4545      2045
    1995      4495      4545      2045      1996      4496      4546      2046
    1996      4496      4546      2046      1997      4497      4547      2047
    1997      4497      4547      2047      1998      4498      4548      2048
    1998      4498      4548      2048      1999      4499      4549      2049
    1999      4499      4549      2049      2000      4500      4550      2050
    2001      4501      4551      2051      2002      4502      4552      2052
    2002      4502      4552      2052      2003      4503      4553      2053
    2003      4503      4553      2053      2004      4504      4554      2054
    2004      4504      4554      2054      2005      4505      4555      2055
    2005      4505      4555      2055      2006      4506      4556      2056
    2006      4506      4556      2056      2007      4507      4557      2057
    2007      4507      4557      2057      2008      4508      4558      2058
    2008      4508      4558      2058      2009      4509      4559      2059
    2009      4509      4559      2059      2010      4510      4560      2060
    2010      4510      4560      2060      2011      4511      4561      2061
    2011      4511      4561      2061      2012      4512      4562      2062
    2012      4512      4562      2062      2013      4513      4563      2063
    2013      4513      4563      2063      2014      4514      4564      2064
    2014      4514      4564      2064      2015      4515      4565      2065
    2015      4515      4565      2065      2016      4516      4566      2066
    2016      4516      4566      2066      2017      4517      4567      2067
    2017      4517      4567      2067      2018      4518      4568      2068
    2018      4518      4568      2068      2019      4519      4569      2069
    2019      4519      4569      2069      2020      4520      4570      2070
    2020      4520      4570      2070      2021      4521      4571      2071
    2021      4521      4571      2071      2022      4522      4572      2072
    2022      4522      4572      2072      2023      4523      4573      2073
    2023      4523      4573      2073      2024      4524      4574      2074
    2024      4524      4574      2074      2025      4525      4575      2075
    2025      4525      4575      2075      2026      4526      4576      2076
    2026      4526      4576      2076      2027      4527      4577      2077
    2027      4527      4577      2077      2028      4528      4578      2078
    2028      4528      4578      2078      2029      4529      4579      2079
    2029      4529      4579      2079      2030      4530      4580      2080
    2030      4530      4580      2080      2031      4531      4581      2081
    2031      4531      4581      2081      2032      4532      4582      2082
    2032      4532      4582      2082      2033      4533      4583      2083
    2033      4533      4583      2083      2034      4534      4584      2084
    2034      4534      4584      2084      2035      4535      4585      2085
    2035      4535      4585      2085      2036      4536      4586      2086
    2036      4536      4586      2086      2037      4537      4587      2087
    2037      4537      4587      2087      2038      4538      4588      2088
    2038      4538      4588      2088      2039      4539      4589      2089
    2039      4539      4589      2089      2040      4540      4590      2090
    2040      4540      4590      2090      2041      4541      4591      2091
    2041      4541      4591      2091      2042      4542      4592      2092
    2042      4542      4592      2092      2043      4543      4593      2093
    2043      4543      4593      2093      2044      4544      4594      2094
    2044      4544      4594      2094      2045      4545      4595      2095
    2045      4545      4595      2095      2046      4546      4596      2096
    2046      4546      4596      2096      2047      4547      4597      2097
    2047      4547      4597      2097      2048      4548      4598      2098
    2048      4548      4598      2098      2049      4549      4599      2099
    2049      4549      4599      2099      2050      4550      4600      2100
    2051      4551      4601      2101      2052      4552      4602      2102
    2052      4552      4602      2102      2053      4553      4603      2103
    2053      4553      4603      2103      2054      4554      4604      2104
    2054      4554      4604      2104      2055      4555      4605      2105
    2055      4555      4605      2105      2056      4556      4606      2106
    2056      4556      4606      2106      2057      4557      4607      2107
    2057      4557      4607      2107      2058      4558      4608      2108
    2058      4558      4608      2108      2059      4559      4609      2109
    2059      4559      4609      2109      2060      4560      4610      2110
    2060      4560      4610      2110      2061      4561      4611      2111
    2061      4561      4611      2111      2062      4562      4612      2112
    2062      4562      4612      2112      2063      4563      4613      2113
    2063      4563      4613      2113      2064      4564      4614      2114
    2064      4564      4614      2114      2065      4565      4615      2115
    2065      4565      4615      2115      2066      4566      4616      2116
    2066      4566      4616      2116      2067      4567      4617      2117
    2067      4567      4617      2117      2068      4568      4618      2118
    2068      4568      4618      2118      2069      4569      4619      2119
    2069      4569      4619      2119      2070      4570      4620      2120
    2070      4570      4620      2120      2071      4571      4621      2121
    2071      4571      4621      2121      2072      4572      4622      2122
    2072      4572      4622      2122      2073      4573      4623      2123
    2073      4573      4623      2123      2074      4574      4624      2124
    2074      4574      4624      2124      2075      4575      4625      2125
    2075      4575      4625      2125      2076      4576      4626      2126
    2076      4576      4626      2126      2077      4577      4627      2127
    2077      4577      4627      2127      2078      4578      4628      2128
    2078      4578      4628      2128      2079      4579      4629      2129
    2079      4579      4629      2129      2080      4580      4630      2130
    2080      4580      4630      2130      2081      4581      4631      2131
    2081      4581      4631      2131      2082      4582      4632      2132
    2082      4582      4632      2132      2083      4583      4633      2133
    2083      4583      4633      2133      2084      4584      4634      2134
    2084      4584      4634      2134      2085      4585      4635      2135
    2085      4585      4635      2135      2086      4586      4636      2136
    2086      4586      4636      2136      2087      4587      4637      2137
    2087      4587      4637      2137      2088      4588      4638      2138
    2088      4588      4638      2138      2089      4589      4639      2139
    2089      4589      4639      2139      2090      4590      4640      2140
    2090      4590      4640      2140      2091      4591      4641      2141
    2091      4591      4641      2141      2092      4592      4642      2142
    2092      4592      4642      2142      2093      4593      4643      2143
    2093      4593      4643      2143      2094      4594      4644      2144
    2094      4594      4644      2144      2095      4595      4645      2145
    2095      4595      4645      2145      2096      4596      4646      2146
    2096      4596      4646      2146      2097      4597      4647      2147
    2097      4597      4647      2147      2098      4598      4648      2148
    2098      4598      4648      2148      2099      4599      4649      2149
    2099      4599      4649      2149      2100      4600      4650      2150
    2101      4601      4651      2151      2102      4602      4652      2152
    2102      4602      4652      2152      2103      4603      4653      2153
    2103      4603      4653      2153      2104      4604      4654      2154
    2104      4604      4654      2154      2105      4605      4655      2155
    2105      4605      4655      2155      2106      4606      4656      2156
    2106      4606      4656      2156      2107      4607      4657      2157
    2107      4607      4657      2157      2108      4608      4658      2158
    2108      4608      4658      2158      2109      4609      4659      2159
    2109      4609      4659      2159      2110      4610      4660      2160
    2110      4610      4660      2160      2111      4611      4661      2161
    2111      4611      4661      2161      2112      4612      4662      2162
    2112      4612      4662      2162      2113      4613      4663      2163
    2113      4613      4663      2163      2114      4614      4664      2164
    2114      4614      4664      2164      2115      4615      4665      2165
    2115      4615      4665      2165      2116      4616      4666      2166
    2116      4616      4666      2166      2117      4617      4667      2167
    2117      4617      4667      2167      2118      4618      4668      2168
    2118      4618      4668      2168      2119      4619      4669      2169
    2119      4619      4669      2169      2120      4620      4670      2170
    2120      4620      4670      2170      2121      4621      4671      2171
    2121      4621      4671      2171      2122      4622      4672      2172
    2122      4622      4672      2172      2123      4623      4673      2173
    2123      4623      4673      2173      2124      4624      4674      2174
    2124      4624      4674      2174      2125      4625      4675      2175
    2125      4625      4675      2175      2126      4626      4676      2176
    2126      4626      4676      2176      2127      4627      4677      2177
    2127      4627      4677      2177      2128      4628      4678      2178
    2128      4628      4678      2178      2129      4629      4679      2179
    2129      4629      4679      2179      2130      4630      4680      2180
    2130      4630      4680      2180      2131      4631      4681      2181
    2131      4631      4681      2181      2132      4632      4682      2182
    2132      4632      4682      2182      2133      4633      4683      2183
    2133      4633      4683      2183      2134      4634      4684      2184
    2134      4634      4684      2184      2135      4635      4685      2185
    2135      4635      4685      2185      2136      4636      4686      2186
    2136      4636      4686      2186      2137      4637      4687      2187
    2137      4637      4687      2187      2138      4638      4688      2188
    2138      4638      4688      2188      2139      4639      4689      2189
    2139      4639      4689      2189      2140      4640      4690      2190
    2140      4640      4690      2190      2141      4641      4691      2191
    2141      4641      4691      2191      2142      4642      4692      2192
    2142      4642      4692      2192      2143      4643      4693      2193
    2143      4643      4693      2193      2144      4644      4694      2194
    2144      4644      4694      2194      2145      4645      4695      2195
    2145      4645      4695      2195      2146      4646      4696      2196
    2146      4646      4696      2196      2147      4647      4697      2197
    2147      4647      4697      2197      2148      4648      4698      2198
    2148      4648      4698      2198      2149      4649      4699      2199
    2149      4649      4699      2199      2150      4650      4700      2200
    2151      4651      4701      2201      2152      4652      4702      2202
    2152      4652      4702      2202      2153      4653      4703      2203
    2153      4653      4703      2203      2154      4654      4704      2204
    2154      4654      4704      2204      2155      4655      4705      2205
    2155      4655      4705      2205      2156      4656      4706      2206
    2156      4656      4706      2206      2157      4657      4707      2207
    2157      4657      4707      2207      2158      4658      4708      2208
    2158      4658      4708      2208      2159      4659      4709      2209
    2159      4659      4709      2209      2160      4660      4710      2210
    2160      4660      4710      2210      2161      4661      4711      2211
    2161      4661      4711      2211      2162      4662      4712      2212
    2162      4662      4712      2212      2163      4663      4713      2213
    2163      4663      4713      2213      2164      4664      4714      2214
    2164      4664      4714      2214      2165      4665      4715      2215
    2165      4665      4715      2215      2166      4666      4716      2216
    2166      4666      4716      2216      2167      4667      4717      2217
    2167      4667      4717      2217      2168      4668      4718      2218
    2168      4668      4718      2218      2169      4669      4719      2219
    2169      4669      4719      2219      2170      4670      4720      2220
    2170      4670      4720      2220      2171      4671      4721      2221
    2171      4671      4721      2221      2172      4672      4722      2222
    2172      4672      4722      2222      2173      4673      4723      2223
    2173      4673      4723      2223      2174      4674      4724      2224
    2174      4674      4724      2224      2175      4675      4725      2225
    2175      4675      4725      2225      2176      4676      4726      2226
    2176      4676      4726      2226      2177      4677      4727      2227
    2177      4677      4727      2227      2178      4678      4728      2228
    2178      4678      4728      2228      2179      4679      4729      2229
    2179      4679      4729      2229      2180      4680      4730      2230
    2180      4680      4730      2230      2181      4681      4731      2231
    2181      4681      4731      2231      2182      4682      4732      2232
    2182      4682      4732      2232      2183      4683      4733      2233
    2183      4683      4733      2233      2184      4684      4734      2234
    2184      4684      4734      2234      2185      4685      4735      2235
    2185      4685      4735      2235      2186      4686      4736      2236
    2186      4686      4736      2236      2187      4687      4737      2237
    2187      4687      4737      2237      2188      4688      4738      2238
    2188      4688      4738      2238      2189      4689      4739      2239
    2189      4689      4739      2239      2190      4690      4740      2240
    2190      4690      4740      2240      2191      4691      4741      2241
    2191      4691      4741      2241      2192      4692      4742      2242
    2192      4692      4742      2242      2193      4693      4743      2243
    2193      4693      4743      2243      2194      4694      4744      2244
    2194      4694      4744      2244      2195      4695      4745      2245
    2195      4695      4745      2245      2196      4696      4746      2246
    2196      4696      4746      2246      2197      4697      4747      2247
    2197      4697      4747      2247      2198      4698      4748      2248
    2198      4698      4748      2248      2199      4699      4749      2249
    2199      4699      4749      2249      2200      4700      4750      2250
    2201      4701      4751      2251      2202      4702      4752      2252
    2202      4702      4752      2252      2203      4703      4753      2253
    2203      4703      4753      2253      2204      4704      4754      2254
    2204      4704      4754      2254      2205      4705      4755      2255
    2205      4705      4755      2255      2206      4706      4756      2256
    2206      4706      4756      2256      2207      4707      4757      2257
    2207      4707      4757      2257      2208      4708      4758      2258
    2208      4708      4758      2258      2209      4709      4759      2259
    2209      4709      4759      2259      2210      4710      4760      2260
    2210      4710      4760      2260      2211      4711      4761      2261
    2211      4711      4761      2261      2212      4712      4762      2262
    2212      4712      4762      2262      2213      4713      4763      2263
    2213      4713      4763      2263      2214      4714      4764      2264
    2214      4714      4764      2264      2215      4715      4765      2265
    2215      4715      4765      2265      2216      4716      4766      2266
    2216      4716      4766      2266      2217      4717      4767      2267
    2217      4717      4767      2267      2218      4718      4768      2268
    2218      4718      4768      2268      2219      4719      4769      2269
    2219      4719      4769      2269      2220      4720      4770      2270
    2220      4720      4770      2270      2221      4721      4771      2271
    2221      4721      4771      2271      2222      4722      4772      2272
    2222      4722      4772      2272      2223      4723      4773      2273
    2223      4723      4773      2273      2224      4724      4774      2274
    2224      4724      4774      2274      2225      4725      4775      2275
    2225      4725      4775      2275      2226      4726      4776      2276
    2226      4726      4776      2276      2227      4727      4777      2277
    2227      4727      4777      2277      2228      4728      4778      2278
    2228      4728      4778      2278      2229      4729      4779      2279
    2229      4729      4779      2279      2230      4730      4780      2280
    2230      4730      4780      2280      2231      4731      4781      2281
    2231      4731      4781      2281      2232      4732      4782      2282
    2232      4732      4782      2282      2233      4733      4783      2283
    2233      4733      4783      2283      2234      4734      4784      2284
    2234      4734      4784      2284      2235      4735      4785      2285
    2235      4735      4785      2285      2236      4736      4786      2286
    2236      4736      4786      2286      2237      4737      4787      2287
    2237      4737      4787      2287      2238      4738      4788      2288
    2238      4738      4788      2288      2239      4739      4789      2289
    2239      4739      4789      2289      2240      4740      4790      2290
    2240      4740      4790      2290      2241      4741      4791      2291
    2241      4741      4791      2291      2242      4742      4792      2292
    2242      4742      4792      2292      2243      4743      4793      2293
    2243      4743      4793      2293      2244      4744      4794      2294
    2244      4744      4794      2294      2245      4745      4795      2295
    2245      4745      4795      2295      2246      4746      4796      2296
    2246      4746      4796      2296      2247      4747      4797      2297
    2247      4747      4797      2297      2248      4748      4798      2298
    2248      4748      4798      2298      2249      4749      4799      2299
Download .txt
gitextract_o70mdxnl/

├── .gitignore
├── .gitmodules
├── BUILD.txt
├── CMakeLists.txt
├── Changelog
├── Install.txt
├── LICENSE
├── Makefile
├── README.md
├── conf/
│   ├── check_thread_storage.c
│   └── gkbuild.cmake
├── graphs/
│   ├── bricks.hex3d
│   ├── rotor.graph
│   └── rotor.graph.xyz
├── include/
│   ├── CMakeLists.txt
│   └── parmetis.h
├── libparmetis/
│   ├── CMakeLists.txt
│   ├── akwayfm.c
│   ├── ametis.c
│   ├── balancemylink.c
│   ├── comm.c
│   ├── csrmatch.c
│   ├── ctrl.c
│   ├── debug.c
│   ├── defs.h
│   ├── diffutil.c
│   ├── frename.c
│   ├── gklib.c
│   ├── gklib_defs.h
│   ├── gklib_rename.h
│   ├── gkmetis.c
│   ├── gkmpi.c
│   ├── graph.c
│   ├── initbalance.c
│   ├── initmsection.c
│   ├── initpart.c
│   ├── kmetis.c
│   ├── kwayrefine.c
│   ├── macros.h
│   ├── match.c
│   ├── mdiffusion.c
│   ├── mesh.c
│   ├── mmetis.c
│   ├── move.c
│   ├── msetup.c
│   ├── node_refine.c
│   ├── ometis.c
│   ├── parmetislib.h
│   ├── proto.h
│   ├── pspases.c
│   ├── redomylink.c
│   ├── remap.c
│   ├── rename.h
│   ├── renumber.c
│   ├── rmetis.c
│   ├── selectq.c
│   ├── serial.c
│   ├── stat.c
│   ├── struct.h
│   ├── timer.c
│   ├── util.c
│   ├── wave.c
│   ├── weird.c
│   ├── wspace.c
│   └── xyzpart.c
├── programs/
│   ├── CMakeLists.txt
│   ├── adaptgraph.c
│   ├── dglpart.c
│   ├── io.c
│   ├── mtest.c
│   ├── otest.c
│   ├── parmetis.c
│   ├── parmetisbin.h
│   ├── plotorder.pl
│   ├── pometis.c
│   ├── proto.h
│   └── ptest.c
└── utils/
    └── listunescapedsymbols.csh
Download .txt
SYMBOL INDEX (254 symbols across 51 files)

FILE: conf/check_thread_storage.c
  function main (line 3) | int main(int argc, char **argv) {

FILE: include/parmetis.h
  type pmoptype_et (line 125) | typedef enum {

FILE: libparmetis/akwayfm.c
  function KWayAdaptiveRefine (line 23) | void KWayAdaptiveRefine(ctrl_t *ctrl, graph_t *graph, idx_t npasses)

FILE: libparmetis/ametis.c
  function ParMETIS_V3_AdaptiveRepart (line 23) | int ParMETIS_V3_AdaptiveRepart(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy,
  function Adaptive_Partition (line 123) | void Adaptive_Partition(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/balancemylink.c
  function idx_t (line 20) | idx_t BalanceMyLink(ctrl_t *ctrl, graph_t *graph, idx_t *home, idx_t me,

FILE: libparmetis/comm.c
  function CommSetup (line 21) | void CommSetup(ctrl_t *ctrl, graph_t *graph)
  function CommUpdateNnbrs (line 254) | void CommUpdateNnbrs(ctrl_t *ctrl, idx_t nnbrs)
  function CommInterfaceData (line 271) | void CommInterfaceData(ctrl_t *ctrl, graph_t *graph, idx_t *data,
  function CommChangedInterfaceData (line 316) | void CommChangedInterfaceData(ctrl_t *ctrl, graph_t *graph, idx_t nchanged,
  function idx_t (line 391) | idx_t GlobalSEMax(ctrl_t *ctrl, idx_t value)
  function idx_t (line 403) | idx_t GlobalSEMaxComm(MPI_Comm comm, idx_t value)
  function idx_t (line 415) | idx_t GlobalSEMin(ctrl_t *ctrl, idx_t value)
  function idx_t (line 427) | idx_t GlobalSEMinComm(MPI_Comm comm, idx_t value)
  function idx_t (line 439) | idx_t GlobalSESum(ctrl_t *ctrl, idx_t value)
  function idx_t (line 451) | idx_t GlobalSESumComm(MPI_Comm comm, idx_t value)
  function real_t (line 463) | real_t GlobalSEMaxFloat(ctrl_t *ctrl, real_t value)
  function real_t (line 475) | real_t GlobalSEMinFloat(ctrl_t *ctrl, real_t value)
  function real_t (line 487) | real_t GlobalSESumFloat(ctrl_t *ctrl, real_t value)

FILE: libparmetis/csrmatch.c
  function CSR_Match_SHEM (line 21) | void CSR_Match_SHEM(matrix_t *matrix, idx_t *match, idx_t *mlist,

FILE: libparmetis/ctrl.c
  function ctrl_t (line 21) | ctrl_t *SetupCtrl(pmoptype_et optype, idx_t *options, idx_t ncon, idx_t ...
  function SetupCtrl_invtvwgts (line 130) | void SetupCtrl_invtvwgts(ctrl_t *ctrl, graph_t *graph)
  function FreeCtrl (line 148) | void FreeCtrl(ctrl_t **r_ctrl)

FILE: libparmetis/debug.c
  function PrintVector (line 22) | void PrintVector(ctrl_t *ctrl, idx_t n, idx_t first, idx_t *vec, char *t...
  function PrintVector2 (line 44) | void PrintVector2(ctrl_t *ctrl, idx_t n, idx_t first, idx_t *vec, char *...
  function PrintPairs (line 68) | void PrintPairs(ctrl_t *ctrl, idx_t n, ikv_t *pairs, char *title)
  function PrintGraph (line 92) | void PrintGraph(ctrl_t *ctrl, graph_t *graph)
  function PrintGraph2 (line 124) | void PrintGraph2(ctrl_t *ctrl, graph_t *graph)
  function PrintSetUpInfo (line 155) | void PrintSetUpInfo(ctrl_t *ctrl, graph_t *graph)
  function PrintTransferedGraphs (line 189) | void PrintTransferedGraphs(ctrl_t *ctrl, idx_t nnbrs, idx_t *peind,
  function WriteMetisGraph (line 234) | void WriteMetisGraph(idx_t nvtxs, idx_t *xadj, idx_t *adjncy, idx_t *vwg...

FILE: libparmetis/diffutil.c
  function SetUpConnectGraph (line 21) | void SetUpConnectGraph(graph_t *graph, matrix_t *matrix, idx_t *workspace)
  function Mc_ComputeMoveStatistics (line 87) | void Mc_ComputeMoveStatistics(ctrl_t *ctrl, graph_t *graph, idx_t *nmove...
  function idx_t (line 132) | idx_t Mc_ComputeSerialTotalV(graph_t *graph, idx_t *home)
  function ComputeLoad (line 149) | void ComputeLoad(graph_t *graph, idx_t nparts, real_t *load, real_t *tpw...
  function ConjGrad2 (line 179) | void ConjGrad2(matrix_t *A, real_t *b, real_t *x, real_t tol, real_t *wo...
  function mvMult2 (line 258) | void mvMult2(matrix_t *A, real_t *v, real_t *w)
  function ComputeTransferVector (line 276) | void ComputeTransferVector(idx_t ncon, matrix_t *matrix, real_t *solution,

FILE: libparmetis/gklib.c
  function isorti (line 50) | void isorti(size_t n, idx_t *base)
  function isortd (line 57) | void isortd(size_t n, idx_t *base)
  function rsorti (line 64) | void rsorti(size_t n, real_t *base)
  function rsortd (line 71) | void rsortd(size_t n, real_t *base)
  function ikvsorti (line 78) | void ikvsorti(size_t n, ikv_t *base)
  function ikvsortii (line 86) | void ikvsortii(size_t n, ikv_t *base)
  function ikvsortd (line 93) | void ikvsortd(size_t n, ikv_t *base)
  function rkvsorti (line 100) | void rkvsorti(size_t n, rkv_t *base)
  function rkvsortd (line 107) | void rkvsortd(size_t n, rkv_t *base)
  function uvwsorti (line 114) | void uvwsorti(size_t n, uvw_t *base)

FILE: libparmetis/gklib_defs.h
  type uvw_t (line 18) | typedef struct {

FILE: libparmetis/gkmetis.c
  function ParMETIS_V3_PartGeomKway (line 24) | int ParMETIS_V3_PartGeomKway(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy,
  function ParMETIS_V3_PartGeom (line 179) | int ParMETIS_V3_PartGeom(idx_t *vtxdist, idx_t *ndims, real_t *xyz, idx_...

FILE: libparmetis/gkmpi.c
  function gkMPI_Comm_size (line 17) | int gkMPI_Comm_size(MPI_Comm comm, idx_t *size)
  function gkMPI_Comm_rank (line 27) | int gkMPI_Comm_rank(MPI_Comm comm, idx_t *rank)
  function gkMPI_Get_count (line 37) | int gkMPI_Get_count(MPI_Status *status, MPI_Datatype datatype,
  function gkMPI_Send (line 55) | int gkMPI_Send(void *buf, idx_t count, MPI_Datatype datatype, idx_t dest,
  function gkMPI_Recv (line 65) | int gkMPI_Recv(void *buf, idx_t count, MPI_Datatype datatype,
  function gkMPI_Isend (line 75) | int gkMPI_Isend(void *buf, idx_t count, MPI_Datatype datatype, idx_t dest,
  function gkMPI_Irecv (line 85) | int gkMPI_Irecv(void *buf, idx_t count, MPI_Datatype datatype,
  function gkMPI_Wait (line 95) | int gkMPI_Wait(MPI_Request *request, MPI_Status *status)
  function gkMPI_Waitall (line 100) | int gkMPI_Waitall(idx_t count, MPI_Request *array_of_requests,
  function gkMPI_Barrier (line 106) | int gkMPI_Barrier(MPI_Comm comm)
  function gkMPI_Bcast (line 111) | int gkMPI_Bcast(void *buffer, idx_t count, MPI_Datatype datatype,
  function gkMPI_Reduce (line 121) | int gkMPI_Reduce(void *sendbuf, void *recvbuf, idx_t count,
  function gkMPI_Allreduce (line 131) | int gkMPI_Allreduce(void *sendbuf, void *recvbuf, idx_t count,
  function gkMPI_Scan (line 141) | int gkMPI_Scan(void *sendbuf, void *recvbuf, idx_t count,
  function gkMPI_Allgather (line 151) | int gkMPI_Allgather(void *sendbuf, idx_t sendcount,
  function gkMPI_Alltoall (line 164) | int gkMPI_Alltoall(void *sendbuf, idx_t sendcount,
  function gkMPI_Alltoallv (line 177) | int gkMPI_Alltoallv(void *sendbuf, idx_t *sendcounts,
  function gkMPI_Allgatherv (line 236) | int gkMPI_Allgatherv(void *sendbuf, idx_t sendcount, MPI_Datatype sendtype,
  function gkMPI_Scatterv (line 287) | int gkMPI_Scatterv(void *sendbuf, idx_t *sendcounts, idx_t *sdispls,
  function gkMPI_Gatherv (line 338) | int gkMPI_Gatherv(void *sendbuf, idx_t sendcount, MPI_Datatype sendtype,
  function gkMPI_Comm_split (line 390) | int gkMPI_Comm_split(MPI_Comm comm, idx_t color, idx_t key,
  function gkMPI_Comm_free (line 396) | int gkMPI_Comm_free(MPI_Comm *comm)
  function gkMPI_Finalize (line 401) | int gkMPI_Finalize()

FILE: libparmetis/graph.c
  function graph_t (line 24) | graph_t *SetupGraph(ctrl_t *ctrl, idx_t ncon, idx_t *vtxdist, idx_t *xadj,
  function SetupGraph_nvwgts (line 90) | void SetupGraph_nvwgts(ctrl_t *ctrl, graph_t *graph)
  function graph_t (line 117) | graph_t *CreateGraph(void)
  function InitGraph (line 134) | void InitGraph(graph_t *graph)
  function FreeGraph (line 172) | void FreeGraph(graph_t *graph)
  function FreeNonGraphFields (line 196) | void FreeNonGraphFields(graph_t *graph)
  function FreeNonGraphNonSetupFields (line 242) | void FreeNonGraphNonSetupFields(graph_t *graph)
  function FreeCommSetupFields (line 275) | void FreeCommSetupFields(graph_t *graph)
  function FreeInitialGraphAndRemap (line 301) | void FreeInitialGraphAndRemap(graph_t *graph)
  function graph_WriteToDisk (line 337) | void graph_WriteToDisk(ctrl_t *ctrl, graph_t *graph)
  function graph_ReadFromDisk (line 424) | void graph_ReadFromDisk(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/initbalance.c
  function Balance_Partition (line 22) | void Balance_Partition(ctrl_t *ctrl, graph_t *graph)
  function graph_t (line 364) | graph_t *AssembleAdaptiveGraph(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/initmsection.c
  function InitMultisection (line 44) | void InitMultisection(ctrl_t *ctrl, graph_t *graph)
  function graph_t (line 158) | graph_t *AssembleMultisectedGraph(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/initpart.c
  function InitPartition (line 28) | void InitPartition(ctrl_t *ctrl, graph_t *graph)
  function KeepPart (line 208) | void KeepPart(ctrl_t *ctrl, graph_t *graph, idx_t *part, idx_t mypart)

FILE: libparmetis/kmetis.c
  function ParMETIS_V3_PartKway (line 22) | int ParMETIS_V3_PartKway(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx...
  function Global_Partition (line 133) | void Global_Partition(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/kwayrefine.c
  function ProjectPartition (line 23) | void ProjectPartition(ctrl_t *ctrl, graph_t *graph)
  function ComputePartitionParams (line 137) | void ComputePartitionParams(ctrl_t *ctrl, graph_t *graph)
  function KWayFM (line 248) | void KWayFM(ctrl_t *ctrl, graph_t *graph, idx_t npasses)
  function KWayBalance (line 801) | void KWayBalance(ctrl_t *ctrl, graph_t *graph, idx_t npasses)

FILE: libparmetis/match.c
  function Match_Global0 (line 24) | void Match_Global0(ctrl_t *ctrl, graph_t *graph)
  function Match_Global (line 367) | void Match_Global(ctrl_t *ctrl, graph_t *graph)
  function Match_Local (line 751) | void Match_Local(ctrl_t *ctrl, graph_t *graph)
  function CreateCoarseGraph_Global (line 875) | void CreateCoarseGraph_Global(ctrl_t *ctrl, graph_t *graph, idx_t cnvtxs)
  function CreateCoarseGraph_Local (line 1356) | void CreateCoarseGraph_Local(ctrl_t *ctrl, graph_t *graph, idx_t cnvtxs)
  function DropEdges (line 1582) | void DropEdges(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/mdiffusion.c
  function idx_t (line 22) | idx_t Mc_Diffusion(ctrl_t *ctrl, graph_t *graph, idx_t *vtxdist, idx_t *...
  function graph_t (line 333) | graph_t *ExtractGraph(ctrl_t *ctrl, graph_t *graph, idx_t *indicator,

FILE: libparmetis/mesh.c
  function ParMETIS_V3_Mesh2Dual (line 22) | int ParMETIS_V3_Mesh2Dual(idx_t *elmdist, idx_t *eptr, idx_t *eind,

FILE: libparmetis/mmetis.c
  function ParMETIS_V3_PartMeshKway (line 23) | int ParMETIS_V3_PartMeshKway(idx_t *elmdist, idx_t *eptr, idx_t *eind, i...

FILE: libparmetis/move.c
  function graph_t (line 23) | graph_t *MoveGraph(ctrl_t *ctrl, graph_t *graph)
  function ProjectInfoBack (line 198) | void ProjectInfoBack(ctrl_t *ctrl, graph_t *graph, idx_t *info, idx_t *m...
  function FindVtxPerm (line 261) | void FindVtxPerm(ctrl_t *ctrl, graph_t *graph, idx_t *perm)
  function CheckMGraph (line 307) | void CheckMGraph(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/msetup.c
  function mesh_t (line 22) | mesh_t *SetUpMesh(idx_t *etype, idx_t *ncon, idx_t *elmdist, idx_t *elem...
  function mesh_t (line 64) | mesh_t *CreateMesh(void)
  function InitMesh (line 78) | void InitMesh(mesh_t *mesh)

FILE: libparmetis/node_refine.c
  function AllocateNodePartitionParams (line 25) | void AllocateNodePartitionParams(ctrl_t *ctrl, graph_t *graph)
  function ComputeNodePartitionParams (line 61) | void ComputeNodePartitionParams(ctrl_t *ctrl, graph_t *graph)
  function UpdateNodePartitionParams (line 132) | void UpdateNodePartitionParams(ctrl_t *ctrl, graph_t *graph)
  function KWayNodeRefine_Greedy (line 212) | void KWayNodeRefine_Greedy(ctrl_t *ctrl, graph_t *graph, idx_t npasses, ...
  function KWayNodeRefine2Phase (line 552) | void KWayNodeRefine2Phase(ctrl_t *ctrl, graph_t *graph, idx_t npasses, r...
  function KWayNodeRefineInterior (line 576) | void KWayNodeRefineInterior(ctrl_t *ctrl, graph_t *graph, idx_t npasses,...
  function PrintNodeBalanceInfo (line 699) | void PrintNodeBalanceInfo(ctrl_t *ctrl, idx_t nparts, idx_t *gpwgts, idx...

FILE: libparmetis/ometis.c
  function ParMETIS_V3_NodeND (line 20) | int ParMETIS_V3_NodeND(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy,
  function ParMETIS_V32_NodeND (line 56) | int ParMETIS_V32_NodeND(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_...
  function MultilevelOrder (line 192) | void MultilevelOrder(ctrl_t *ctrl, graph_t *graph, idx_t *order, idx_t *...
  function Order_Partition_Multiple (line 279) | void Order_Partition_Multiple(ctrl_t *ctrl, graph_t *graph)
  function Order_Partition (line 341) | void Order_Partition(ctrl_t *ctrl, graph_t *graph, idx_t *nlevels, idx_t...
  function LabelSeparators (line 419) | void LabelSeparators(ctrl_t *ctrl, graph_t *graph, idx_t *lastnode, idx_...
  function CompactGraph (line 505) | void CompactGraph(ctrl_t *ctrl, graph_t *graph, idx_t *perm)
  function LocalNDOrder (line 607) | void LocalNDOrder(ctrl_t *ctrl, graph_t *graph, idx_t *order, idx_t firs...

FILE: libparmetis/pspases.c
  function ParMETIS_SerialNodeND (line 20) | int ParMETIS_SerialNodeND(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy,
  function graph_t (line 100) | graph_t *AssembleEntireGraph(ctrl_t *ctrl, idx_t *vtxdist, idx_t *xadj, ...

FILE: libparmetis/redomylink.c
  function RedoMyLink (line 20) | void RedoMyLink(ctrl_t *ctrl, graph_t *graph, idx_t *home, idx_t me,

FILE: libparmetis/remap.c
  function ParallelReMapGraph (line 20) | void ParallelReMapGraph(ctrl_t *ctrl, graph_t *graph)
  function ParallelTotalVReMap (line 62) | void ParallelTotalVReMap(ctrl_t *ctrl, idx_t *lpwgts, idx_t *map, idx_t ...
  function idx_t (line 174) | idx_t SimilarTpwgts(real_t *tpwgts, idx_t ncon, idx_t s1, idx_t s2)

FILE: libparmetis/renumber.c
  function ChangeNumbering (line 23) | void ChangeNumbering(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_t *...
  function ChangeNumberingMesh (line 57) | void ChangeNumberingMesh(idx_t *elmdist, idx_t *eptr, idx_t *eind,

FILE: libparmetis/rmetis.c
  function ParMETIS_V3_RefineKway (line 24) | int ParMETIS_V3_RefineKway(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, i...

FILE: libparmetis/selectq.c
  function Mc_DynamicSelectQueue (line 20) | void Mc_DynamicSelectQueue(ctrl_t *ctrl, idx_t nqueues, idx_t ncon, idx_...
  function idx_t (line 305) | idx_t Mc_HashVwgts(ctrl_t *ctrl, idx_t ncon, real_t *nvwgt)
  function idx_t (line 344) | idx_t Mc_HashVRank(idx_t ncon, idx_t *vwgt)

FILE: libparmetis/serial.c
  function Mc_ComputeSerialPartitionParams (line 19) | void Mc_ComputeSerialPartitionParams(ctrl_t *ctrl, graph_t *graph, idx_t...
  function Mc_SerialKWayAdaptRefine (line 104) | void Mc_SerialKWayAdaptRefine(ctrl_t *ctrl, graph_t *graph, idx_t nparts,
  function idx_t (line 320) | idx_t AreAllHVwgtsBelow(idx_t ncon, real_t alpha, real_t *vwgt1, real_t ...
  function ComputeHKWayLoadImbalance (line 337) | void ComputeHKWayLoadImbalance(idx_t ncon, idx_t nparts, real_t *npwgts,...
  function SerialRemap (line 357) | void SerialRemap(ctrl_t *ctrl, graph_t *graph, idx_t nparts,
  function SSMIncKeyCmp (line 495) | int SSMIncKeyCmp(const void *fptr, const void *sptr)
  function Mc_Serial_FM_2WayRefine (line 521) | void Mc_Serial_FM_2WayRefine(ctrl_t *ctrl, graph_t *graph, real_t *tpwgt...
  function Serial_SelectQueue (line 718) | void Serial_SelectQueue(idx_t ncon, real_t *npwgts, real_t *tpwgts, idx_...
  function idx_t (line 784) | idx_t Serial_BetterBalance(idx_t ncon, real_t *npwgts, real_t *tpwgts,
  function real_t (line 799) | real_t Serial_Compute2WayHLoadImbalance(idx_t ncon, real_t *npwgts, real...
  function Mc_Serial_Balance2Way (line 819) | void Mc_Serial_Balance2Way(ctrl_t *ctrl, graph_t *graph, real_t *tpwgts,...
  function Mc_Serial_Init2WayBalance (line 1017) | void Mc_Serial_Init2WayBalance(ctrl_t *ctrl, graph_t *graph, real_t *tpw...
  function idx_t (line 1139) | idx_t Serial_SelectQueueOneWay(idx_t ncon, real_t *npwgts, real_t *tpwgts,
  function Mc_Serial_Compute2WayPartitionParams (line 1160) | void Mc_Serial_Compute2WayPartitionParams(ctrl_t *ctrl, graph_t *graph)
  function idx_t (line 1213) | idx_t Serial_AreAnyVwgtsBelow(idx_t ncon, real_t alpha, real_t *vwgt1, r...
  function idx_t (line 1228) | idx_t ComputeSerialEdgeCut(graph_t *graph)
  function idx_t (line 1247) | idx_t ComputeSerialTotalV(graph_t *graph, idx_t *home)

FILE: libparmetis/stat.c
  function ComputeSerialBalance (line 22) | void ComputeSerialBalance(ctrl_t *ctrl, graph_t *graph, idx_t *where, re...
  function ComputeParallelBalance (line 59) | void ComputeParallelBalance(ctrl_t *ctrl, graph_t *graph, idx_t *where, ...
  function Mc_PrintThrottleMatrix (line 105) | void Mc_PrintThrottleMatrix(ctrl_t *ctrl, graph_t *graph, real_t *matrix)
  function PrintPostPartInfo (line 133) | void PrintPostPartInfo(ctrl_t *ctrl, graph_t *graph, idx_t movestats)
  function ComputeMoveStatistics (line 167) | void ComputeMoveStatistics(ctrl_t *ctrl, graph_t *graph, idx_t *nmoved, ...

FILE: libparmetis/struct.h
  type cnbr_t (line 19) | typedef struct cnbr_t {
  type i2kv_t (line 29) | typedef struct i2kv_t {
  type ckrinfo_t (line 39) | typedef struct ckrinfo_t {
  type nrinfodef (line 52) | struct nrinfodef {
  type NRInfoType (line 56) | typedef struct nrinfodef NRInfoType;
  type matrix_t (line 63) | typedef struct matrix_t {
  type graph_t (line 75) | typedef struct graph_t {
  type timer (line 172) | typedef double timer;
  type ctrl_t (line 178) | typedef struct ctrl_t {
  type mesh_t (line 253) | typedef struct mesh_t {

FILE: libparmetis/timer.c
  function InitTimers (line 23) | void InitTimers(ctrl_t *ctrl)
  function PrintTimingInfo (line 51) | void PrintTimingInfo(ctrl_t *ctrl)
  function PrintTimer (line 78) | void PrintTimer(ctrl_t *ctrl, timer tmr, char *msg)

FILE: libparmetis/util.c
  function myprintf (line 20) | void myprintf(ctrl_t *ctrl, char *f_str,...)
  function rprintf (line 40) | void rprintf(ctrl_t *ctrl, char *f_str,...)
  function idx_t (line 61) | idx_t BSearch(idx_t n, idx_t *array, idx_t key)
  function RandomPermute (line 89) | void RandomPermute(idx_t n, idx_t *p, idx_t flag)
  function FastRandomPermute (line 112) | void FastRandomPermute(idx_t n, idx_t *p, idx_t flag)
  function idx_t (line 141) | idx_t ispow2(idx_t a)
  function idx_t (line 150) | idx_t log2Int(idx_t a)
  function rargmax_strd (line 162) | size_t rargmax_strd(size_t n, real_t *x, size_t incx)
  function rargmin_strd (line 177) | size_t rargmin_strd(size_t n, real_t *x, size_t incx)
  function rargmax2 (line 192) | size_t rargmax2(size_t n, real_t *x)
  function real_t (line 221) | real_t ravg(size_t n, real_t *x)
  function real_t (line 236) | real_t rfavg(size_t n, real_t *x)
  function real_t (line 255) | real_t BetterVBalance(idx_t ncon, real_t *vwgt, real_t *u1wgt, real_t *u...
  function idx_t (line 287) | idx_t IsHBalanceBetterFT(idx_t ncon, real_t *pfrom, real_t *pto, real_t ...
  function idx_t (line 333) | idx_t IsHBalanceBetterTT(idx_t ncon, real_t *pt1, real_t *pt2, real_t *n...
  function GetThreeMax (line 372) | void GetThreeMax(idx_t n, real_t *x, idx_t *first, idx_t *second, idx_t ...

FILE: libparmetis/wave.c
  function real_t (line 19) | real_t WavefrontDiffusion(ctrl_t *ctrl, graph_t *graph, idx_t *home)

FILE: libparmetis/weird.c
  function CheckInputsPartKway (line 34) | int CheckInputsPartKway(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, idx_...
  function CheckInputsPartGeomKway (line 118) | int CheckInputsPartGeomKway(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy, ...
  function CheckInputsPartGeom (line 209) | int CheckInputsPartGeom(idx_t *vtxdist, idx_t *ndims, real_t *xyz,
  function CheckInputsAdaptiveRepart (line 248) | int CheckInputsAdaptiveRepart(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy,
  function CheckInputsNodeND (line 339) | int CheckInputsNodeND(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy,
  function CheckInputsPartMeshKway (line 376) | int CheckInputsPartMeshKway(idx_t *elmdist, idx_t *eptr, idx_t *eind, id...
  function PartitionSmallGraph (line 452) | void PartitionSmallGraph(ctrl_t *ctrl, graph_t *graph)

FILE: libparmetis/wspace.c
  function AllocateWSpace (line 21) | void AllocateWSpace(ctrl_t *ctrl, size_t nwords)
  function AllocateRefinementWorkSpace (line 30) | void AllocateRefinementWorkSpace(ctrl_t *ctrl, idx_t nbrpoolsize)
  function FreeWSpace (line 45) | void FreeWSpace(ctrl_t *ctrl)
  function idx_t (line 77) | idx_t *iwspacemalloc(ctrl_t *ctrl, size_t n)
  function cnbrpoolReset (line 85) | void cnbrpoolReset(ctrl_t *ctrl)
  function idx_t (line 94) | idx_t cnbrpoolGetNext(ctrl_t *ctrl, idx_t nnbrs)
  function real_t (line 115) | real_t *rwspacemalloc(ctrl_t *ctrl, size_t n)
  function ikv_t (line 124) | ikv_t *ikvwspacemalloc(ctrl_t *ctrl, size_t n)
  function rkv_t (line 133) | rkv_t *rkvwspacemalloc(ctrl_t *ctrl, size_t n)

FILE: libparmetis/xyzpart.c
  function Coordinate_Partition (line 22) | void Coordinate_Partition(ctrl_t *ctrl, graph_t *graph, idx_t ndims,
  function IRBinCoordinates (line 71) | void IRBinCoordinates(ctrl_t *ctrl, graph_t *graph, idx_t ndims, real_t ...
  function RBBinCoordinates (line 180) | void RBBinCoordinates(ctrl_t *ctrl, graph_t *graph, idx_t ndims, real_t ...
  function SampleSort (line 304) | void SampleSort(ctrl_t *ctrl, graph_t *graph, ikv_t *elmnts)
  function PseudoSampleSort (line 474) | void PseudoSampleSort(ctrl_t *ctrl, graph_t *graph, ikv_t *elmnts)

FILE: programs/adaptgraph.c
  function AdaptGraph (line 21) | void AdaptGraph(graph_t *graph, idx_t afactor, MPI_Comm comm)
  function AdaptGraph2 (line 83) | void AdaptGraph2(graph_t *graph, idx_t afactor, MPI_Comm comm)
  function Mc_AdaptGraph (line 140) | void Mc_AdaptGraph(graph_t *graph, idx_t *part, idx_t ncon, idx_t nparts...

FILE: programs/dglpart.c
  type mvinfo_t (line 29) | typedef struct mvinfo_t {
  function main (line 51) | int main(int argc, char *argv[])
  function DistDGL_GPart (line 83) | int DistDGL_GPart(char *fstem, idx_t nparts_per_pe, MPI_Comm comm)
  function graph_t (line 167) | graph_t *DistDGL_MoveGraph(graph_t *ograph, idx_t *part, idx_t nparts_pe...
  function DistDGL_CheckMGraph (line 559) | void DistDGL_CheckMGraph(ctrl_t *ctrl, graph_t *graph, idx_t nparts_per_pe)
  function graph_t (line 597) | graph_t *DistDGL_ReadGraph(char *fstem, MPI_Comm comm)
  function DistDGL_WriteGraphs (line 1143) | void DistDGL_WriteGraphs(char *fstem, graph_t *graph, idx_t nparts_per_pe,
  function idx_t (line 1257) | idx_t DistDGL_mapFromCyclic(idx_t u, idx_t npes, idx_t *vtxdist)
  function idx_t (line 1268) | idx_t DistDGL_mapToCyclic(idx_t u, idx_t npes, idx_t *vtxdist)
  function i2kvsorti (line 1277) | void i2kvsorti(size_t n, i2kv_t *base)
  function i2kvsortii (line 1290) | void i2kvsortii(size_t n, i2kv_t *base)

FILE: programs/io.c
  function ParallelReadGraph (line 21) | void ParallelReadGraph(graph_t *graph, char *filename, MPI_Comm comm)
  function Mc_ParallelWriteGraph (line 276) | void Mc_ParallelWriteGraph(ctrl_t *ctrl, graph_t *graph, char *filename,
  function ReadTestGraph (line 330) | void ReadTestGraph(graph_t *graph, char *filename, MPI_Comm comm)
  function real_t (line 418) | real_t *ReadTestCoordinates(graph_t *graph, char *filename, idx_t *r_ndims,
  function ReadMetisGraph (line 478) | void ReadMetisGraph(char *filename, idx_t *r_nvtxs, idx_t **r_xadj, idx_...
  function Mc_SerialReadGraph (line 530) | void Mc_SerialReadGraph(graph_t *graph, char *filename, idx_t *wgtflag, ...
  function Mc_SerialReadMetisGraph (line 681) | void Mc_SerialReadMetisGraph(char *filename, idx_t *r_nvtxs, idx_t *r_ncon,
  function WritePVector (line 781) | void WritePVector(char *gname, idx_t *vtxdist, idx_t *part, MPI_Comm comm)
  function WriteOVector (line 821) | void WriteOVector(char *gname, idx_t *vtxdist, idx_t *order, MPI_Comm comm)
  function ParallelReadMesh (line 874) | void ParallelReadMesh(mesh_t *mesh, char *filename, MPI_Comm comm)

FILE: programs/mtest.c
  function main (line 21) | int main(int argc, char *argv[])

FILE: programs/otest.c
  function idx_t (line 21) | idx_t main(idx_t argc, char *argv[])
  function TestParMetis (line 53) | void TestParMetis(char *filename, MPI_Comm comm)
  function idx_t (line 323) | idx_t ComputeRealCut(idx_t *vtxdist, idx_t *part, char *filename, MPI_Co...
  function idx_t (line 365) | idx_t ComputeRealCut2(idx_t *vtxdist, idx_t *mvtxdist, idx_t *part, idx_...
  function TestMoveGraph (line 426) | void TestMoveGraph(graph_t *ograph, graph_t *omgraph, idx_t *part, MPI_C...
  function graph_t (line 467) | graph_t *SetUpGraph(ctrl_t *ctrl, idx_t *vtxdist, idx_t *xadj,

FILE: programs/parmetis.c
  function main (line 20) | int main(int argc, char *argv[])
  function ChangeToFortranNumbering (line 170) | void ChangeToFortranNumbering(idx_t *vtxdist, idx_t *xadj, idx_t *adjncy...

FILE: programs/pometis.c
  function main (line 20) | int main(int argc, char *argv[])

FILE: programs/ptest.c
  function main (line 22) | int main(int argc, char *argv[])
  function TestParMetis_GPart (line 54) | void TestParMetis_GPart(char *filename, char *xyzfile, MPI_Comm comm)
  function idx_t (line 309) | idx_t ComputeRealCut(idx_t *vtxdist, idx_t *part, char *filename, MPI_Co...
  function idx_t (line 352) | idx_t ComputeRealCutFromMoved(idx_t *vtxdist, idx_t *mvtxdist, idx_t *part,
  function TestMoveGraph (line 414) | void TestMoveGraph(graph_t *ograph, graph_t *omgraph, idx_t *part, MPI_C...
  function graph_t (line 454) | graph_t *TestSetUpGraph(ctrl_t *ctrl, idx_t *vtxdist, idx_t *xadj,
Copy disabled (too large) Download .json
Condensed preview — 78 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (23,981K chars).
[
  {
    "path": ".gitignore",
    "chars": 522,
    "preview": "# Prerequisites\n*.d\n\n# Object files\n*.o\n*.ko\n*.obj\n*.elf\n\n# Linker output\n*.ilk\n*.map\n*.exp\n\n# Precompiled Headers\n*.gch"
  },
  {
    "path": ".gitmodules",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "BUILD.txt",
    "chars": 1811,
    "preview": "------------------------------------------------------------------------------\nBuilding ParMETIS requires CMake 2.8, fou"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 1193,
    "preview": "cmake_minimum_required(VERSION 2.8)\nproject(ParMETIS C)\n\n\n# Search for MPI.\n# GK commented this out as it seems to be cr"
  },
  {
    "path": "Changelog",
    "chars": 10424,
    "preview": "\nChanges in version 4.0.3\nr13947; 2013-03-30 10:55:56 -0500 (Sat, 30 Mar 2013) \n\n- Fixed various issues related to wavef"
  },
  {
    "path": "Install.txt",
    "chars": 823,
    "preview": "\nThese are some preliminary instructions for the 4.0 release of ParMetis.\n\n1. You need to have a C compiler that support"
  },
  {
    "path": "LICENSE",
    "chars": 946,
    "preview": "Copyright & License Notice\n--------------------------\n\nThe ParMETIS package is copyrighted by the Regents of the \nUniver"
  },
  {
    "path": "Makefile",
    "chars": 1787,
    "preview": "# Configuration options.\ncc         = mpicc\ngdb        = not-set\nassert     = not-set\nassert2    = not-set\ndebug      = "
  },
  {
    "path": "README.md",
    "chars": 2981,
    "preview": "# ParMETIS \n\nParMETIS is an MPI-based library for partitioning graphs, partitioning finite element meshes, \nand producin"
  },
  {
    "path": "conf/check_thread_storage.c",
    "chars": 72,
    "preview": "extern __thread int x;\n\nint main(int argc, char **argv) {\n  return 0;\n}\n"
  },
  {
    "path": "conf/gkbuild.cmake",
    "chars": 3880,
    "preview": "# Helper modules.\ninclude(CheckFunctionExists)\ninclude(CheckIncludeFile)\n\n# Setup options.\noption(GDB \"enable use of GDB"
  },
  {
    "path": "graphs/bricks.hex3d",
    "chars": 9294283,
    "preview": "  117649  3\n       1      2501      2551        51         2      2502      2552        52\n       2      2502      2552 "
  },
  {
    "path": "graphs/rotor.graph",
    "chars": 7993298,
    "preview": "99617 662431\n 26014 26015 26016 27129 27471 27601 \n 25970 25971 25973 27018 27600 27601 \n 4 1084 27016 27017 27018 27708"
  },
  {
    "path": "graphs/rotor.graph.xyz",
    "chars": 5678169,
    "preview": "  1.0000000000e+00   0.0000000000e+00   2.3996204300e-10\n  9.9604070800e-01   0.0000000000e+00  -7.0041920100e-04\n  9.86"
  },
  {
    "path": "include/CMakeLists.txt",
    "chars": 45,
    "preview": "install(FILES parmetis.h DESTINATION include)"
  },
  {
    "path": "include/parmetis.h",
    "chars": 6414,
    "preview": "/*\n * Copyright 1997-2003, Regents of the University of Minnesota\n *\n * parmetis.h\n *\n * This file contains function pro"
  },
  {
    "path": "libparmetis/CMakeLists.txt",
    "chars": 373,
    "preview": "# Include directories for library code.\ninclude_directories(.)\n\n# Find sources.\nfile(GLOB parmetis_sources *.c)\n\n# Creat"
  },
  {
    "path": "libparmetis/akwayfm.c",
    "chars": 20868,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * makwayfm.c\n *\n * This file contains code that perform"
  },
  {
    "path": "libparmetis/ametis.c",
    "chars": 7412,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * ametis.c\n *\n * This is the entry point of parallel di"
  },
  {
    "path": "libparmetis/balancemylink.c",
    "chars": 8895,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * balancemylink.c\n *\n * This file contains code that im"
  },
  {
    "path": "libparmetis/comm.c",
    "chars": 15306,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * comm.c\n *\n * This function provides various high leve"
  },
  {
    "path": "libparmetis/csrmatch.c",
    "chars": 1976,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * csrmatch.c\n *\n * This file contains the code that com"
  },
  {
    "path": "libparmetis/ctrl.c",
    "chars": 4919,
    "preview": "/*!\n * Copyright 1997, Regents of the University of Minnesota\n *\n * \\file\n * \\brief Functions dealing with manipulating "
  },
  {
    "path": "libparmetis/debug.c",
    "chars": 7879,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * debug.c\n *\n * This file contains various functions th"
  },
  {
    "path": "libparmetis/defs.h",
    "chars": 2253,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * defs.h\n *\n * This file contains constant definitions\n"
  },
  {
    "path": "libparmetis/diffutil.c",
    "chars": 7949,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * wavefrontK.c \n *\n * This file contains code for the i"
  },
  {
    "path": "libparmetis/frename.c",
    "chars": 4633,
    "preview": "/*\n * frename.c\n *\n * This file contains some renaming routines to deal with different\n * Fortran compilers.\n *\n * Start"
  },
  {
    "path": "libparmetis/gklib.c",
    "chars": 3276,
    "preview": "/*!\n\\file  gklib.c\n\\brief Various helper routines generated using GKlib's templates\n\n\\date   Started 4/12/2007\n\\author G"
  },
  {
    "path": "libparmetis/gklib_defs.h",
    "chars": 1637,
    "preview": "/*!\n\\file\n\\brief Data structures and prototypes for GKlib integration\n\n\\date  Started 12/23/2008\n\\author George\n\\version"
  },
  {
    "path": "libparmetis/gklib_rename.h",
    "chars": 4321,
    "preview": "/*!\n\\file\n\n * Copyright 1997, Regents of the University of Minnesota\n *\n * This file contains header files\n *\n * Started"
  },
  {
    "path": "libparmetis/gkmetis.c",
    "chars": 7399,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * gkmetis.c\n *\n * This is the entry point of parallel g"
  },
  {
    "path": "libparmetis/gkmpi.c",
    "chars": 11037,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * gkmpi.c\n *\n * This function contains wrappers around "
  },
  {
    "path": "libparmetis/graph.c",
    "chars": 13813,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * graph.c\n *\n * This file contains routines that deal w"
  },
  {
    "path": "libparmetis/initbalance.c",
    "chars": 17514,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * initbalance.c\n *\n * This file contains code that comp"
  },
  {
    "path": "libparmetis/initmsection.c",
    "chars": 8484,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * initmsection.c\n *\n * This file contains code that per"
  },
  {
    "path": "libparmetis/initpart.c",
    "chars": 7758,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * initpart.c\n *\n * This file contains code that perform"
  },
  {
    "path": "libparmetis/kmetis.c",
    "chars": 7322,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * kmetis.c\n *\n * This is the entry point of ParMETIS_Pa"
  },
  {
    "path": "libparmetis/kwayrefine.c",
    "chars": 38524,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * medge_refine.c\n *\n * This file contains code that per"
  },
  {
    "path": "libparmetis/macros.h",
    "chars": 2645,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * macros.h\n *\n * This file contains macros used in mult"
  },
  {
    "path": "libparmetis/match.c",
    "chars": 56067,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * mmatch.c\n *\n * This file contains code that finds a m"
  },
  {
    "path": "libparmetis/mdiffusion.c",
    "chars": 12256,
    "preview": "/* * Copyright 1997, Regents of the University of Minnesota\n *\n * mdiffusion.c\n *\n * This file contains code that perfor"
  },
  {
    "path": "libparmetis/mesh.c",
    "chars": 10199,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * mesh.c\n *\n * This file contains routines for construc"
  },
  {
    "path": "libparmetis/mmetis.c",
    "chars": 2725,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * mmetis.c\n *\n * This is the entry point of ParMETIS_V3"
  },
  {
    "path": "libparmetis/move.c",
    "chars": 10661,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * mmove.c\n *\n * This file contains functions that move "
  },
  {
    "path": "libparmetis/msetup.c",
    "chars": 2449,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * msetup.c\n *\n * This file contain various routines for"
  },
  {
    "path": "libparmetis/node_refine.c",
    "chars": 23763,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * node_refine.c\n *\n * This file contains code that perf"
  },
  {
    "path": "libparmetis/ometis.c",
    "chars": 21503,
    "preview": "/*!\n * Copyright 1997, Regents of the University of Minnesota\n *\n * \\file\n * \\brief This is the entry point of parallel "
  },
  {
    "path": "libparmetis/parmetislib.h",
    "chars": 459,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * par_metis.h\n *\n * This file includes all necessary he"
  },
  {
    "path": "libparmetis/proto.h",
    "chars": 14305,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * proto.h\n *\n * This file contains header files\n *\n * S"
  },
  {
    "path": "libparmetis/pspases.c",
    "chars": 4467,
    "preview": "/*\n * pspases.c\n *\n * This file contains ordering routines that are to be used with the\n * parallel Cholesky factorizati"
  },
  {
    "path": "libparmetis/redomylink.c",
    "chars": 4522,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * redomylink.c\n *\n * This file contains code that imple"
  },
  {
    "path": "libparmetis/remap.c",
    "chars": 4883,
    "preview": "/*\n * premap.c\n *\n * This file contains code that computes the assignment of processors to\n * partition numbers so that "
  },
  {
    "path": "libparmetis/rename.h",
    "chars": 9650,
    "preview": "#ifndef _LIBPARMETIS_RENAME_H_\n#define _LIBPARMETIS_RENAME_H_\n\n#define KWayAdaptiveRefine libparmetis__KWayAdaptiveRefin"
  },
  {
    "path": "libparmetis/renumber.c",
    "chars": 2130,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * mgrsetup.c\n *\n * This file contain various graph sett"
  },
  {
    "path": "libparmetis/rmetis.c",
    "chars": 3045,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * rmetis.c\n *\n * This is the entry point of the partiti"
  },
  {
    "path": "libparmetis/selectq.c",
    "chars": 13136,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * selectq.c\n *\n * This file contains the driving routin"
  },
  {
    "path": "libparmetis/serial.c",
    "chars": 37103,
    "preview": "/*\n * serial.c\n *\n * This file contains code that implements k-way refinement\n *\n * Started 7/28/97\n * George\n *\n * $Id:"
  },
  {
    "path": "libparmetis/stat.c",
    "chars": 5661,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * stat.c\n *\n * This file computes various statistics\n *"
  },
  {
    "path": "libparmetis/struct.h",
    "chars": 10131,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * struct.h\n *\n * This file contains data structures for"
  },
  {
    "path": "libparmetis/timer.c",
    "chars": 3030,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * timer.c\n *\n * This file contain various timing routin"
  },
  {
    "path": "libparmetis/util.c",
    "chars": 9302,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * util.c\n *\n * This function contains various utility r"
  },
  {
    "path": "libparmetis/wave.c",
    "chars": 7851,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * wave.c \n *\n * This file contains code for directed di"
  },
  {
    "path": "libparmetis/weird.c",
    "chars": 13955,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * weird.c\n *\n * This file contain various graph setting"
  },
  {
    "path": "libparmetis/wspace.c",
    "chars": 4315,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * memory.c\n *\n * This file contains routines that deal "
  },
  {
    "path": "libparmetis/xyzpart.c",
    "chars": 20877,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * xyzpart.c\n *\n * This file contains code that implemen"
  },
  {
    "path": "programs/CMakeLists.txt",
    "chars": 540,
    "preview": "include_directories(.)\n\n# Create programs.\nadd_executable(pm_ptest ptest.c io.c adaptgraph.c)\nadd_executable(pm_mtest mt"
  },
  {
    "path": "programs/adaptgraph.c",
    "chars": 4617,
    "preview": "/*\n * Copyright 1998, Regents of the University of Minnesota\n *\n * tstadpt.c\n * \n * This file contains code for testing "
  },
  {
    "path": "programs/dglpart.c",
    "chars": 46087,
    "preview": "/*\n * dglpart.c\n * \n * This file partitions a graph for use in DistDGL\n *\n * Started 12/31/2020\n * George\n *\n */\n\n#inclu"
  },
  {
    "path": "programs/io.c",
    "chars": 27873,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * pio.c\n *\n * This file contains routines related to I/"
  },
  {
    "path": "programs/mtest.c",
    "chars": 2701,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * main.c\n * \n * This file contains code for testing teh"
  },
  {
    "path": "programs/otest.c",
    "chars": 14967,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * main.c\n * \n * This file contains code for testing teh"
  },
  {
    "path": "programs/parmetis.c",
    "chars": 5891,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * main.c\n *\n * This is the entry point of the ILUT\n *\n "
  },
  {
    "path": "programs/parmetisbin.h",
    "chars": 579,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * par_metis.h\n *\n * This file includes all necessary he"
  },
  {
    "path": "programs/plotorder.pl",
    "chars": 809,
    "preview": "#!/usr/bin/perl\n\ndie \"Usage: plotorder.pl <graphfile> <orderfile> <sizesfile>\\n\" unless ($#ARGV == 2);\n\n$graphfile = shi"
  },
  {
    "path": "programs/pometis.c",
    "chars": 3225,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * pometis.c\n *\n * This is the entry point of the ILUT\n "
  },
  {
    "path": "programs/proto.h",
    "chars": 1553,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * proto.h\n *\n * This file contains header files\n *\n * S"
  },
  {
    "path": "programs/ptest.c",
    "chars": 15095,
    "preview": "/*\n * Copyright 1997, Regents of the University of Minnesota\n *\n * main.c\n * \n * This file contains code for testing teh"
  },
  {
    "path": "utils/listunescapedsymbols.csh",
    "chars": 121,
    "preview": "#!/bin/sh\n\nnm *.o | grep \" T \" | egrep -v '(parmetis|METIS|__)' | awk '{printf(\"#define %s libparmetis__%s\\n\",$3, $3)}'\n"
  }
]

About this extraction

This page contains the full source code of the KarypisLab/ParMETIS GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 78 files (22.5 MB), approximately 5.9M tokens, and a symbol index with 254 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!