1400ea595:	44 38 69 68          	cmp    %r13b,0x68(%rcx)
1400ea599:	75 04                	jne    0x1400ea59f
1400ea59b:	4d 89 2c 24          	mov    %r13,(%r12)
1400ea59f:	45 33 c0             	xor    %r8d,%r8d
1400ea5a2:	41 8d 50 08          	lea    0x8(%r8),%edx
1400ea5a6:	48 8d 4d b7          	lea    -0x49(%rbp),%rcx
1400ea5aa:	e8 e1 04 00 00       	call   0x1400eaa90
1400ea5af:	4c 89 6e 70          	mov    %r13,0x70(%rsi)
1400ea5b3:	4c 8b 45 a7          	mov    -0x59(%rbp),%r8
1400ea5b7:	4c 3b c3             	cmp    %rbx,%r8
1400ea5ba:	0f 84 d3 00 00 00    	je     0x1400ea693
1400ea5c0:	48 8d 7d b7          	lea    -0x49(%rbp),%rdi
1400ea5c4:	48 83 7d cf 08       	cmpq   $0x8,-0x31(%rbp)
1400ea5c9:	48 0f 43 7d b7       	cmovae -0x49(%rbp),%rdi
1400ea5ce:	48 8b 4e 08          	mov    0x8(%rsi),%rcx
1400ea5d2:	48 8b 45 c7          	mov    -0x39(%rbp),%rax
1400ea5d6:	48 8d 14 47          	lea    (%rdi,%rax,2),%rdx
1400ea5da:	48 8b 01             	mov    (%rcx),%rax
1400ea5dd:	4c 8d 4d af          	lea    -0x51(%rbp),%r9
1400ea5e1:	4c 89 4c 24 38       	mov    %r9,0x38(%rsp)
1400ea5e6:	48 89 54 24 30       	mov    %rdx,0x30(%rsp)
1400ea5eb:	48 89 7c 24 28       	mov    %rdi,0x28(%rsp)
1400ea5f0:	48 8d 55 a7          	lea    -0x59(%rbp),%rdx
1400ea5f4:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
1400ea5f9:	4c 8b cb             	mov    %rbx,%r9
1400ea5fc:	49 8b d4             	mov    %r12,%rdx
1400ea5ff:	ff 50 30             	call   *0x30(%rax)
1400ea602:	8b c8                	mov    %eax,%ecx
1400ea604:	85 c0                	test   %eax,%eax
1400ea606:	74 37                	je     0x1400ea63f
1400ea608:	83 e9 01             	sub    $0x1,%ecx
1400ea60b:	74 32                	je     0x1400ea63f
1400ea60d:	83 f9 02             	cmp    $0x2,%ecx
1400ea610:	0f 85 da 00 00 00    	jne    0x1400ea6f0
1400ea616:	4c 8b 45 a7          	mov    -0x59(%rbp),%r8
1400ea61a:	4c 3b c3             	cmp    %rbx,%r8
1400ea61d:	74 5c                	je     0x1400ea67b
1400ea61f:	90                   	nop
1400ea620:	41 0f b6 10          	movzbl (%r8),%edx
1400ea624:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1400ea628:	e8 73 02 00 00       	call   0x1400ea8a0
1400ea62d:	4c 8b 45 a7          	mov    -0x59(%rbp),%r8
1400ea631:	49 ff c0             	inc    %r8
1400ea634:	4c 89 45 a7          	mov    %r8,-0x59(%rbp)
1400ea638:	4c 3b c3             	cmp    %rbx,%r8
1400ea63b:	75 e3                	jne    0x1400ea620
1400ea63d:	eb 3c                	jmp    0x1400ea67b
1400ea63f:	4c 8b 45 af          	mov    -0x51(%rbp),%r8
1400ea643:	49 3b f8             	cmp    %r8,%rdi
1400ea646:	73 14                	jae    0x1400ea65c
1400ea648:	4c 2b c7             	sub    %rdi,%r8
1400ea64b:	49 d1 f8             	sar    $1,%r8
1400ea64e:	48 8b d7             	mov    %rdi,%rdx
1400ea651:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1400ea655:	e8 f6 1c fe ff       	call   0x1400cc350
1400ea65a:	eb 1b                	jmp    0x1400ea677
1400ea65c:	48 83 7d c7 10       	cmpq   $0x10,-0x39(%rbp)
1400ea661:	0f 83 91 00 00 00    	jae    0x1400ea6f8
1400ea667:	45 33 c0             	xor    %r8d,%r8d
1400ea66a:	41 8d 50 08          	lea    0x8(%r8),%edx
1400ea66e:	48 8d 4d b7          	lea    -0x49(%rbp),%rcx
1400ea672:	e8 19 04 00 00       	call   0x1400eaa90
1400ea677:	4c 8b 45 a7          	mov    -0x59(%rbp),%r8
1400ea67b:	49 8b c0             	mov    %r8,%rax
1400ea67e:	49 2b c7             	sub    %r15,%rax
1400ea681:	48 89 46 70          	mov    %rax,0x70(%rsi)
1400ea685:	4c 3b c3             	cmp    %rbx,%r8
1400ea688:	0f 85 32 ff ff ff    	jne    0x1400ea5c0
1400ea68e:	f3 0f 6f 75 e7       	movdqu -0x19(%rbp),%xmm6
1400ea693:	0f 10 45 d7          	movups -0x29(%rbp),%xmm0
1400ea697:	41 0f 11 06          	movups %xmm0,(%r14)
1400ea69b:	41 0f 11 76 10       	movups %xmm6,0x10(%r14)
1400ea6a0:	66 0f 6f 05 28 fb 19 	movdqa 0x19fb28(%rip),%xmm0        # 0x14028a1d0
1400ea6a7:	00
1400ea6a8:	f3 0f 7f 45 e7       	movdqu %xmm0,-0x19(%rbp)
1400ea6ad:	66 44 89 6d d7       	mov    %r13w,-0x29(%rbp)
1400ea6b2:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1400ea6b6:	e8 05 bb fd ff       	call   0x1400c61c0
1400ea6bb:	90                   	nop
1400ea6bc:	48 8d 4d b7          	lea    -0x49(%rbp),%rcx
1400ea6c0:	e8 fb ba fd ff       	call   0x1400c61c0
1400ea6c5:	49 8b c6             	mov    %r14,%rax
1400ea6c8:	48 8b 4d f7          	mov    -0x9(%rbp),%rcx
1400ea6cc:	48 33 cc             	xor    %rsp,%rcx
1400ea6cf:	e8 fc bb 09 00       	call   0x1401862d0
1400ea6d4:	0f 28 b4 24 a0 00 00 	movaps 0xa0(%rsp),%xmm6
1400ea6db:	00
1400ea6dc:	48 81 c4 b8 00 00 00 	add    $0xb8,%rsp
1400ea6e3:	41 5f                	pop    %r15
1400ea6e5:	41 5e                	pop    %r14
1400ea6e7:	41 5d                	pop    %r13
1400ea6e9:	41 5c                	pop    %r12
1400ea6eb:	5f                   	pop    %rdi
1400ea6ec:	5e                   	pop    %rsi
1400ea6ed:	5b                   	pop    %rbx
1400ea6ee:	5d                   	pop    %rbp
1400ea6ef:	c3                   	ret
1400ea6f0:	80 7e 6a 00          	cmpb   $0x0,0x6a(%rsi)
1400ea6f4:	74 1c                	je     0x1400ea712
1400ea6f6:	eb 06                	jmp    0x1400ea6fe
1400ea6f8:	80 7e 6a 00          	cmpb   $0x0,0x6a(%rsi)
1400ea6fc:	74 0e                	je     0x1400ea70c
1400ea6fe:	48 8d 56 40          	lea    0x40(%rsi),%rdx
1400ea702:	49 8b ce             	mov    %r14,%rcx
1400ea705:	e8 96 0c fe ff       	call   0x1400cb3a0
1400ea70a:	eb a6                	jmp    0x1400ea6b2
1400ea70c:	e8 bf e2 ff ff       	call   0x1400e89d0
1400ea711:	cc                   	int3
1400ea712:	e8 b9 e2 ff ff       	call   0x1400e89d0
1400ea717:	cc                   	int3
1400ea718:	cc                   	int3
1400ea719:	cc                   	int3
1400ea71a:	cc                   	int3
1400ea71b:	cc                   	int3
1400ea71c:	cc                   	int3
1400ea71d:	cc                   	int3
1400ea71e:	cc                   	int3
1400ea71f:	cc                   	int3
1400ea720:	40 53                	rex push %rbx
1400ea722:	48 83 ec 20          	sub    $0x20,%rsp
1400ea726:	48 8b d9             	mov    %rcx,%rbx
1400ea729:	48 8b 09             	mov    (%rcx),%rcx
1400ea72c:	48 85 c9             	test   %rcx,%rcx
1400ea72f:	74 5d                	je     0x1400ea78e
1400ea731:	48 8b 53 10          	mov    0x10(%rbx),%rdx
1400ea735:	48 b8 ab aa aa aa aa 	movabs $0x2aaaaaaaaaaaaaab,%rax
1400ea73c:	aa aa 2a
1400ea73f:	48 2b d1             	sub    %rcx,%rdx
1400ea742:	48 f7 ea             	imul   %rdx
1400ea745:	48 c1 fa 02          	sar    $0x2,%rdx
1400ea749:	48 8b c2             	mov    %rdx,%rax
1400ea74c:	48 c1 e8 3f          	shr    $0x3f,%rax
1400ea750:	48 03 d0             	add    %rax,%rdx
1400ea753:	48 8d 14 52          	lea    (%rdx,%rdx,2),%rdx
1400ea757:	48 c1 e2 03          	shl    $0x3,%rdx
1400ea75b:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1400ea762:	72 18                	jb     0x1400ea77c
1400ea764:	4c 8b 41 f8          	mov    -0x8(%rcx),%r8
1400ea768:	48 83 c2 27          	add    $0x27,%rdx
1400ea76c:	49 2b c8             	sub    %r8,%rcx
1400ea76f:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
1400ea773:	48 83 f8 1f          	cmp    $0x1f,%rax
1400ea777:	77 1b                	ja     0x1400ea794
1400ea779:	49 8b c8             	mov    %r8,%rcx
1400ea77c:	e8 cb be 09 00       	call   0x14018664c
1400ea781:	33 c0                	xor    %eax,%eax
1400ea783:	48 89 03             	mov    %rax,(%rbx)
1400ea786:	48 89 43 08          	mov    %rax,0x8(%rbx)
1400ea78a:	48 89 43 10          	mov    %rax,0x10(%rbx)
1400ea78e:	48 83 c4 20          	add    $0x20,%rsp
1400ea792:	5b                   	pop    %rbx
1400ea793:	c3                   	ret
1400ea794:	e8 eb 0d 0a 00       	call   0x14018b584
1400ea799:	cc                   	int3
1400ea79a:	cc                   	int3
1400ea79b:	cc                   	int3
1400ea79c:	cc                   	int3
1400ea79d:	cc                   	int3
1400ea79e:	cc                   	int3
1400ea79f:	cc                   	int3
1400ea7a0:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1400ea7a5:	56                   	push   %rsi
1400ea7a6:	48 83 ec 20          	sub    $0x20,%rsp
1400ea7aa:	48 8b f1             	mov    %rcx,%rsi
1400ea7ad:	33 db                	xor    %ebx,%ebx
1400ea7af:	48 8b 09             	mov    (%rcx),%rcx
1400ea7b2:	48 85 c9             	test   %rcx,%rcx
1400ea7b5:	74 58                	je     0x1400ea80f
1400ea7b7:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
1400ea7bc:	f0 0f c1 41 2c       	lock xadd %eax,0x2c(%rcx)
1400ea7c1:	83 f8 01             	cmp    $0x1,%eax
1400ea7c4:	75 49                	jne    0x1400ea80f
1400ea7c6:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
1400ea7cb:	48 8b 3e             	mov    (%rsi),%rdi
1400ea7ce:	48 85 ff             	test   %rdi,%rdi
1400ea7d1:	74 29                	je     0x1400ea7fc
1400ea7d3:	0f 1f 40 00          	nopl   0x0(%rax)
1400ea7d7:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
1400ea7de:	00 00
1400ea7e0:	48 8d 47 10          	lea    0x10(%rdi),%rax
1400ea7e4:	48 8b cf             	mov    %rdi,%rcx
1400ea7e7:	48 8b 38             	mov    (%rax),%rdi
1400ea7ea:	ba 01 00 00 00       	mov    $0x1,%edx
1400ea7ef:	48 89 18             	mov    %rbx,(%rax)
1400ea7f2:	48 8b 01             	mov    (%rcx),%rax
1400ea7f5:	ff 10                	call   *(%rax)
1400ea7f7:	48 85 ff             	test   %rdi,%rdi
1400ea7fa:	75 e4                	jne    0x1400ea7e0
1400ea7fc:	48 8b 7c 24 30       	mov    0x30(%rsp),%rdi
1400ea801:	48 89 1e             	mov    %rbx,(%rsi)
1400ea804:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1400ea809:	48 83 c4 20          	add    $0x20,%rsp
1400ea80d:	5e                   	pop    %rsi
1400ea80e:	c3                   	ret
1400ea80f:	48 89 1e             	mov    %rbx,(%rsi)
1400ea812:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1400ea817:	48 83 c4 20          	add    $0x20,%rsp
1400ea81b:	5e                   	pop    %rsi
1400ea81c:	c3                   	ret
1400ea81d:	cc                   	int3
1400ea81e:	cc                   	int3
1400ea81f:	cc                   	int3
1400ea820:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
1400ea825:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1400ea82a:	41 56                	push   %r14
1400ea82c:	48 83 ec 20          	sub    $0x20,%rsp
1400ea830:	33 c0                	xor    %eax,%eax
1400ea832:	48 8b f1             	mov    %rcx,%rsi
1400ea835:	48 89 01             	mov    %rax,(%rcx)
1400ea838:	48 89 41 08          	mov    %rax,0x8(%rcx)
1400ea83c:	48 89 41 10          	mov    %rax,0x10(%rcx)
1400ea840:	4c 8b 32             	mov    (%rdx),%r14
1400ea843:	48 8b 6a 08          	mov    0x8(%rdx),%rbp
1400ea847:	4c 3b f5             	cmp    %rbp,%r14
1400ea84a:	74 3f                	je     0x1400ea88b
1400ea84c:	48 89 5c 24 30       	mov    %rbx,0x30(%rsp)
1400ea851:	49 2b ee             	sub    %r14,%rbp
1400ea854:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
1400ea859:	48 8b fd             	mov    %rbp,%rdi
1400ea85c:	48 c1 ff 02          	sar    $0x2,%rdi
1400ea860:	48 8b d7             	mov    %rdi,%rdx
1400ea863:	e8 98 01 00 00       	call   0x1400eaa00
1400ea868:	48 8b 1e             	mov    (%rsi),%rbx
1400ea86b:	4c 8b c5             	mov    %rbp,%r8
1400ea86e:	48 8b cb             	mov    %rbx,%rcx
1400ea871:	49 8b d6             	mov    %r14,%rdx
1400ea874:	e8 47 db 09 00       	call   0x1401883c0
1400ea879:	48 8d 04 bb          	lea    (%rbx,%rdi,4),%rax
1400ea87d:	48 8b 7c 24 38       	mov    0x38(%rsp),%rdi
1400ea882:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400ea887:	48 89 46 08          	mov    %rax,0x8(%rsi)
1400ea88b:	48 8b 6c 24 40       	mov    0x40(%rsp),%rbp
1400ea890:	48 8b c6             	mov    %rsi,%rax
1400ea893:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
1400ea898:	48 83 c4 20          	add    $0x20,%rsp
1400ea89c:	41 5e                	pop    %r14
1400ea89e:	c3                   	ret
1400ea89f:	cc                   	int3
1400ea8a0:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1400ea8a5:	55                   	push   %rbp
1400ea8a6:	56                   	push   %rsi
1400ea8a7:	41 57                	push   %r15
1400ea8a9:	48 83 ec 20          	sub    $0x20,%rsp
1400ea8ad:	48 8b 71 10          	mov    0x10(%rcx),%rsi
1400ea8b1:	44 0f b7 fa          	movzwl %dx,%r15d
1400ea8b5:	48 8b 69 18          	mov    0x18(%rcx),%rbp
1400ea8b9:	48 8b d9             	mov    %rcx,%rbx
1400ea8bc:	48 3b f5             	cmp    %rbp,%rsi
1400ea8bf:	73 2b                	jae    0x1400ea8ec
1400ea8c1:	48 8d 46 01          	lea    0x1(%rsi),%rax
1400ea8c5:	48 89 41 10          	mov    %rax,0x10(%rcx)
1400ea8c9:	48 83 fd 08          	cmp    $0x8,%rbp
1400ea8cd:	72 03                	jb     0x1400ea8d2
1400ea8cf:	48 8b 19             	mov    (%rcx),%rbx
1400ea8d2:	33 c0                	xor    %eax,%eax
1400ea8d4:	66 44 89 3c 73       	mov    %r15w,(%rbx,%rsi,2)
1400ea8d9:	66 89 44 73 02       	mov    %ax,0x2(%rbx,%rsi,2)
1400ea8de:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
1400ea8e3:	48 83 c4 20          	add    $0x20,%rsp
1400ea8e7:	41 5f                	pop    %r15
1400ea8e9:	5e                   	pop    %rsi
1400ea8ea:	5d                   	pop    %rbp
1400ea8eb:	c3                   	ret
1400ea8ec:	48 89 7c 24 40       	mov    %rdi,0x40(%rsp)
1400ea8f1:	48 bf fe ff ff ff ff 	movabs $0x7ffffffffffffffe,%rdi
1400ea8f8:	ff ff 7f
1400ea8fb:	48 8b c7             	mov    %rdi,%rax
1400ea8fe:	48 2b c6             	sub    %rsi,%rax
1400ea901:	48 83 f8 01          	cmp    $0x1,%rax
1400ea905:	0f 82 e5 00 00 00    	jb     0x1400ea9f0
1400ea90b:	4c 89 64 24 48       	mov    %r12,0x48(%rsp)
1400ea910:	4c 8d 66 01          	lea    0x1(%rsi),%r12
1400ea914:	49 8b cc             	mov    %r12,%rcx
1400ea917:	4c 89 74 24 50       	mov    %r14,0x50(%rsp)
1400ea91c:	48 83 c9 07          	or     $0x7,%rcx
1400ea920:	48 3b cf             	cmp    %rdi,%rcx
1400ea923:	77 1f                	ja     0x1400ea944
1400ea925:	48 8b d5             	mov    %rbp,%rdx
1400ea928:	48 8b c7             	mov    %rdi,%rax
1400ea92b:	48 d1 ea             	shr    $1,%rdx
1400ea92e:	48 2b c2             	sub    %rdx,%rax
1400ea931:	48 3b e8             	cmp    %rax,%rbp
1400ea934:	77 0e                	ja     0x1400ea944
1400ea936:	48 8d 04 2a          	lea    (%rdx,%rbp,1),%rax
1400ea93a:	48 8b f9             	mov    %rcx,%rdi
1400ea93d:	48 3b c8             	cmp    %rax,%rcx
1400ea940:	48 0f 42 f8          	cmovb  %rax,%rdi
1400ea944:	48 8d 57 01          	lea    0x1(%rdi),%rdx
1400ea948:	48 8b cb             	mov    %rbx,%rcx
1400ea94b:	e8 00 bd fd ff       	call   0x1400c6650
1400ea950:	48 03 f6             	add    %rsi,%rsi
1400ea953:	4c 89 63 10          	mov    %r12,0x10(%rbx)
1400ea957:	4c 8b 64 24 48       	mov    0x48(%rsp),%r12
1400ea95c:	4c 8b f0             	mov    %rax,%r14
1400ea95f:	48 89 7b 18          	mov    %rdi,0x18(%rbx)
1400ea963:	4c 8b c6             	mov    %rsi,%r8
1400ea966:	48 8b c8             	mov    %rax,%rcx
1400ea969:	48 83 fd 08          	cmp    $0x8,%rbp
1400ea96d:	72 4b                	jb     0x1400ea9ba
1400ea96f:	48 8b 3b             	mov    (%rbx),%rdi
1400ea972:	48 8b d7             	mov    %rdi,%rdx
1400ea975:	e8 46 da 09 00       	call   0x1401883c0
1400ea97a:	33 c0                	xor    %eax,%eax
1400ea97c:	66 46 89 3c 36       	mov    %r15w,(%rsi,%r14,1)
1400ea981:	48 8d 14 6d 02 00 00 	lea    0x2(,%rbp,2),%rdx
1400ea988:	00
1400ea989:	66 42 89 44 36 02    	mov    %ax,0x2(%rsi,%r14,1)
1400ea98f:	48 81 fa 00 10 00 00 	cmp    $0x1000,%rdx
1400ea996:	72 18                	jb     0x1400ea9b0
1400ea998:	48 8b 4f f8          	mov    -0x8(%rdi),%rcx
1400ea99c:	48 83 c2 27          	add    $0x27,%rdx
1400ea9a0:	48 2b f9             	sub    %rcx,%rdi
1400ea9a3:	48 8d 47 f8          	lea    -0x8(%rdi),%rax
1400ea9a7:	48 83 f8 1f          	cmp    $0x1f,%rax
1400ea9ab:	77 3d                	ja     0x1400ea9ea
1400ea9ad:	48 8b f9             	mov    %rcx,%rdi
1400ea9b0:	48 8b cf             	mov    %rdi,%rcx
1400ea9b3:	e8 94 bc 09 00       	call   0x14018664c
1400ea9b8:	eb 15                	jmp    0x1400ea9cf
1400ea9ba:	48 8b d3             	mov    %rbx,%rdx
1400ea9bd:	e8 fe d9 09 00       	call   0x1401883c0
1400ea9c2:	33 c0                	xor    %eax,%eax
1400ea9c4:	66 46 89 3c 36       	mov    %r15w,(%rsi,%r14,1)
1400ea9c9:	66 42 89 44 36 02    	mov    %ax,0x2(%rsi,%r14,1)
1400ea9cf:	48 8b 7c 24 40       	mov    0x40(%rsp),%rdi
1400ea9d4:	4c 89 33             	mov    %r14,(%rbx)
1400ea9d7:	4c 8b 74 24 50       	mov    0x50(%rsp),%r14
1400ea9dc:	48 8b 5c 24 58       	mov    0x58(%rsp),%rbx
1400ea9e1:	48 83 c4 20          	add    $0x20,%rsp
1400ea9e5:	41 5f                	pop    %r15
1400ea9e7:	5e                   	pop    %rsi
1400ea9e8:	5d                   	pop    %rbp
1400ea9e9:	c3                   	ret
1400ea9ea:	e8 95 0b 0a 00       	call   0x14018b584
1400ea9ef:	cc                   	int3
1400ea9f0:	e8 7b b5 fd ff       	call   0x1400c5f70
1400ea9f5:	cc                   	int3
1400ea9f6:	cc                   	int3
1400ea9f7:	cc                   	int3
1400ea9f8:	cc                   	int3
1400ea9f9:	cc                   	int3
1400ea9fa:	cc                   	int3
1400ea9fb:	cc                   	int3
1400ea9fc:	cc                   	int3
1400ea9fd:	cc                   	int3
1400ea9fe:	cc                   	int3
1400ea9ff:	cc                   	int3
1400eaa00:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400eaa05:	57                   	push   %rdi
1400eaa06:	48 83 ec 20          	sub    $0x20,%rsp