140035bba:	48 83 78 08 01       	cmpq   $0x1,0x8(%rax)
140035bbf:	48 8b 18             	mov    (%rax),%rbx
140035bc2:	48 8b 1b             	mov    (%rbx),%rbx
140035bc5:	0f 84 c8 00 00 00    	je     0x140035c93
140035bcb:	0f 1f 44 00 00       	nopl   0x0(%rax,%rax,1)
140035bd0:	48 8b 0f             	mov    (%rdi),%rcx
140035bd3:	b2 22                	mov    $0x22,%dl
140035bd5:	48 8b 01             	mov    (%rcx),%rax
140035bd8:	ff 10                	call   *(%rax)
140035bda:	48 8d 53 20          	lea    0x20(%rbx),%rdx
140035bde:	45 33 c0             	xor    %r8d,%r8d
140035be1:	48 8b cf             	mov    %rdi,%rcx
140035be4:	e8 e7 0d 00 00       	call   0x1400369d0
140035be9:	48 8b 0f             	mov    (%rdi),%rcx
140035bec:	48 8d 15 55 dc 02 00 	lea    0x2dc55(%rip),%rdx        # 0x140063848
140035bf3:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140035bf9:	48 8b 01             	mov    (%rcx),%rax
140035bfc:	ff 50 08             	call   *0x8(%rax)
140035bff:	48 8d 53 40          	lea    0x40(%rbx),%rdx
140035c03:	44 89 74 24 28       	mov    %r14d,0x28(%rsp)
140035c08:	45 33 c9             	xor    %r9d,%r9d
140035c0b:	44 89 7c 24 20       	mov    %r15d,0x20(%rsp)
140035c10:	45 33 c0             	xor    %r8d,%r8d
140035c13:	48 8b cf             	mov    %rdi,%rcx
140035c16:	e8 15 fd ff ff       	call   0x140035930
140035c1b:	48 8b 0f             	mov    (%rdi),%rcx
140035c1e:	b2 2c                	mov    $0x2c,%dl
140035c20:	48 8b 01             	mov    (%rcx),%rax
140035c23:	ff 10                	call   *(%rax)
140035c25:	48 8b 43 10          	mov    0x10(%rbx),%rax
140035c29:	48 ff c5             	inc    %rbp
140035c2c:	80 78 19 00          	cmpb   $0x0,0x19(%rax)
140035c30:	74 26                	je     0x140035c58
140035c32:	48 8b 43 08          	mov    0x8(%rbx),%rax
140035c36:	80 78 19 00          	cmpb   $0x0,0x19(%rax)
140035c3a:	75 17                	jne    0x140035c53
140035c3c:	0f 1f 40 00          	nopl   0x0(%rax)
140035c40:	48 3b 58 10          	cmp    0x10(%rax),%rbx
140035c44:	75 0d                	jne    0x140035c53
140035c46:	48 8b d8             	mov    %rax,%rbx
140035c49:	48 8b 40 08          	mov    0x8(%rax),%rax
140035c4d:	80 78 19 00          	cmpb   $0x0,0x19(%rax)
140035c51:	74 ed                	je     0x140035c40
140035c53:	48 8b d8             	mov    %rax,%rbx
140035c56:	eb 27                	jmp    0x140035c7f
140035c58:	48 8b 08             	mov    (%rax),%rcx
140035c5b:	48 8b d8             	mov    %rax,%rbx
140035c5e:	80 79 19 00          	cmpb   $0x0,0x19(%rcx)
140035c62:	75 1b                	jne    0x140035c7f
140035c64:	0f 1f 40 00          	nopl   0x0(%rax)
140035c68:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
140035c6f:	00
140035c70:	48 8b 01             	mov    (%rcx),%rax
140035c73:	48 8b d9             	mov    %rcx,%rbx
140035c76:	48 8b c8             	mov    %rax,%rcx
140035c79:	80 78 19 00          	cmpb   $0x0,0x19(%rax)
140035c7d:	74 f1                	je     0x140035c70
140035c7f:	48 8b 46 08          	mov    0x8(%rsi),%rax
140035c83:	48 8b 48 08          	mov    0x8(%rax),%rcx
140035c87:	48 ff c9             	dec    %rcx
140035c8a:	48 3b e9             	cmp    %rcx,%rbp
140035c8d:	0f 82 3d ff ff ff    	jb     0x140035bd0
140035c93:	48 8b 0f             	mov    (%rdi),%rcx
140035c96:	b2 22                	mov    $0x22,%dl
140035c98:	48 8b 01             	mov    (%rcx),%rax
140035c9b:	ff 10                	call   *(%rax)
140035c9d:	48 8d 53 20          	lea    0x20(%rbx),%rdx
140035ca1:	45 33 c0             	xor    %r8d,%r8d
140035ca4:	48 8b cf             	mov    %rdi,%rcx
140035ca7:	e8 24 0d 00 00       	call   0x1400369d0
140035cac:	48 8b 0f             	mov    (%rdi),%rcx
140035caf:	48 8d 15 92 db 02 00 	lea    0x2db92(%rip),%rdx        # 0x140063848
140035cb6:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140035cbc:	48 8b 01             	mov    (%rcx),%rax
140035cbf:	ff 50 08             	call   *0x8(%rax)
140035cc2:	48 8d 53 40          	lea    0x40(%rbx),%rdx
140035cc6:	44 89 74 24 28       	mov    %r14d,0x28(%rsp)
140035ccb:	45 33 c9             	xor    %r9d,%r9d
140035cce:	44 89 7c 24 20       	mov    %r15d,0x20(%rsp)
140035cd3:	45 33 c0             	xor    %r8d,%r8d
140035cd6:	48 8b cf             	mov    %rdi,%rcx
140035cd9:	e8 52 fc ff ff       	call   0x140035930
140035cde:	48 8b 0f             	mov    (%rdi),%rcx
140035ce1:	b2 7d                	mov    $0x7d,%dl
140035ce3:	48 8b 01             	mov    (%rcx),%rax
140035ce6:	ff 10                	call   *(%rax)
140035ce8:	e9 76 05 00 00       	jmp    0x140036263
140035ced:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
140035cf1:	4c 8b 0f             	mov    (%rdi),%r9
140035cf4:	48 8b 41 08          	mov    0x8(%rcx),%rax
140035cf8:	48 39 01             	cmp    %rax,(%rcx)
140035cfb:	49 8b c9             	mov    %r9,%rcx
140035cfe:	49 8b 01             	mov    (%r9),%rax
140035d01:	75 15                	jne    0x140035d18
140035d03:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140035d09:	48 8d 15 3c db 02 00 	lea    0x2db3c(%rip),%rdx        # 0x14006384c
140035d10:	ff 50 08             	call   *0x8(%rax)
140035d13:	e9 4b 05 00 00       	jmp    0x140036263
140035d18:	45 84 c0             	test   %r8b,%r8b
140035d1b:	0f 84 9f 01 00 00    	je     0x140035ec0
140035d21:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140035d27:	48 8d 15 22 db 02 00 	lea    0x2db22(%rip),%rdx        # 0x140063850
140035d2e:	ff 50 08             	call   *0x8(%rax)
140035d31:	44 8b a4 24 10 01 00 	mov    0x110(%rsp),%r12d
140035d38:	00
140035d39:	44 8b ac 24 18 01 00 	mov    0x118(%rsp),%r13d
140035d40:	00
140035d41:	48 8b 97 70 02 00 00 	mov    0x270(%rdi),%rdx
140035d48:	47 8d 3c 2c          	lea    (%r12,%r13,1),%r15d
140035d4c:	41 8b c7             	mov    %r15d,%eax
140035d4f:	48 3b d0             	cmp    %rax,%rdx
140035d52:	73 75                	jae    0x140035dc9
140035d54:	48 8d 8f 60 02 00 00 	lea    0x260(%rdi),%rcx
140035d5b:	48 03 d2             	add    %rdx,%rdx
140035d5e:	4c 8b 41 10          	mov    0x10(%rcx),%r8
140035d62:	4c 8d 49 10          	lea    0x10(%rcx),%r9
140035d66:	49 3b d0             	cmp    %r8,%rdx
140035d69:	77 13                	ja     0x140035d7e
140035d6b:	48 83 79 18 0f       	cmpq   $0xf,0x18(%rcx)
140035d70:	76 03                	jbe    0x140035d75
140035d72:	48 8b 09             	mov    (%rcx),%rcx
140035d75:	49 89 11             	mov    %rdx,(%r9)
140035d78:	c6 04 0a 00          	movb   $0x0,(%rdx,%rcx,1)
140035d7c:	eb 4b                	jmp    0x140035dc9
140035d7e:	4c 8b 51 18          	mov    0x18(%rcx),%r10
140035d82:	48 8b ea             	mov    %rdx,%rbp
140035d85:	49 8b c2             	mov    %r10,%rax
140035d88:	49 2b e8             	sub    %r8,%rbp
140035d8b:	49 2b c0             	sub    %r8,%rax
140035d8e:	48 3b e8             	cmp    %rax,%rbp
140035d91:	77 26                	ja     0x140035db9
140035d93:	49 89 11             	mov    %rdx,(%r9)
140035d96:	49 83 fa 0f          	cmp    $0xf,%r10
140035d9a:	76 03                	jbe    0x140035d9f
140035d9c:	48 8b 09             	mov    (%rcx),%rcx
140035d9f:	49 8d 1c 08          	lea    (%r8,%rcx,1),%rbx
140035da3:	ba 20 00 00 00       	mov    $0x20,%edx
140035da8:	48 8b cb             	mov    %rbx,%rcx
140035dab:	4c 8b c5             	mov    %rbp,%r8
140035dae:	e8 f7 49 02 00       	call   0x14005a7aa
140035db3:	c6 04 2b 00          	movb   $0x0,(%rbx,%rbp,1)
140035db7:	eb 10                	jmp    0x140035dc9
140035db9:	4c 8b cd             	mov    %rbp,%r9
140035dbc:	c6 44 24 20 20       	movb   $0x20,0x20(%rsp)
140035dc1:	48 8b d5             	mov    %rbp,%rdx
140035dc4:	e8 d7 e6 fe ff       	call   0x1400244a0
140035dc9:	48 8b 46 08          	mov    0x8(%rsi),%rax
140035dcd:	48 8b 48 08          	mov    0x8(%rax),%rcx
140035dd1:	48 8b 18             	mov    (%rax),%rbx
140035dd4:	48 83 e9 10          	sub    $0x10,%rcx
140035dd8:	48 3b d9             	cmp    %rcx,%rbx
140035ddb:	74 6d                	je     0x140035e4a
140035ddd:	41 8b ef             	mov    %r15d,%ebp
140035de0:	48 83 bf 78 02 00 00 	cmpq   $0xf,0x278(%rdi)
140035de7:	0f
140035de8:	48 8d 97 60 02 00 00 	lea    0x260(%rdi),%rdx
140035def:	48 8b 0f             	mov    (%rdi),%rcx
140035df2:	48 8b 01             	mov    (%rcx),%rax
140035df5:	76 07                	jbe    0x140035dfe
140035df7:	48 8b 97 60 02 00 00 	mov    0x260(%rdi),%rdx
140035dfe:	4c 8b c5             	mov    %rbp,%r8
140035e01:	ff 50 08             	call   *0x8(%rax)
140035e04:	45 33 c9             	xor    %r9d,%r9d
140035e07:	44 89 7c 24 28       	mov    %r15d,0x28(%rsp)
140035e0c:	41 b0 01             	mov    $0x1,%r8b
140035e0f:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
140035e14:	48 8b d3             	mov    %rbx,%rdx
140035e17:	48 8b cf             	mov    %rdi,%rcx
140035e1a:	e8 11 fb ff ff       	call   0x140035930
140035e1f:	48 8b 0f             	mov    (%rdi),%rcx
140035e22:	48 8d 15 1b da 02 00 	lea    0x2da1b(%rip),%rdx        # 0x140063844
140035e29:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140035e2f:	48 8b 01             	mov    (%rcx),%rax
140035e32:	ff 50 08             	call   *0x8(%rax)
140035e35:	48 8b 46 08          	mov    0x8(%rsi),%rax
140035e39:	48 83 c3 10          	add    $0x10,%rbx
140035e3d:	48 8b 40 08          	mov    0x8(%rax),%rax
140035e41:	48 83 e8 10          	sub    $0x10,%rax
140035e45:	48 3b d8             	cmp    %rax,%rbx
140035e48:	75 96                	jne    0x140035de0
140035e4a:	48 8b 0f             	mov    (%rdi),%rcx
140035e4d:	48 8d 9f 60 02 00 00 	lea    0x260(%rdi),%rbx
140035e54:	48 83 7b 18 0f       	cmpq   $0xf,0x18(%rbx)
140035e59:	48 8b d3             	mov    %rbx,%rdx
140035e5c:	48 8b 01             	mov    (%rcx),%rax
140035e5f:	76 03                	jbe    0x140035e64
140035e61:	48 8b 13             	mov    (%rbx),%rdx
140035e64:	45 8b c7             	mov    %r15d,%r8d
140035e67:	ff 50 08             	call   *0x8(%rax)
140035e6a:	48 8b 46 08          	mov    0x8(%rsi),%rax
140035e6e:	45 33 c9             	xor    %r9d,%r9d
140035e71:	44 89 7c 24 28       	mov    %r15d,0x28(%rsp)
140035e76:	41 b0 01             	mov    $0x1,%r8b
140035e79:	48 8b cf             	mov    %rdi,%rcx
140035e7c:	44 89 64 24 20       	mov    %r12d,0x20(%rsp)
140035e81:	48 8b 50 08          	mov    0x8(%rax),%rdx
140035e85:	48 83 ea 10          	sub    $0x10,%rdx
140035e89:	e8 a2 fa ff ff       	call   0x140035930
140035e8e:	48 8b 0f             	mov    (%rdi),%rcx
140035e91:	b2 0a                	mov    $0xa,%dl
140035e93:	48 8b 01             	mov    (%rcx),%rax
140035e96:	ff 10                	call   *(%rax)
140035e98:	48 83 7b 18 0f       	cmpq   $0xf,0x18(%rbx)
140035e9d:	48 8b 0f             	mov    (%rdi),%rcx
140035ea0:	48 8b 01             	mov    (%rcx),%rax
140035ea3:	76 03                	jbe    0x140035ea8
140035ea5:	48 8b 1b             	mov    (%rbx),%rbx
140035ea8:	4d 8b c5             	mov    %r13,%r8
140035eab:	48 8b d3             	mov    %rbx,%rdx
140035eae:	ff 50 08             	call   *0x8(%rax)
140035eb1:	48 8b 0f             	mov    (%rdi),%rcx
140035eb4:	b2 5d                	mov    $0x5d,%dl
140035eb6:	48 8b 01             	mov    (%rcx),%rax
140035eb9:	ff 10                	call   *(%rax)
140035ebb:	e9 a3 03 00 00       	jmp    0x140036263
140035ec0:	b2 5b                	mov    $0x5b,%dl
140035ec2:	ff 10                	call   *(%rax)
140035ec4:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140035ec8:	8b ac 24 18 01 00 00 	mov    0x118(%rsp),%ebp
140035ecf:	44 8b b4 24 10 01 00 	mov    0x110(%rsp),%r14d
140035ed6:	00
140035ed7:	48 8b 42 08          	mov    0x8(%rdx),%rax
140035edb:	48 8b 1a             	mov    (%rdx),%rbx
140035ede:	48 83 e8 10          	sub    $0x10,%rax
140035ee2:	48 3b d8             	cmp    %rax,%rbx
140035ee5:	74 42                	je     0x140035f29
140035ee7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
140035eee:	00 00
140035ef0:	89 6c 24 28          	mov    %ebp,0x28(%rsp)
140035ef4:	45 33 c9             	xor    %r9d,%r9d
140035ef7:	45 33 c0             	xor    %r8d,%r8d
140035efa:	44 89 74 24 20       	mov    %r14d,0x20(%rsp)
140035eff:	48 8b d3             	mov    %rbx,%rdx
140035f02:	48 8b cf             	mov    %rdi,%rcx
140035f05:	e8 26 fa ff ff       	call   0x140035930
140035f0a:	48 8b 0f             	mov    (%rdi),%rcx
140035f0d:	b2 2c                	mov    $0x2c,%dl
140035f0f:	48 8b 01             	mov    (%rcx),%rax
140035f12:	ff 10                	call   *(%rax)
140035f14:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140035f18:	48 83 c3 10          	add    $0x10,%rbx
140035f1c:	48 8b 42 08          	mov    0x8(%rdx),%rax
140035f20:	48 83 e8 10          	sub    $0x10,%rax
140035f24:	48 3b d8             	cmp    %rax,%rbx
140035f27:	75 c7                	jne    0x140035ef0
140035f29:	48 8b 52 08          	mov    0x8(%rdx),%rdx
140035f2d:	45 33 c9             	xor    %r9d,%r9d
140035f30:	48 83 ea 10          	sub    $0x10,%rdx
140035f34:	89 6c 24 28          	mov    %ebp,0x28(%rsp)
140035f38:	45 33 c0             	xor    %r8d,%r8d
140035f3b:	44 89 74 24 20       	mov    %r14d,0x20(%rsp)
140035f40:	48 8b cf             	mov    %rdi,%rcx
140035f43:	e8 e8 f9 ff ff       	call   0x140035930
140035f48:	48 8b 0f             	mov    (%rdi),%rcx
140035f4b:	b2 5d                	mov    $0x5d,%dl
140035f4d:	48 8b 01             	mov    (%rcx),%rax
140035f50:	ff 10                	call   *(%rax)
140035f52:	e9 0c 03 00 00       	jmp    0x140036263
140035f57:	48 8b 0f             	mov    (%rdi),%rcx
140035f5a:	b2 22                	mov    $0x22,%dl
140035f5c:	48 8b 01             	mov    (%rcx),%rax
140035f5f:	ff 10                	call   *(%rax)
140035f61:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140035f65:	45 33 c0             	xor    %r8d,%r8d
140035f68:	48 8b cf             	mov    %rdi,%rcx
140035f6b:	e8 60 0a 00 00       	call   0x1400369d0
140035f70:	48 8b 0f             	mov    (%rdi),%rcx
140035f73:	b2 22                	mov    $0x22,%dl
140035f75:	48 8b 01             	mov    (%rcx),%rax
140035f78:	ff 10                	call   *(%rax)
140035f7a:	e9 e4 02 00 00       	jmp    0x140036263
140035f7f:	48 8b 0f             	mov    (%rdi),%rcx
140035f82:	48 8b 01             	mov    (%rcx),%rax
140035f85:	4c 8b 48 08          	mov    0x8(%rax),%r9
140035f89:	45 84 c0             	test   %r8b,%r8b
140035f8c:	0f 84 7f 01 00 00    	je     0x140036111
140035f92:	41 b8 02 00 00 00    	mov    $0x2,%r8d
140035f98:	48 8d 15 9d d8 02 00 	lea    0x2d89d(%rip),%rdx        # 0x14006383c
140035f9f:	41 ff d1             	call   *%r9
140035fa2:	44 8b b4 24 18 01 00 	mov    0x118(%rsp),%r14d
140035fa9:	00
140035faa:	8b ac 24 10 01 00 00 	mov    0x110(%rsp),%ebp
140035fb1:	48 8b 97 70 02 00 00 	mov    0x270(%rdi),%rdx
140035fb8:	41 03 ee             	add    %r14d,%ebp
140035fbb:	8b dd                	mov    %ebp,%ebx
140035fbd:	48 3b d3             	cmp    %rbx,%rdx
140035fc0:	73 12                	jae    0x140035fd4
140035fc2:	48 8d 8f 60 02 00 00 	lea    0x260(%rdi),%rcx
140035fc9:	48 03 d2             	add    %rdx,%rdx
140035fcc:	41 b0 20             	mov    $0x20,%r8b
140035fcf:	e8 4c cf fe ff       	call   0x140022f20
140035fd4:	48 8b 0f             	mov    (%rdi),%rcx
140035fd7:	48 8d 97 60 02 00 00 	lea    0x260(%rdi),%rdx
140035fde:	48 83 7a 18 0f       	cmpq   $0xf,0x18(%rdx)
140035fe3:	48 8b 01             	mov    (%rcx),%rax
140035fe6:	76 03                	jbe    0x140035feb
140035fe8:	48 8b 12             	mov    (%rdx),%rdx
140035feb:	4c 8b c3             	mov    %rbx,%r8
140035fee:	ff 50 08             	call   *0x8(%rax)
140035ff1:	48 8b 0f             	mov    (%rdi),%rcx
140035ff4:	48 8d 15 5d d8 02 00 	lea    0x2d85d(%rip),%rdx        # 0x140063858
140035ffb:	41 b8 0a 00 00 00    	mov    $0xa,%r8d
140036001:	48 8b 01             	mov    (%rcx),%rax
140036004:	ff 50 08             	call   *0x8(%rax)
140036007:	48 8b 56 08          	mov    0x8(%rsi),%rdx
14003600b:	48 8b 1a             	mov    (%rdx),%rbx
14003600e:	48 8b 42 08          	mov    0x8(%rdx),%rax
140036012:	48 3b d8             	cmp    %rax,%rbx
140036015:	74 4d                	je     0x140036064
140036017:	48 ff c8             	dec    %rax
14003601a:	48 3b d8             	cmp    %rax,%rbx
14003601d:	74 35                	je     0x140036054
14003601f:	90                   	nop
140036020:	0f b6 13             	movzbl (%rbx),%edx
140036023:	48 8b cf             	mov    %rdi,%rcx
140036026:	e8 b5 13 00 00       	call   0x1400373e0
14003602b:	48 8b 0f             	mov    (%rdi),%rcx
14003602e:	48 8d 15 2f d8 02 00 	lea    0x2d82f(%rip),%rdx        # 0x140063864
140036035:	41 b8 02 00 00 00    	mov    $0x2,%r8d
14003603b:	48 8b 01             	mov    (%rcx),%rax
14003603e:	ff 50 08             	call   *0x8(%rax)
140036041:	48 8b 56 08          	mov    0x8(%rsi),%rdx
140036045:	48 ff c3             	inc    %rbx
140036048:	48 8b 42 08          	mov    0x8(%rdx),%rax
14003604c:	48 ff c8             	dec    %rax
14003604f:	48 3b d8             	cmp    %rax,%rbx
140036052:	75 cc                	jne    0x140036020
140036054:	48 8b 52 08          	mov    0x8(%rdx),%rdx
140036058:	48 8b cf             	mov    %rdi,%rcx
14003605b:	0f b6 52 ff          	movzbl -0x1(%rdx),%edx
14003605f:	e8 7c 13 00 00       	call   0x1400373e0
140036064:	48 8b 0f             	mov    (%rdi),%rcx
140036067:	48 8d 15 fa d7 02 00 	lea    0x2d7fa(%rip),%rdx        # 0x140063868
14003606e:	41 b8 03 00 00 00    	mov    $0x3,%r8d
140036074:	48 8b 01             	mov    (%rcx),%rax
140036077:	ff 50 08             	call   *0x8(%rax)
14003607a:	48 8b 0f             	mov    (%rdi),%rcx
14003607d:	48 8d 97 60 02 00 00 	lea    0x260(%rdi),%rdx
140036084:	48 83 7a 18 0f       	cmpq   $0xf,0x18(%rdx)
140036089:	48 8b 01             	mov    (%rcx),%rax
14003608c:	76 03                	jbe    0x140036091
14003608e:	48 8b 12             	mov    (%rdx),%rdx
140036091:	44 8b c5             	mov    %ebp,%r8d
140036094:	ff 50 08             	call   *0x8(%rax)
140036097:	48 8b 0f             	mov    (%rdi),%rcx
14003609a:	48 8d 15 cf d7 02 00 	lea    0x2d7cf(%rip),%rdx        # 0x140063870
1400360a1:	41 b8 0b 00 00 00    	mov    $0xb,%r8d
1400360a7:	48 8b 01             	mov    (%rcx),%rax
1400360aa:	ff 50 08             	call   *0x8(%rax)
1400360ad:	48 8b 56 08          	mov    0x8(%rsi),%rdx