Tasks not implemented in AWK
Appearance
Awareness
If AWK is a language you like, or are interested in, please inform your fellow members of the AWK community; this page can't be emptied without your and their participation.
If AWK is a language you like, or are interested in, please inform your fellow members of the AWK community; this page can't be emptied without your and their participation.
Tasks not implemented in AWK
1
2
9
A
- ADFGVX cipher
- AKS test for primes
- ASCII art diagram converter
- AVL tree
- Abbreviations, simple
- Abelian sandpile model
- Abelian sandpile model/Identity
- Accumulator factory
- Achilles numbers
- Algebraic data types
- Almkvist-Giullera formula for pi
- Amb
- Anagram generator
- Anaprimes
- Animate a pendulum
- Animated Spinners
- Anonymous recursion
- Apply a digital filter (direct form II transposed)
- Apéry's constant
- Arena storage pool
- Arithmetic derivative
- Arithmetic evaluation
- Arithmetic numbers
- Arithmetic-geometric mean/Calculate Pi
- Arithmetic/Rational
- Autogram checker
- Average loop length
B
- Babylonian spiral
- Balanced ternary
- Barnsley fern
- Base64 decode data
- Bell numbers
- Bernoulli numbers
- Bernstein basis polynomials
- Bifid cipher
- Bin given limits
- Binomial transform
- Bioinformatics/Global alignment
- Bioinformatics/Sequence mutation
- Biorhythms
- Bitcoin/address validation
- Bitcoin/public point to address
- Bitmap/PPM conversion through a pipe
- Bitmap/Read an image through a pipe
- Blum integer
- Boustrophedon transform
- Boyer-Moore string search
- Brace expansion
- Brilliant numbers
- Bron–Kerbosch algorithm
- Brownian tree
- Bulls and cows/Player
- Burrows–Wheeler transform
- Bézier curves/Intersections
C
- CRC-32
- Calendar - for "REAL" programmers
- Calkin-Wilf sequence
- Call a foreign-language function
- Call a function in a shared library
- Camel case and snake case
- Canny edge detector
- Canonicalize CIDR
- Cartesian product of two or more lists
- Catamorphism
- Catmull–Clark subdivision surface
- Centre and radius of a circle passing through 3 points in a plane
- Chaocipher
- Chaos game
- Chat server
- Check Machin-like formulas
- Check if a polygon overlaps with a rectangle
- Check if two polygons overlap
- Check input device is a terminal
- Check output device is a terminal
- Checkpoint synchronization
- Chernick's Carmichael numbers
- Cholesky decomposition
- Church numerals
- Closures/Value capture
- Color wheel
- Colorful numbers
- Combinations and permutations
- Commatizing numbers
- Compare sorting algorithms' performance
- Compiler/AST interpreter
- Composite numbers k with no single digit factors whose factors are all substrings of k
- Conjugate transpose
- Consecutive primes with ascending or descending differences
- Constrained genericity
- Constrained random points on a circle
- Continued fraction
- Continued fraction/Arithmetic/Construct from rational number
- Continued fraction/Arithmetic/G(matrix ng, continued fraction n)
- Continued fraction/Arithmetic/G(matrix ng, continued fraction n1, continued fraction n2)
- Convert decimal number to rational
- Convex hull
- Cramer's rule
- Cuban primes
- Currying
- Curzon numbers
- Cut a rectangle
- Cycles of a permutation
- Cyclotomic polynomial
D
- DNS query
- Dating agency
- De Bruijn sequences
- De Polignac numbers
- Deal cards for FreeCell
- Deconvolution/1D
- Deconvolution/2D+
- Decorate-sort-undecorate idiom
- Deming's funnel
- Determinant and permanent
- Determine if only one instance is running
- Determine if two triangles overlap
- Dice game probabilities
- Dining philosophers
- Display a linear combination
- Display an outline as a nested table
- Distance and Bearing
- Distributed programming
- Distribution of 0 digits in factorial series
- Diversity prediction theorem
- Documentation
- Dominoes
- Doomsday rule
- Doubly-linked list/Definition
- Doubly-linked list/Element definition
- Doubly-linked list/Element insertion
- Doubly-linked list/Traversal
- Draw a pixel
- Draw a rotating cube
- Duffinian numbers
E
- EKG sequence convergence
- Earliest difference between prime gaps
- Echo server
- Eertree
- Egyptian division
- Element-wise operations
- Elementary cellular automaton
- Elementary cellular automaton/Infinite length
- Elementary cellular automaton/Random number generator
- Elliptic Curve Digital Signature Algorithm
- Elliptic curve arithmetic
- Engel expansion
- Equal prime and composite sums
- Erdös-Selfridge categorization of primes
- Erdős-Nicolas numbers
- Esthetic numbers
- Euclidean rhythm
- Euler method
- Euler's constant 0.5772...
- Euler's identity
- Events
- Exceptions
- Exceptions/Catch an exception thrown in a nested call
- Executable library
- Execute Computer/Zero
- Execute HQ9+
- Execute SNUSP
- Execute a Markov algorithm
- Extend your language
- Extensible prime generator
F
- FTP
- Faces from a mesh
- Factorial base numbers indexing permutations of a collection
- Factorial primes
- Factorize string into Lyndon words
- Factors of a Mersenne number
- Fairshare between two and more
- Fast Fourier transform
- Faulhaber's formula
- Faulhaber's triangle
- Fermat numbers
- Fermat pseudoprimes
- Fibonacci word
- Fibonacci word/fractal
- File size distribution
- Find Chess960 starting position identifier
- Find duplicate files
- Find if a point is within a triangle
- Find largest left truncatable prime in a given base
- Find palindromic numbers in both binary and ternary bases
- Find the intersection of a line with a plane
- First class environments
- First perfect square in base n with n unique digits
- First power of 2 that has leading decimal digits of 12
- Fivenum
- Flatten a list
- Flipping bits game
- Floyd-Warshall algorithm
- Forest fire
- Fork
- Formal power series
- Fortunate numbers
- Four bit adder
- Four is the number of letters in the ...
- Fractal tree
- Fraction reduction
- Fractran
- French Republican calendar
- Function composition
- Functional coverage tree
G
- GSTrans string conversion
- Galton box animation
- Gauss-Jordan matrix inversion
- Gaussian elimination
- Gaussian primes
- Generate Chess960 starting position
- Generate random chess position
- Generator/Exponential
- Go Fish
- Golden ratio/Convergence
- Gotchas
- Graph colouring
- Greatest prime dividing the n-th cubefree number
- Greedy algorithm for Egyptian fractions
- Guess the number/With feedback (player)
H
- HTTPS
- HTTPS/Authenticated
- HTTPS/Client-authenticated
- Handle a signal
- Harriss Spiral
- Hashtron inference
- Heronian triangles
- Hex dump
- Higher-order functions
- Hilbert curve
- Holidays related to Easter
- Home primes
- Honaker primes
- Horse racing
- Host introspection
- Hough transform
- Huffman coding
- Hunt the Wumpus
I
- I'm a software engineer, get me out of here
- Idoneal numbers
- Image convolution
- Imaginary base numbers
- Inconsummate numbers in base 10
- Index finite lists of positive integers
- Inner classes
- Integer overflow
- Interactive programming (repl)
- Intersecting number wheels
- Inventory sequence
- Inverted index
- Isograms and heterograms
- Isqrt (integer square root) of X
J
- JSON
- JSON pointer
- Jacobsthal numbers
- Jaro-Winkler distance
- Jordan-Pólya numbers
- JortSort
- Juggler sequence
K
- K-d tree
- K-means++ clustering
- Keyboard macros
- Knapsack problem/Bounded
- Knapsack problem/Unbounded
- Knuth's algorithm S
- Knuth's power tree
- Koch curve
- Kolakoski sequence
- Kosaraju
- Kronecker product based fractals
L
- LU decomposition
- Last letter-first letter
- Latin Squares in reduced form
- Least m such that n! + m is prime
- Legendre prime counting function
- Levenshtein distance/Alignment
- Linear congruential generator
- List comprehensions
- List rooted trees
- Logistic curve fitting in epidemiology
- Long primes
- Longest common subsequence
- Longest common substring
- Longest increasing subsequence
- Lucky and even lucky numbers
- Ludic numbers
- Lychrel numbers
- Lyndon word
M
- MAC vendor lookup
- MD4
- MD5
- MD5/Implementation
- Machine code
- Magic squares of singly even order
- Main step of GOST 28147-89
- Man or boy test
- Mastermind
- Matrix chain multiplication
- Matrix digital rain
- Matrix-exponentiation operator
- Mayan calendar
- Mayan numerals
- Maze solving
- Median filter
- Meissel–Mertens constant
- Mertens function
- Metallic ratios
- Metered concurrency
- Miller–Rabin primality test
- Mind boggling card trick
- Minesweeper game
- Minimal steps down to 1
- Minimum positive multiple in base 10 using only 0 and 1
- Minkowski question-mark function
- Modified random distribution
- Modular arithmetic
- Modular exponentiation
- Monads/List monad
- Monads/Maybe monad
- Monads/Writer monad
- Move-to-front algorithm
- Multi-base primes
- Multi-dimensional array
- Multiple distinct objects
- Multiple regression
- Multiplicative order
- Musical scale
- Mutex
N
- N-smooth numbers
- Named parameters
- Narcissist
- Natural sorting
- Negative base numbers
- Nested function
- Nested templated data
- Next highest int from digits
- Non-continuous subsequences
- Non-decimal radices/Input
- Non-transitive dice
- Nonoblock
- Nonogram solver
- Numbers k such that the last letter of k is the same as the first letter of k+1
- Numbers which are not the sum of distinct squares
- Numbers which are the cube roots of the product of their proper divisors
- Numeric error propagation
- Numerical and alphabetical suffixes
- Numerical integration
- Numerical integration/Gauss-Legendre Quadrature
O
- O'Halloran numbers
- Odd word problem
- One-time pad
- OpenWebNet password
- Optional parameters
- Order by pair comparisons
- Order disjoint list items
- Ordered partitions
- Ormiston pairs
- Ormiston triples
- Own digits power sum
P
- P-Adic numbers, basic
- P-Adic square roots
- P-value correction
- Padovan n-step number sequences
- Padovan sequence
- Pairs with common factors
- Palindromic gapful numbers
- Pan base non-primes
- Paraffins
- Parallel brute force
- Parameterized SQL statement
- Parametric polymorphism
- Parse an IP Address
- Parsing/RPN calculator algorithm
- Parsing/Shunting-yard algorithm
- Partial function application
- Particle fountain
- Partition an integer x into n primes
- Partition function P
- Pascal matrix generation
- Pascal's triangle/Puzzle
- Peaceful chess queen armies
- Peano curve
- Pell numbers
- Pell's equation
- Penney's game
- Penta-power prime seeds
- Pentagram
- Pentomino tiling
- Percolation/Bond percolation
- Percolation/Mean cluster density
- Percolation/Mean run density
- Percolation/Site percolation
- Perfect shuffle
- Periodic table
- Peripheral drift illusion
- Perlin noise
- Permutations by swapping
- Permutations/Derangements
- Permutations/Rank of a permutation
- Pi
- Pierpont primes
- Pig the dice game/Player
- Pinstripe/Display
- Pinstripe/Printer
- Pisano period
- Play recorded sounds
- Playfair cipher
- Playing cards
- Plot coordinate pairs
- Pointers and references
- Poker hand analyser
- Polymorphism
- Polynomial long division
- Polyspiral
- Prime conspiracy
- Prime numbers whose neighboring pairs are tetraprimes
- Prime triangle
- Primes - allocate descendants to their ancestors
- Primes: n*2^m+1
- Primorial numbers
- Priority queue
- Problem of Apollonius
- Product of min and max prime factors
- Pseudo-random numbers/Combined recursive generator MRG32k3a
- Pseudo-random numbers/PCG32
- Pseudo-random numbers/Splitmix64
- Pseudo-random numbers/Xorshift star
- Pythagoras tree
Q
R
- RCRPG
- RIPEMD-160
- RPG attributes generator
- RSA code
- Radical of an integer
- Ramanujan primes/twins
- Ramanujan's constant
- Ramer-Douglas-Peucker line simplification
- Random Latin squares
- Random number generator (device)
- Random sentence from book
- Range consolidation
- Rare numbers
- Rate counter
- Ray-casting algorithm
- Reduced row echelon form
- Reflection/Get source
- Reflection/List methods
- Reflection/List properties
- Rendezvous
- Rep-string
- Repunit primes
- Resistor mesh
- Retrieve and search chat history
- Return multiple values
- Rhonda numbers
- Riordan numbers
- Rock-paper-scissors
- Roots of a function
- Roots of a quadratic function
- Rosetta Code/Count examples
- Rosetta Code/Find bare lang tags
- Rosetta Code/Find unimplemented tasks
- Rosetta Code/Fix code tags
- Rosetta Code/Rank languages by number of users
- Runtime evaluation
- Runtime evaluation/In an environment
- Ruth-Aaron numbers
S
- S-expressions
- SHA-1
- SHA-256 Merkle tree
- SOAP
- SQL-based authentication
- Safe addition
- Same fringe
- Sealed classes and methods
- Search a list of records
- Secure temporary file
- Selectively replace multiple instances of a character within a string
- Send an unknown method call
- Send email
- Sequence of primorial primes
- Sequence: nth number with exactly n divisors
- Set
- Set consolidation
- Set of real numbers
- Set puzzle
- Set right-adjacent bits
- Set, the card game
- Seven-sided dice from five-sided dice
- Shoelace formula for polygonal area
- Shortest common supersequence
- Sierpinski arrowhead curve
- Sierpinski pentagon
- Sierpinski square curve
- Sierpinski triangle/Graphical
- Sieve of Pritchard
- Simple database
- Simple turtle graphics
- Simulate input/Keyboard
- Singly-linked list/Element insertion
- Singly-linked list/Traversal
- Singular value decomposition
- Sisyphus sequence
- Sleeping Beauty problem
- Smallest number k such that k+2^m is composite for all m less than k
- Smarandache-Wellin primes
- Snake
- Sokoban
- Soloway's recurring rainfall
- Solve a Hidato puzzle
- Solve a Holy Knight's tour
- Solve a Hopido puzzle
- Solve a Numbrix puzzle
- Solve the no connection puzzle
- Sorensen–Dice coefficient
- Sort an outline at every level
- Sort disjoint sublist
- Sort three variables
- Sorting Algorithms/Circle Sort
- Sorting algorithms/Bead sort
- Sorting algorithms/Cocktail sort with shifting bounds
- Sorting algorithms/Counting sort
- Sorting algorithms/Heapsort
- Sorting algorithms/Merge sort
- Sorting algorithms/Pancake sort
- Sorting algorithms/Patience sort
- Sorting algorithms/Permutation sort
- Sorting algorithms/Radix sort
- Sorting algorithms/Sleep sort
- Sorting algorithms/Stooge sort
- Sorting algorithms/Strand sort
- Sparkline in unicode
- Speech synthesis
- Spelling of ordinal numbers
- Sphenic numbers
- Square form factorization
- Stable marriage problem
- State name puzzle
- Statistics/Basic
- Statistics/Normal distribution
- Steffensen's method
- Stern-Brocot sequence
- Stirling numbers of the first kind
- Stirling numbers of the second kind
- Straddling checkerboard
- Strassen's algorithm
- Sub-unit squares
- Substitution cipher
- Subtractive generator
- Suffixation of decimal numbers
- Summarize and say sequence
- Super-Poulet numbers
- Super-d numbers
- Superellipse
- Sutherland-Hodgman polygon clipping
- Sync subtitles
T
- Tarjan
- Terminal control/Coloured text
- Terminal control/Cursor movement
- Terminal control/Cursor positioning
- Terminal control/Dimensions
- Terminal control/Hiding the cursor
- Terminal control/Positional read
- Terminal control/Preserve screen
- Ternary logic
- Test a function
- The sieve of Sundaram
- Thiele's interpolation formula
- Time a function
- Tokenize a string with escaping
- Tonelli-Shanks algorithm
- Topic variable
- Topological sort
- Topswops
- Total circles area
- Transliterate English text using the Greek alphabet
- Tree datastructures
- Tree from nesting levels
- Tropical algebra overloading
- Truth table
- Tupper's self-referential formula
- Twelve statements
- Twin primes whose sum is square number
- Two bullet roulette
- Two's complement
U
- URL parser
- UTF-8 encode and decode
- Ukkonen’s suffix tree construction
- Ulam spiral (for primes)
- Ultra useful primes
- Unbias a random generator
- Undefined values
- Undulating numbers
- Universal Lambda Machine
- Universal Turing machine
- Unprimeable numbers
- Untouchable numbers
- Update a configuration file
- Use another language to call a function
V
- Variable-length quantity
- Variadic fixed-point combinator
- Vector
- Verhoeff algorithm
- Verify distribution uniformity/Chi-squared test
- Verify distribution uniformity/Naive
- Video display modes
- Vigenère cipher
- Vigenère cipher/Cryptanalysis
- Visualize a tree
- Vogel's approximation method
- Voronoi diagram
W
- Wagstaff primes
- Walk a directory/Recursively
- War card game
- Wasteful, equidigital and frugal numbers
- Weird numbers
- Wilson primes of order n
- Window creation
- Window management
- Wireworld
- Wolstenholme numbers
- Word ladder
- Word search
- Wordiff
- Wordle comparison
- World Cup group stage
- Worthwhile task shaving
X
Y
Z
- Zebra puzzle
- Zeckendorf arithmetic
- Zeckendorf number representation
- Zhang-Suen thinning algorithm
- Zsigmondy numbers
- Zumkeller numbers
Draft tasks not implemented in AWK
1
3
A
- A* search algorithm
- ABC incremental counts
- ASCII control characters
- Addition chains
- Addition-chain exponentiation
- Arithmetic coding/As a generalized change of radix
- Aspect oriented programming
- Assertions in design by contract
- Audio frequency generator
- Audio overlap loop
B
- B-spline
- Bacon cipher
- Banker's algorithm
- Base58Check encoding
- Base64 encode data
- Bilinear interpolation
- Binary coded decimal
- Bioinformatics/Subsequence
- Birthday problem
- Black box
- Blackjack strategy
- Boids
- Brace expansion using ranges
- Brzozowski algebraic method
C
- CLI-based maze-game
- CORDIC
- Calmo numbers
- CalmoSoft primes
- Card shuffles
- Carmichael lambda function
- Centroid of a set of N-dimensional points
- Chebyshev coefficients
- Checksumcolor
- Chemical calculator
- Chess player
- Cipolla's algorithm
- Color separation
- Combinations with repetitions/Square digit chain
- Compiler/Preprocessor
- Compiler/Verifying syntax
- Consistent overhead byte stuffing
- Continued fraction convergents
- Convert CSV records to TSV
- Coprime triplets
- Count the coins/0-1
- Countdown
- Create your own text control codes
- Cross compilation
- Curve that touches three points
- Cycle detection
D
- Data Encryption Standard
- Decimal floating point number to binary
- Diophantine linear system solving
- Discrete Fourier transform
- Distinct palindromes within decimal numbers
- Distinct power numbers
- Divide a rectangle into a number of unequal triangles
- Double Twin Primes
- Doubly-linked list/Element removal
- Draw pixel 2
E
- Eisenstein primes
- Elevator simulation
- English cardinal anagrams
- Erdős–Woods numbers
- Even numbers which cannot be expressed as the sum of two twin primes
- Execute CopyPasta Language
- Exponential digital sums
- Extended Straddling Checkerboard
- External sort
- Extreme primes
F
- Factor-perfect numbers
- Fibonacci heap
- Fibonacci matrix-exponentiation
- Find URI in text
- Find first and last set bit of a long integer
- Finite state machine
- Free polyominoes enumeration
G
- Generalised floating point addition
- Generalised floating point multiplication
- Geohash
- Geometric algebra
- Goodstein Sequence
- Gradient descent
- Greed
H
I
J
K
L
- L-system
- Lagrange Interpolation
- Latin Squares in reduced form/Randomizing using Jacobson and Matthews' technique
- Launch rocket with countdown and acceleration in stdout
- Line circle intersection
- Long stairs
- Longest palindromic substrings
- Longest substrings without repeating characters
- Lucas-Carmichael numbers
M
- Marching squares
- Markov chain text generator
- McNaughton-Yamada-Thompson algorithm
- Modulinos
- Montgomery reduction
- Morpion solitaire
- Most frequent k chars distance
- Multidimensional Newton-Raphson method
- Multiline shebang
- Multiplicatively perfect numbers
- Multiton
N
- N-body problem
- N-grams
- N-queens minimum and knights and bishops
- NYSIIS
- Names to numbers
- Native shebang
- Nimber arithmetic
- Number triplets game
O
P
- Pandigital prime
- Parse EBNF
- Particle swarm optimization
- Penholodigital squares
- Penrose tiling
- Perceptron
- Permutations with some identical elements
- Permuted multiples
- Polynomial derivative
- Polynomial synthetic division
- Posit numbers/decoding
- Posit numbers/encoding
- Powerful numbers
- Practical numbers
- Price list behind API
- Prime reciprocal sum
- Print debugging statement
- Print itself
- Process SMIL directives in XML data
- Protecting Memory Secrets
- Pseudorandom number generator image
R
- Railway circuit
- Rainbow
- Ramanujan primes
- Range modifications
- Raster bars
- Readline interface
- Recursive descent parser generator
- Red black tree sort
- Remote agent/Agent interface
- Remote agent/Agent logic
- Remote agent/Simulation
- Resistance calculator
- Resistance network calculator
- Reverse the gender of a string
- Rice coding
- Robots
- Rodrigues’ rotation formula
- Roots of a cubic polynomial
- Rosetta Code/List authors of task descriptions
- Rosetta Code/Run examples
- Rosetta Code/Tasks without examples
- Run as a daemon or service
S
- SEND + MORE = MONEY
- Sanitize user input
- Sattolo cycle
- Segmentation fault protection
- Selection bias in clinical sciences
- Self-hosting compiler
- Separate the house number from the street name
- Shape-Machine
- Sierpinski curve
- Simulated annealing
- Simulated optics experiment/Data analysis
- Simulated optics experiment/Simulator
- Sine wave
- Singly-linked list/Element removal
- Singly-linked list/Reversal
- Smallest enclosing circle problem
- Smallest multiple
- Smallest numbers
- Solve a Rubik's cube
- Solve hanging lantern problem
- Solve triangle solitaire puzzle
- Solving coin problems
- Sorting algorithms/Cycle sort
- Sorting algorithms/Tree sort on a linked list
- Special divisors
- Special factorials
- Spoof game
- Square root by hand
- Starting a web browser
- Statistics/Chi-squared distribution
- Sturmian word
- Subset sum problem
- Suffix tree
- Sum data type
- Sunflower fractal
- Szymański's algorithm
T
- Tamagotchi emulator
- Terminal control/Restricted width positional input/No wrapping
- Terminal control/Restricted width positional input/With wrapping
- Tetris
- Text completion
- Text to HTML
- The ISAAC cipher
- Three word location
- Time conventions and conversions
- Time-based one-time password algorithm
- Topological sort/Extracted top item
- Transportation problem
- Triangular numbers
U
- URL shortener
- Unit testing
- Uno (card game)
- Untrusted environment
- Upside-down numbers
- Use a REST API
- User defined pipe and redirection operators
- Using a speech engine to highlight words
V
W
- Walsh matrix
- Wave function collapse
- Waveform analysis/Top and tail
- Weather routing
- WebGL rotating F
- Welch's t-test
- WiktionaryDumps to words
- Word break problem
X
Tasks omitted from AWK
A
- Abstract type
- Active Directory/Connect
- Active Directory/Search for a user
- Active object
- Add a variable to a class instance at runtime
- Address of a variable
- Animation
- Arbitrary-precision integers (included)
- Atomic updates
B
- Bitmap
- Bitmap/Bresenham's line algorithm
- Bitmap/Bézier curves/Cubic
- Bitmap/Bézier curves/Quadratic
- Bitmap/Flood fill
- Bitmap/Histogram
- Bitmap/Midpoint circle algorithm
- Bitmap/Read a PPM file
- Bitwise IO
- Break OO privacy
C
- Call an object method
- Classes
- Code segment unload
- Color of a screen pixel
- Color quantization
- Colour pinstripe/Display
- Colour pinstripe/Printer
- Compile-time calculation
- Concurrent computing
- Create a file on magnetic tape
- Create an object at a given address
- Create an object/Native demonstration
D
E
F
G
- GUI component interaction
- GUI enabling/disabling of controls
- GUI/Maximum window dimensions
- Grayscale image
H
I
J
M
O
P
- Parallel calculations
- Percentage difference between images
- Polymorphic copy
- Pragmatic directives
- Proof
R
S
- Scope modifiers
- Simple windowed application
- Simulate input/Mouse
- Singleton
- Stack traces
- Synchronous concurrency
U
V
W
End of List
Again, feel free to try your hand at any of the tasks listed on this page.