TCP/IP 编程接口提供各种系统调用,以帮助您有效地使用该协议。TCP 堆栈代码数量繁多,深入到内核级别的完整调用序列可以帮助您了解 TCP 堆栈。在本文中,将回顾和学习关于 TCP 调用序列的详细信息,其中包括对 FreeBSD 的引用,以及在用户级进行系统调用后在 TCP 堆栈中发生的重要函数调用。
典型的 TCP 客户机和服务器应用程序通过发布 TCP 系统调用序列来获取某些函数。这些系统调用包括 socket ()、bind ()、listen ()、accept ()、send () 和 receive()。本文介绍在应用程序发布 TCP 系统调用时在较低级别中发生的情况,如图 1 所示。
图 2 显示了 TCP 系统调用在物理链路上发出之前进行传播的各个层。
套接字层接收进行的任何 TCP 系统调用。套接字层验证 TCP 应用程序传递的参数的正确性。这是一个独立于协议的层,因为尚未将协议连接到调用中。
套接字层下面是协议层,该层包含协议的实际实现(本例中为 TCP)。当套接字层对协议层进行调用时,将确保对两个层之间共享的数据结构具有独占访问权限。这样做是为了避免任何数据结构损坏。
各种网络设备驱动程序在接口层运行,该层从物理链路接收数据,并向物理链路传输数据。
每个套接字具有一个套接字队列,并且每个接口具有一个用于数据通信的接口队列。不过,对于整个协议层,只有一个称为 IP 输入队列的协议队列。接口层通过此 IP 输入队列将数据输入到协议层。协议层使用相应的接口队列将数据输出到接口。
在本文中,将学习以下系统调用:
socket (struct proc *p, struct socket_args *uap, int retval) struct sock_args { int domain, int type, int protocol; };
|
在 socket 系统调用中:
p 是一个指针,指向进行 socket 调用的进程的 proc 结构。
uap 是一个指向 socket_args 结构的指针,该结构包含传递到 socket 系统调用中的进程的参数。
retval 是系统调用的返回值。
socket 系统调用通过分配新的描述符创建新的套接字。将新的描述符返回到调用进程。任何后续的系统调用都使用创建的套接字标识。socket 系统调用还向创建的套接字描述符分配协议。
domain、type 和 protocol 参数值指定系列、类型和协议,以分配给创建的套接字。图 3 显示了调用序列。
从进程检索参数后,socket 函数调用 socreate 函数。socreate 函数根据进程指定的参数发现指向协议切换 protsw 结构的指针。socreate 函数然后分配新的套接字结构。然后进行协议特定的调用 pr_usrreq,进而切换到与套接字描述符关联的相应协议特定的请求。pr_usrreq 函数的原型为:
int pr_usrreq(struct socket *so , int req, struct mbuf *m0 , *m1 , *m2);
|
在 pr_usrreq 函数中:
so 是指向套接字结构的指针。
req 的功能是标识请求。本例中为 PRU_ATTACH。
m0、m1 和 m2 是指向 mbuf 结构的指针。值因请求而异。
pr_usrreq 函数为大约 16 个请求提供服务。
tcp_usrreq() 函数调用 tcp_attach( ),以处理 PRU_ATTACH 请求。要分配 Internet 协议控制块,可调用 in_pcballoc()。在 in_pcballoc 中,调用了内核的内存分配器函数,该函数将内存分配给 Internet 控制块。完成所有必要的 Internet 控制块结构指针初始化之后,该控制返回到 tcp_attach()。
分配新的 TCP 控制块,并在 tcp_newtcpcb() 中初始化。它还初始化所有的 TCP 定时器变量,并且控制返回到 tcp_attach()。现在套接字状态初始化为 CLOSED。在返回到 tcp_usrreq 函数时,创建套接字描述符,以指向套接字的 TCP 控制块。
Internet 控制块是双向链接的循环链表,其指针指向套接字结构,同时套接字结构的 so_pcb 部分指向 Internet 控制块结构。Internet 控制块还具有指向 TCP 控制块的指针。有关 Internet 控制块和 TCP 控制块结构的更详细信息,请参见参考资料部分。
bind (struct proc *p, struct bind_args *uap, int *retval) struct bind_args { int s; caddr_t name; int namelen; };
|
在 bind 系统调用函数中:
s 是套接字描述符。
name 是指向包含网络传输地址的缓冲区的指针。
namelen 是缓冲区的大小。
bind 系统调用将本地网络传输地址与套接字关联。对于客户端进程,发布 bind 调用不是强制的。当客户端进程发布 connect 系统调用时,内核负责执行隐式绑定。服务器进程接受连接或启动与客户端的通信之前,发布显式绑定请求通常是必需的。
bind 调用将进程指定的本地地址复制到 mbuf,并调用 sobind,后者则根据请求使用 PRU_BIND 调用 tcp_usrreq()。tcp_usrreq() 中的切换实例调用 in_pcbbind(),后者将本地地址和端口号绑定到套接字。in_pcbbind 函数首先执行一些完整性检查,以确保不绑定套接字两次,并且至少一个接口分配了 IP 地址。in_pcbbind 负责隐式和显式绑定。
如果对 in_pcbbind()(指向 sockaddr_in 结构的指针)的调用中的第二个参数为非空,则发生显式绑定。其他情况下,则发生隐式绑定。对于显式绑定,在绑定的 IP 地址上执行检查,并相应设置套接字选项。
如果指定的本地端口是一个非零值,则对超级用户特权进行检查,以确定绑定是否位于保留的端口(例如,根据 Berkley 约定,端口号 < 1024)。然后调用 in_pcblookup(),以便查找具有提到的本地 IP 地址和本地端口号的控制块。in_pcblookup() 验证本地地址和端口对是否仍未使用。如果 in_pcbbind() 中的第二个参数是 NULL,或本地端口是零,则控制失败,并检查临时端口(例如,根据 Berkley 约定,1024 < 端口号 < 5000)。然后调用 in_pcblookup(),以验证发现的端口是否未使用。
listen (struct proc *p, struct listen_args *uap, int *retval) struct listen_args { int s; int backlog; }; |
在 listen 系统调用中:
s 是套接字描述符。
backlog 是套接字上的连接数的队列限制。
listen 调用指示协议,服务器进程准备接受套接字上任何新传入的连接。存在一个可以排列的连接数限制,在该连接数之后,忽略任何进一步的连接请求。
listen 系统调用使用套接字描述符和 listen 调用中指定的backlog 值调用 solisten。solisten 仅使用 PRU_LISTEN 作为请求调用 tcp_usrreq 函数。在 tcp_usrreq() 函数的切换语句中,PRU_LISTEN 的实例检查套接字是否绑定到端口。如果端口为零,则调用 in_pcbbind(),将套接字绑定到一个端口(按照 Bind 部分中的描述)。
如果端口上已存在侦听的套接字,则将套接字的状态更改为 LISTEN。通常,所有的服务器进程都侦听众所周知的端口号。很少调用 in_pcbbind 来执行服务器进程的隐式绑定。图 5 显示了侦听的调用序列。
accept(struct proc *p, struct accept_args *uap, int *retval); struct accept_args { int s; caddr_t name; int *anamelen; };
|
在 accept 系统调用中:
s 是套接字描述符。
name 是缓冲区(OUT 参数),它包含外来主机的网络传输地址。
anamelen 是 name 缓冲区的大小。
accept 系统调用是等待传入连接的阻塞调用。处理连接请求后,accept 将返回新的套接字描述符。将此新的套接字连接到客户端,使另外一个套接字 s 保持 LISTEN 状态,以接受进一步连接。
accept 调用首先验证参数,并等待要到达的连接请求。在此之前,函数在 while 循环中阻塞。新的连接到达后,协议层唤醒服务器进程。Accept 然后检查函数阻塞时发生的任何套接字错误。如果存在任何套接字错误,则函数返回,并继续从队列拾取新的连接并调用 soaccept。在 soaccept() 中调用 tcp_usrreq () 函数,并将请求作为 PRU_ACCEPT。tcp_usrreq 函数中的切换调用 in_setpeeraddr(),后者从协议控制块复制外来 IP 地址和外来端口号,并将其返回到服务器进程。
connect (struct proc *p, struct connect_args *uap, int *retval); struct connect_args { int s; caddr_t name; int namelen; };
|
在 connect 系统调用中:
s 是套接字描述符。
name 是指向具有外来 IP/端口地址对的缓冲区的指针。
namelen 是缓冲区的长度。
客户端进程通常调用 connect 系统调用,以连接到服务器进程。如果在初始化连接之前,客户端进程没有显式发布 bind 系统调用,则堆栈负责本地套接字上的隐式绑定。
connect 系统调用将外来地址(需要将连接请求发送到地址)从进程复制到内核,并调用 soconnect()。从 soconnect() 返回时,connect() 函数进入睡眠状体,直到协议层将其唤醒,并指示连接是 ESTABLISHED 或套接字上存在错误。soconnect() 函数检查套接字的有效状态,并使用 PRU_CONNECT 作为请求调用 pr_usrreq()。
tcp_usrreq() 函数中的切换实例检查套接字与本地端口的绑定。如果未绑定套接字,则调用执行隐式绑定的 in_pcbbind()。然后调用 in_pcbconnect(),以获取到达目的地的路线,发现必须输出套接字的接口,并验证 connect() 指定的外来套接字对(IP 地址和端口号)是否唯一。然后使用外来 IP 地址和端口号更新其 Internet 控制块,并返回到 PRU_CONNECT 示例语句。
tcp_usrreq () 现在调用 soisconnecting (),它可以将客户端主机上的套接字的状态设置为 SYN_SENT。调用函数 tcp_output,将 SYN 包输出到网络。控制现在返回到 connect() 函数,该函数处于睡眠状态,直到协议层唤醒 — 指示连接现在是 ESTABLISHED,或套接字上存在错误。
3 向 TCP 握手
图 8、图 9 和图 10 显示了客户端发布 connect 和服务器发布 accept 以指示和建立 TCP 连接时的调用序列。
当客户端发布 connect 时,在协议层调用 tcp_output() 函数,将 SYN 包输出到接口。如图 9 所示,soconnect 现在返回到 connect() 函数,并进入睡眠状态。客户端上的套接字状态现在是 SYN_SENT。接口层调用 if_output()(实际上是接口特定的输出函数),将包发送到 n/w。
目的地(服务器)上的接口接收传入 SYN 包,将其放在 ipintrq 队列中,并引发软件中断。包然后由调用 tcp_input 例程的 ipintr() 获取。tcp_input() 在 s/w 中断时执行,并从 ipintrq 拾取 SYN 包,对其进行处理,并将部分完成的套接字连接放入完成的套接字队列。服务器端的套接字状态现在是 SYN_RCVD。每次处理后,tcp_input() 例程都调用 tcp_output()(如果需要将响应套接字发送到另一端)。
处理 SYN 后,服务器使用 tcp_output ()、ip_output () 和 if_output () 序列发送 SYN ACK 包。客户端上的 n/w 接口接收此包,将其放在 ipintrq 中,并引发 s/w 中断。同样,ipintr () 从 ipintrq 获取该包,并将其传递到客户端 TCP 堆栈上的 tcp_input () 例程。包现在是经过处理的,并调用了 soisconnected (),它唤醒连接调用。客户端上的套接字状态现在已建立。
客户端上的 tcp_input () 例程处理 SYN ACK 包,并调用 tcp_output () 将 ACK 包发回到服务器。服务器端上的 tcp_input () 处理此 ACK 包,并调用 soisconnected ()。此函数从未完成的套接字队列移除套接字,并将其放入完成的套接字队列,然后调用 Wakeup (),以唤醒 accept 调用。服务器端的套接字现在已建立。
shutdown (struct proc *p, struct shutdown_args *uap, int *retval); Struct shutdown_args { int s; int how; } |
在 shutdown 系统调用中:
s 是套接字描述符。
how 指定将关闭哪一部分连接。how 的值 0、1 和 2 分别指定关闭连接的读取部分、写入部分和同时关闭连接的读取及写入部分。
shutdown 系统调用关闭连接的任意一端或两端。如果需要关闭读取部分,则会丢弃接收缓冲区中存在的任何数据,并关闭该端的连接。对写入部分,TCP 发送任何剩余的数据,然后终止连接的写入端。
如果需要关闭连接的读取部分,则 soshutdown() 函数调用 sorflush()。sorflush() 标记套接字以拒绝任何传入的包,并释放保存的任何系统资源。
如果需要关闭连接的写入部分,则调用 tcp_usrreq(),并将 PRU_SHUTDOWN 作为请求。PRU_SHUTDOWN 的切换实例根据当前的状态调用 tcp_usrclosed() 函数,以更新套接字的状态。TCP/IP 状态图表可以帮助了解套接字在任何给定的时间存在的不同状态。如果从 tcp_usrclosed() 返回时需要发送 FIN,则调用 tcp_output() 将其发送到接口。
soo_close(struct file *fp , struct proc *p); |
在 close 系统调用中:
fp 是指向文件结构的指针。
p 是一个指向调用进程的 proc 结构的指针。
close 系统调用可关闭或中止套接字上任何挂起的连接。
soo_close() 仅调用 so_close() 函数,该函数首先检查要关闭的套接字是否为侦听套接字(正在接收传入连接的套接字)。如果是,则遍历两个套接字队列,以检查任何挂起的连接。对每个挂起的连接,将调用 soabort() 以发布 tcp_usrreq(),并将 PRU_ABORT 用作请求。此切换实例调用 tcp_drop() 以检查套接字的状态。
如果状态是 SYN_RCVD,则通过将状态设置为 CLOSED 并调用 tcp_output() 发送 RST 段。tcp_close() 函数然后关闭套接字。tcp_close 函数更新路由度量结构的三个变量,然后释放套接字持有的资源。
如果套接字不是侦听套接字,则控制开始使用 soclose(),以检查是否已存在附加到套接字的控制块。如果不存在,则 sofree() 释放套接字。如果存在,则调用具有 PRU_DETACH 的 tcp_usrreq() 将协议与套接字分离。PRU_DETACH 的切换实例调用 tcp_disconnect(),以检查连接状态是否为 ESTABLISHED。如果不是,则 tcp_disconnect() 调用 tcp_close(),以释放 Internet 和控制块。否则,tcp_disconnect() 检查延迟时间和延迟套接字选项。如果设置了该选项,并且延迟时间为零,则调用 tcp_drop()。如果未设置,则调用 tcp_usrclosed(),以设置套接字的状态,并调用 tcp_output()(如果需要发送 FIN 段)。
图 12 显示了 TCP 应用程序发布 close 系统调用时发生的重要调用。
sendmsg ( struct proc*p, struct sendmsg_args *uap, int retval); struct sendmsg_args { int s; caddr_t msg; int flags; }; |
在 send 系统调用中:
s 是套接字描述符。
msg 是指向 msghdr 结构的指针。
flags 是控制信息。
n/w 接口上有四个要发送数据的系统调用:write、writev、sendto 和 sendmsg。本文仅讨论 sendmsg() 系统调用。所有的四个调用最终调用 sosend()。尽管 send(进程调用的库函数)、sendto 和 sendmsg 系统调用仅可以对套接字描述符操作,但 write 和 writev 系统调用则可以对任何类型的描述符操作。
sendmsg 系统调用将从进程发送的消息复制到内核空间,并调用 sendit()。在 sendit() 中,将初始化一个结构,以便从进程将输出收集到内核中的内存缓冲区。还可以将地址和控制信息从进程复制到内核,然后调用 sosend(),以执行以下四项任务:
基于 sendit() 函数传递的值初始化各种参数。
验证套接字的条件和连接的状态,并确定传递消息和报告错误所需的空间。
分配内存并从进程复制数据。
使协议特定的调用将数据发送到网络。
然后调用 tcp_usrreq(),并根据进程指定的标志,控制切换到 PRU_SEND 或 PRU_SENDOOB(以发送带区外数据)。对于 PRU_SENDOOB,发送缓冲区大小可以超过 512 字节,将释放任何分配的内存并中断控制。否则,sbappend() 和 tcp_output() 函数由 PRU_SEND 和 PRU_SENDOOB 调用。sbappend() 在发送缓冲区的末尾添加数据,并且 tcp_output() 将该段发送到接口。
recvmsg(struct proc *p, struct recvmsg_args *uap , int *retval); struct recvmsg_args { int s, struct msghdr *msg, int flags, }; |
在 receive 系统调用中:
s 是套接字描述符。
msg 是指向 msghdr 结构的指针。
flags 指定控制信息。
有四个系统调用可以用于从连接接收数据:read、readv、recvfrom 和 recvmsg。尽管 recv(进程使用的库函数)、recvfrom 和 recvmsg 仅可以对套接字描述符操作,但 read 和 readv 可以对任何种类的描述符操作。所有的 read 系统调用最终调用 soreceive()。
图 14 显示了用于 recvmsg 系统调用的调用序列。recvmsg() 和 recvit() 函数初始化各种数组和结构,将接收的数据从内核发送到进程。recvit() 调用 soreceive(),以便将接收的数据从套接字缓冲区传输到接收缓冲区进程。soreceive() 函数执行各种检查,如:
是否设置了 MSG_OOB 标志。
进程是否尝试接收数据。
是否应该阻塞,直到足够的数据到达。
将读取数据传输到进程。
检查数据是带区外数据还是常规数据,并进行相应的处理。
当数据接收完成后通知协议。
当设置 MSG_OOB 标志时或数据接收完成后,soreceive() 函数进行与协议相关的请求。在接收带区外数据的情况下,协议层检查不同的条件,以验证接收的数据是否为带区外数据,然后将其返回到套接字层。在后一种情况中,协议层调用 tcp_output(),将窗口更新段发送到网络。它通知另一端任何空间都可用于接收数据。
在本文中,您学习了触发低级别调用以完成某些任务的最重要的 TCP 函数调用。图中的调用序列显示了内核级 TCP 调用的简要概述。本文是了解 FreeBSD TCP/IP 堆栈组织的很好起点。
学习
您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
您可以通过访问”LINUX Socket 编程“ 来了解更多的相关内容:
TCP/IP Illustrated, Volume 2, The Implementation ,ISBN-10:0-201-63354-X,作者:Gary R. Wright 和 W. Richard Stevens:本书讨论在应用程序空间中使用的保护密钥。有关 inpcb 和 tcpcb 结构的更详细信息,请参阅第 22 章。
受欢迎的内容:查看您的同事所感兴趣的 AIX 和 UNIX 文章。
AIX and UNIX:“AIX and UNIX developerWorks”专区提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
New to AIX and UNIX?:访问“New to AIX and UNIX”页面以学习更多关于 AIX 和 UNIX 的信息。
AIX Wiki:发现 AIX 相关技术信息的协作环境。
按主题搜索“AIX and UNIX”库:
http://www.songtaste.com/user/9253327/info
http://www.songtaste.com/user/9253332/info
http://www.songtaste.com/user/9253334/info
http://www.songtaste.com/user/9253341/info
http://www.songtaste.com/user/9253343/info
http://www.songtaste.com/user/9253350/info
http://www.songtaste.com/user/9253351/info
http://www.songtaste.com/user/9253352/info
http://www.songtaste.com/user/9253353/info
http://www.songtaste.com/user/9253358/info
http://www.songtaste.com/user/9253365/info
http://www.songtaste.com/user/9253368/info
http://www.songtaste.com/user/9253369/info
http://www.songtaste.com/user/9253372/info
http://www.songtaste.com/user/9253376/info
http://www.songtaste.com/user/9253391/info
http://www.songtaste.com/user/9253404/info
http://www.songtaste.com/user/9253407/info
http://www.songtaste.com/user/9253417/info
http://www.songtaste.com/user/9253419/info
http://www.songtaste.com/user/9253420/info
http://www.songtaste.com/user/9253422/info
http://www.songtaste.com/user/9253424/info
http://www.songtaste.com/user/9253430/info
http://www.songtaste.com/user/9253428/info
http://www.songtaste.com/user/9253431/info
http://www.songtaste.com/user/9253437/info
http://www.songtaste.com/user/9253439/info
http://www.songtaste.com/user/9253444/info
http://www.songtaste.com/user/9253450/info
http://www.songtaste.com/user/9253468/info
http://www.songtaste.com/user/9253479/info
http://www.songtaste.com/user/9253480/info
http://www.songtaste.com/user/9253481/info
http://www.songtaste.com/user/9253483/info
http://www.songtaste.com/user/9253485/info
http://www.songtaste.com/user/9253486/info
http://www.songtaste.com/user/9253492/info
http://www.songtaste.com/user/9253498/info
http://www.songtaste.com/user/9253506/info
http://www.songtaste.com/user/9253509/info
http://www.songtaste.com/user/9253519/info
http://www.songtaste.com/user/9253517/info
http://www.songtaste.com/user/9253524/info
http://www.songtaste.com/user/9253528/info
http://www.songtaste.com/user/9253532/info
http://www.songtaste.com/user/9253536/info
http://www.songtaste.com/user/9253537/info
http://www.songtaste.com/user/9253538/info
http://www.songtaste.com/user/9253543/info
http://www.songtaste.com/user/9253547/info
http://www.songtaste.com/user/9253567/info
http://www.songtaste.com/user/9253578/info
http://www.songtaste.com/user/9253583/info
http://www.songtaste.com/user/9253589/info
http://www.songtaste.com/user/9253591/info
http://www.songtaste.com/user/9253593/info
http://www.songtaste.com/user/9253613/info
http://www.songtaste.com/user/9253618/info
http://www.songtaste.com/user/9253619/info
http://www.songtaste.com/user/9253624/info
http://www.songtaste.com/user/9253626/info
http://www.songtaste.com/user/9253631/info
http://www.songtaste.com/user/9253634/info
http://www.songtaste.com/user/9253643/info
http://www.songtaste.com/user/9253644/info
http://www.songtaste.com/user/9253652/info
http://www.songtaste.com/user/9253655/info
http://www.songtaste.com/user/9253663/info
http://www.songtaste.com/user/9253665/info
http://www.songtaste.com/user/9253666/info
http://www.songtaste.com/user/9253670/info
http://www.songtaste.com/user/9253671/info
http://www.songtaste.com/user/9253676/info
http://www.songtaste.com/user/9253681/info
http://www.songtaste.com/user/9253682/info
http://www.songtaste.com/user/9253687/info
http://www.songtaste.com/user/9253690/info
http://www.songtaste.com/user/9253691/info
http://www.songtaste.com/user/9253692/info
http://www.songtaste.com/user/9253704/info
http://www.songtaste.com/user/9253706/info
http://www.songtaste.com/user/9253710/info
http://www.songtaste.com/user/9253714/info
http://www.songtaste.com/user/9253719/info
http://www.songtaste.com/user/9253744/info
http://www.songtaste.com/user/9253746/info
http://www.songtaste.com/user/9253750/info
http://www.songtaste.com/user/9253756/info
http://www.songtaste.com/user/9253761/info
http://www.songtaste.com/user/9253776/info
http://www.songtaste.com/user/9253778/info
http://www.songtaste.com/user/9253785/info
http://www.songtaste.com/user/9253792/info
http://www.songtaste.com/user/9253800/info
http://www.songtaste.com/user/9253808/info
http://www.songtaste.com/user/9253811/info
http://www.songtaste.com/user/9253812/info
http://www.songtaste.com/user/9253814/info
http://www.songtaste.com/user/9253817/info
http://www.songtaste.com/user/9253822/info
http://www.songtaste.com/user/9253826/info
http://www.songtaste.com/user/9253833/info
http://www.songtaste.com/user/9253834/info
http://www.songtaste.com/user/9253853/info
http://www.songtaste.com/user/9253861/info
http://www.songtaste.com/user/9253865/info
http://www.songtaste.com/user/9253868/info
http://www.songtaste.com/user/9253873/info
http://www.songtaste.com/user/9253871/info
http://www.songtaste.com/user/9253875/info
http://www.songtaste.com/user/9253882/info
http://www.songtaste.com/user/9253888/info
http://www.songtaste.com/user/9253899/info
http://www.songtaste.com/user/9253912/info
http://www.songtaste.com/user/9253920/info
http://www.songtaste.com/user/9253925/info
http://www.songtaste.com/user/9253926/info
http://www.songtaste.com/user/9253942/info
http://www.songtaste.com/user/9253944/info
http://www.songtaste.com/user/9253945/info
http://www.songtaste.com/user/9253955/info
http://www.songtaste.com/user/9253958/info
http://www.songtaste.com/user/9253961/info
http://www.songtaste.com/user/9253962/info
http://www.songtaste.com/user/9253963/info
http://www.songtaste.com/user/9253974/info
http://www.songtaste.com/user/9253976/info
http://www.songtaste.com/user/9253978/info
http://www.songtaste.com/user/9253983/info
http://www.songtaste.com/user/9253984/info
http://www.songtaste.com/user/9253986/info
http://www.songtaste.com/user/9253990/info
http://www.songtaste.com/user/9253989/info
http://www.songtaste.com/user/9253992/info
http://www.songtaste.com/user/9254000/info
http://www.songtaste.com/user/9254001/info
http://www.songtaste.com/user/9254015/info
http://www.songtaste.com/user/9254019/info
http://www.songtaste.com/user/9254020/info
http://www.songtaste.com/user/9254032/info
http://www.songtaste.com/user/9254034/info
http://www.songtaste.com/user/9254040/info
http://www.songtaste.com/user/9254042/info
http://www.songtaste.com/user/9254043/info
http://www.songtaste.com/user/9254062/info
http://www.songtaste.com/user/9254063/info
http://www.songtaste.com/user/9254064/info
http://www.songtaste.com/user/9254068/info
http://www.songtaste.com/user/9254067/info
http://www.songtaste.com/user/9254071/info
http://www.songtaste.com/user/9254085/info
http://www.songtaste.com/user/9254101/info
http://www.songtaste.com/user/9254100/info
http://www.songtaste.com/user/9254116/info
http://www.songtaste.com/user/9254117/info
http://www.songtaste.com/user/9254119/info
http://www.songtaste.com/user/9254140/info
http://www.songtaste.com/user/9254151/info
http://www.songtaste.com/user/9254153/info
http://www.songtaste.com/user/9254163/info
http://www.songtaste.com/user/9254159/info
http://www.songtaste.com/user/9254171/info
http://www.songtaste.com/user/9254175/info
http://www.songtaste.com/user/9254223/info
http://www.songtaste.com/user/9254224/info
http://www.songtaste.com/user/9254226/info
http://www.songtaste.com/user/9254230/info
http://www.songtaste.com/user/9254236/info
http://www.songtaste.com/user/9254275/info
http://www.songtaste.com/user/9254276/info
http://www.songtaste.com/user/9254278/info
http://www.songtaste.com/user/9254281/info
http://www.songtaste.com/user/9254289/info
http://www.songtaste.com/user/9254290/info
http://www.songtaste.com/user/9254292/info
http://www.songtaste.com/user/9254297/info
http://www.songtaste.com/user/9254299/info
http://www.songtaste.com/user/9254303/info
http://www.songtaste.com/user/9254305/info
http://www.songtaste.com/user/9254306/info
http://www.songtaste.com/user/9254308/info
http://www.songtaste.com/user/9254317/info
http://www.songtaste.com/user/9254322/info
http://www.songtaste.com/user/9254327/info
http://www.songtaste.com/user/9254334/info
http://www.songtaste.com/user/9254337/info
http://www.songtaste.com/user/9254339/info
http://www.songtaste.com/user/9254336/info
http://www.songtaste.com/user/9254354/info
http://www.songtaste.com/user/9254358/info
http://www.songtaste.com/user/9254362/info
http://www.songtaste.com/user/9254366/info
http://www.songtaste.com/user/9254370/info
http://www.songtaste.com/user/9254371/info
http://www.songtaste.com/user/9254373/info
http://www.songtaste.com/user/9254377/info
http://www.songtaste.com/user/9254380/info
http://www.songtaste.com/user/9254383/info
http://www.songtaste.com/user/9254387/info
http://www.songtaste.com/user/9254397/info
http://www.songtaste.com/user/9254402/info
http://www.songtaste.com/user/9254403/info
http://www.songtaste.com/user/9254412/info
http://www.songtaste.com/user/9254414/info
http://www.songtaste.com/user/9254427/info
http://www.songtaste.com/user/9254428/info
http://www.songtaste.com/user/9254441/info
http://www.songtaste.com/user/9254451/info
http://www.songtaste.com/user/9254466/info
http://www.songtaste.com/user/9254468/info
http://www.songtaste.com/user/9254476/info
http://www.songtaste.com/user/9254478/info
http://www.songtaste.com/user/9254479/info
http://www.songtaste.com/user/9254484/info
http://www.songtaste.com/user/9254489/info
http://www.songtaste.com/user/9254517/info
http://www.songtaste.com/user/9254516/info
http://www.songtaste.com/user/9254531/info
http://www.songtaste.com/user/9254537/info
http://www.songtaste.com/user/9254538/info
http://www.songtaste.com/user/9254544/info
http://www.songtaste.com/user/9254548/info
http://www.songtaste.com/user/9254555/info
http://www.songtaste.com/user/9254563/info
http://www.songtaste.com/user/9254572/info
http://www.songtaste.com/user/9254584/info
http://www.songtaste.com/user/9254586/info
http://www.songtaste.com/user/9254602/info
http://www.songtaste.com/user/9254609/info
http://www.songtaste.com/user/9254612/info
http://www.songtaste.com/user/9254618/info
http://www.songtaste.com/user/9254614/info
http://www.songtaste.com/user/9254615/info
http://www.songtaste.com/user/9254621/info
http://www.songtaste.com/user/9254625/info
http://www.songtaste.com/user/9254629/info
http://www.songtaste.com/user/9254639/info
http://www.songtaste.com/user/9254653/info
http://www.songtaste.com/user/9254654/info
http://www.songtaste.com/user/9254659/info
http://www.songtaste.com/user/9254667/info
http://www.songtaste.com/user/9254668/info
http://www.songtaste.com/user/9254676/info
http://www.songtaste.com/user/9254679/info
http://www.songtaste.com/user/9254684/info
http://www.songtaste.com/user/9254687/info
http://www.songtaste.com/user/9254696/info
http://www.songtaste.com/user/9254701/info
http://www.songtaste.com/user/9254703/info
http://www.songtaste.com/user/9254710/info
http://www.songtaste.com/user/9254714/info
http://www.songtaste.com/user/9254713/info
http://www.songtaste.com/user/9254737/info
http://www.songtaste.com/user/9254738/info
http://www.songtaste.com/user/9254740/info
http://www.songtaste.com/user/9254755/info
http://www.songtaste.com/user/9254757/info
http://www.songtaste.com/user/9254760/info
http://www.songtaste.com/user/9254764/info
http://www.songtaste.com/user/9254765/info
http://www.songtaste.com/user/9254768/info
http://www.songtaste.com/user/9254779/info
http://www.songtaste.com/user/9254780/info
http://www.songtaste.com/user/9254785/info
http://www.songtaste.com/user/9254795/info
http://www.songtaste.com/user/9254806/info
http://www.songtaste.com/user/9254810/info
http://www.songtaste.com/user/9254816/info
http://www.songtaste.com/user/9254820/info
http://www.songtaste.com/user/9254822/info
http://www.songtaste.com/user/9254829/info
http://www.songtaste.com/user/9254832/info
http://www.songtaste.com/user/9254837/info
http://www.songtaste.com/user/9254850/info
http://www.songtaste.com/user/9254859/info
http://www.songtaste.com/user/9254858/info
http://www.songtaste.com/user/9254862/info
http://www.songtaste.com/user/9254861/info
http://www.songtaste.com/user/9254865/info
http://www.songtaste.com/user/9254867/info
http://www.songtaste.com/user/9254872/info
http://www.songtaste.com/user/9254876/info
http://www.songtaste.com/user/9254881/info
http://www.songtaste.com/user/9254882/info
http://www.songtaste.com/user/9254885/info
http://www.songtaste.com/user/9254887/info
http://www.songtaste.com/user/9254895/info
http://www.songtaste.com/user/9254900/info
http://www.songtaste.com/user/9254901/info
http://www.songtaste.com/user/9254903/info
http://www.songtaste.com/user/9254904/info
http://www.songtaste.com/user/9254906/info
http://www.songtaste.com/user/9254911/info
http://www.songtaste.com/user/9254921/info
http://www.songtaste.com/user/9254932/info
http://www.songtaste.com/user/9254937/info
http://www.songtaste.com/user/9254943/info
http://www.songtaste.com/user/9254944/info
http://www.songtaste.com/user/9254945/info
http://www.songtaste.com/user/9254951/info
http://www.songtaste.com/user/9254963/info
http://www.songtaste.com/user/9254972/info
http://www.songtaste.com/user/9254974/info
http://www.songtaste.com/user/9254976/info
http://www.songtaste.com/user/9254978/info
http://www.songtaste.com/user/9254985/info
http://www.songtaste.com/user/9254986/info
http://www.songtaste.com/user/9254989/info
http://www.songtaste.com/user/9254994/info
http://www.songtaste.com/user/9254997/info
http://www.songtaste.com/user/9254998/info
http://www.songtaste.com/user/9255000/info
http://www.songtaste.com/user/9255011/info
http://www.songtaste.com/user/9255012/info
http://www.songtaste.com/user/9255027/info
http://www.songtaste.com/user/9255029/info
http://www.songtaste.com/user/9255037/info
http://www.songtaste.com/user/9255038/info
http://www.songtaste.com/user/9255040/info
http://www.songtaste.com/user/9255045/info
http://www.songtaste.com/user/9255049/info
http://www.songtaste.com/user/9255057/info
http://www.songtaste.com/user/9255059/info
http://www.songtaste.com/user/9255062/info
http://www.songtaste.com/user/9255073/info
http://www.songtaste.com/user/9255100/info
http://www.songtaste.com/user/9255105/info
http://www.songtaste.com/user/9255106/info
http://www.songtaste.com/user/9255115/info
http://www.songtaste.com/user/9255112/info
http://www.songtaste.com/user/9255120/info
http://www.songtaste.com/user/9255121/info
http://www.songtaste.com/user/9255124/info
http://www.songtaste.com/user/9255142/info
http://www.songtaste.com/user/9255143/info
http://www.songtaste.com/user/9255152/info
http://www.songtaste.com/user/9255172/info
http://www.songtaste.com/user/9255174/info
http://www.songtaste.com/user/9255186/info
http://www.songtaste.com/user/9255193/info
http://www.songtaste.com/user/9255194/info
http://www.songtaste.com/user/9255198/info
http://www.songtaste.com/user/9255202/info
http://www.songtaste.com/user/9255203/info
http://www.songtaste.com/user/9255210/info
http://www.songtaste.com/user/9255214/info
http://www.songtaste.com/user/9255220/info
http://www.songtaste.com/user/9255222/info
http://www.songtaste.com/user/9255242/info
http://www.songtaste.com/user/9255250/info
http://www.songtaste.com/user/9255258/info
http://www.songtaste.com/user/9255265/info
http://www.songtaste.com/user/9255264/info
http://www.songtaste.com/user/9255277/info
http://www.songtaste.com/user/9255284/info
http://www.songtaste.com/user/9255290/info
http://www.songtaste.com/user/9255302/info
http://www.songtaste.com/user/9255306/info
http://www.songtaste.com/user/9255307/info
http://www.songtaste.com/user/9255319/info
http://www.songtaste.com/user/9255328/info
http://www.songtaste.com/user/9255326/info
http://www.songtaste.com/user/9255329/info
http://www.songtaste.com/user/9255335/info
http://www.songtaste.com/user/9255351/info
http://www.songtaste.com/user/9255355/info
http://www.songtaste.com/user/9255360/info
http://www.songtaste.com/user/9255368/info
http://www.songtaste.com/user/9255366/info
http://www.songtaste.com/user/9255372/info
http://www.songtaste.com/user/9255381/info
http://www.songtaste.com/user/9255383/info
http://www.songtaste.com/user/9255393/info
http://www.songtaste.com/user/9255415/info
http://www.songtaste.com/user/9255423/info
http://www.songtaste.com/user/9255426/info
http://www.songtaste.com/user/9255428/info
http://www.songtaste.com/user/9255430/info
http://www.songtaste.com/user/9255439/info
http://www.songtaste.com/user/9255442/info
http://www.songtaste.com/user/9255443/info
http://www.songtaste.com/user/9255444/info
http://www.songtaste.com/user/9255453/info
http://www.songtaste.com/user/9255461/info
http://www.songtaste.com/user/9255472/info
http://www.songtaste.com/user/9255478/info
http://www.songtaste.com/user/9255479/info
http://www.songtaste.com/user/9255480/info
http://www.songtaste.com/user/9255485/info
http://www.songtaste.com/user/9255486/info
http://www.songtaste.com/user/9255489/info
http://www.songtaste.com/user/9255491/info
http://www.songtaste.com/user/9255493/info
http://www.songtaste.com/user/9255495/info
http://www.songtaste.com/user/9255497/info
http://www.songtaste.com/user/9255501/info
http://www.songtaste.com/user/9255504/info
http://www.songtaste.com/user/9255507/info
http://www.songtaste.com/user/9255514/info
http://www.songtaste.com/user/9255519/info
http://www.songtaste.com/user/9255527/info
http://www.songtaste.com/user/9255534/info
http://www.songtaste.com/user/9255538/info
http://www.songtaste.com/user/9255539/info
http://www.songtaste.com/user/9255552/info
http://www.songtaste.com/user/9255561/info
http://www.songtaste.com/user/9255569/info
http://www.songtaste.com/user/9255573/info
http://www.songtaste.com/user/9255574/info
http://www.songtaste.com/user/9255575/info
http://www.songtaste.com/user/9255579/info
http://www.songtaste.com/user/9255580/info
http://www.songtaste.com/user/9255582/info
http://www.songtaste.com/user/9255581/info
http://www.songtaste.com/user/9255583/info
http://www.songtaste.com/user/9255593/info
http://www.songtaste.com/user/9255599/info
http://www.songtaste.com/user/9255629/info
http://www.songtaste.com/user/9255634/info
http://www.songtaste.com/user/9255636/info
http://www.songtaste.com/user/9255635/info
http://www.songtaste.com/user/9255645/info
http://www.songtaste.com/user/9255661/info
http://www.songtaste.com/user/9255671/info
http://www.songtaste.com/user/9255674/info
http://www.songtaste.com/user/9255686/info
http://www.songtaste.com/user/9255698/info
http://www.songtaste.com/user/9255693/info
http://www.songtaste.com/user/9255700/info
http://www.songtaste.com/user/9255701/info
http://www.songtaste.com/user/9255705/info
http://www.songtaste.com/user/9255713/info
http://www.songtaste.com/user/9255717/info
http://www.songtaste.com/user/9255718/info
http://www.songtaste.com/user/9255720/info
http://www.songtaste.com/user/9255721/info
http://www.songtaste.com/user/9255722/info
http://www.songtaste.com/user/9255727/info
http://www.songtaste.com/user/9255740/info
http://www.songtaste.com/user/9255742/info
http://www.songtaste.com/user/9255746/info
http://www.songtaste.com/user/9255757/info
http://www.songtaste.com/user/9255759/info
http://www.songtaste.com/user/9255781/info
http://www.songtaste.com/user/9255787/info
http://www.songtaste.com/user/9255804/info
http://www.songtaste.com/user/9255812/info
http://www.songtaste.com/user/9255813/info
http://www.songtaste.com/user/9255814/info
http://www.songtaste.com/user/9255821/info
http://www.songtaste.com/user/9255824/info
http://www.songtaste.com/user/9255839/info
http://www.songtaste.com/user/9255840/info
http://www.songtaste.com/user/9255871/info
http://www.songtaste.com/user/9255875/info
http://www.songtaste.com/user/9255877/info
http://www.songtaste.com/user/9255884/info
http://www.songtaste.com/user/9255886/info
http://www.songtaste.com/user/9255890/info
http://www.songtaste.com/user/9255896/info
http://www.songtaste.com/user/9255901/info
http://www.songtaste.com/user/9255904/info
http://www.songtaste.com/user/9255912/info
http://www.songtaste.com/user/9255921/info
http://www.songtaste.com/user/9255928/info
http://www.songtaste.com/user/9255950/info
http://www.songtaste.com/user/9255955/info
http://www.songtaste.com/user/9255971/info
http://www.songtaste.com/user/9255990/info
http://www.songtaste.com/user/9255994/info
http://www.songtaste.com/user/9256017/info
http://www.songtaste.com/user/9256027/info
http://www.songtaste.com/user/9256053/info
http://www.songtaste.com/user/9256059/info
http://www.songtaste.com/user/9256070/info
http://www.songtaste.com/user/9256075/info
http://www.songtaste.com/user/9256080/info
http://www.songtaste.com/user/9256078/info
http://www.songtaste.com/user/9256079/info
http://www.songtaste.com/user/9256083/info
http://www.songtaste.com/user/9256085/info
http://www.songtaste.com/user/9256089/info
http://www.songtaste.com/user/9256101/info
http://www.songtaste.com/user/9256106/info
http://www.songtaste.com/user/9256110/info
http://www.songtaste.com/user/9256126/info
http://www.songtaste.com/user/9256129/info
http://www.songtaste.com/user/9256147/info
http://www.songtaste.com/user/9256149/info
http://www.songtaste.com/user/9256151/info
http://www.songtaste.com/user/9256153/info
http://www.songtaste.com/user/9256156/info
http://www.songtaste.com/user/9256159/info
http://www.songtaste.com/user/9256160/info
http://www.songtaste.com/user/9256169/info
http://www.songtaste.com/user/9256170/info
http://www.songtaste.com/user/9256179/info
http://www.songtaste.com/user/9256180/info
http://www.songtaste.com/user/9256190/info
http://www.songtaste.com/user/9256192/info
http://www.songtaste.com/user/9256197/info
http://www.songtaste.com/user/9256199/info
http://www.songtaste.com/user/9256209/info
http://www.songtaste.com/user/9256217/info
http://www.songtaste.com/user/9256223/info
http://www.songtaste.com/user/9256233/info
http://www.songtaste.com/user/9256232/info
http://www.songtaste.com/user/9256243/info
http://www.songtaste.com/user/9256251/info
http://www.songtaste.com/user/9256254/info
http://www.songtaste.com/user/9256269/info
http://www.songtaste.com/user/9256279/info
http://www.songtaste.com/user/9256276/info
http://www.songtaste.com/user/9256286/info
http://www.songtaste.com/user/9256294/info
http://www.songtaste.com/user/9256293/info
http://www.songtaste.com/user/9256289/info
http://www.songtaste.com/user/9256292/info
http://www.songtaste.com/user/9256306/info
http://www.songtaste.com/user/9256307/info
http://www.songtaste.com/user/9256313/info
http://www.songtaste.com/user/9256318/info
http://www.songtaste.com/user/9256323/info
http://www.songtaste.com/user/9256333/info
http://www.songtaste.com/user/9256339/info
http://www.songtaste.com/user/9256336/info
http://www.songtaste.com/user/9256340/info
http://www.songtaste.com/user/9256342/info
http://www.songtaste.com/user/9256344/info
http://www.songtaste.com/user/9256349/info
http://www.songtaste.com/user/9256352/info
http://www.songtaste.com/user/9256362/info
http://www.songtaste.com/user/9256364/info
http://www.songtaste.com/user/9256368/info
http://www.songtaste.com/user/9256384/info
http://www.songtaste.com/user/9256422/info
http://www.songtaste.com/user/9256427/info
http://www.songtaste.com/user/9256428/info
http://www.songtaste.com/user/9256449/info
http://www.songtaste.com/user/9256459/info
http://www.songtaste.com/user/9256472/info
http://www.songtaste.com/user/9256481/info
http://www.songtaste.com/user/9256484/info
http://www.songtaste.com/user/9256492/info
http://www.songtaste.com/user/9256495/info
http://www.songtaste.com/user/9256516/info
http://www.songtaste.com/user/9256518/info
http://www.songtaste.com/user/9256519/info
http://www.songtaste.com/user/9256522/info
http://www.songtaste.com/user/9256534/info
http://www.songtaste.com/user/9256539/info
http://www.songtaste.com/user/9256548/info
http://www.songtaste.com/user/9256551/info
http://www.songtaste.com/user/9256553/info
http://www.songtaste.com/user/9256554/info
http://www.songtaste.com/user/9256559/info
http://www.songtaste.com/user/9256558/info
http://www.songtaste.com/user/9256574/info
http://www.songtaste.com/user/9256586/info
http://www.songtaste.com/user/9256588/info
http://www.songtaste.com/user/9256595/info
http://www.songtaste.com/user/9256598/info
http://www.songtaste.com/user/9256597/info
http://www.songtaste.com/user/9256623/info
http://www.songtaste.com/user/9256628/info
http://www.songtaste.com/user/9256647/info
http://www.songtaste.com/user/9256646/info
http://www.songtaste.com/user/9256658/info
http://www.songtaste.com/user/9256665/info
http://www.songtaste.com/user/9256670/info
http://www.songtaste.com/user/9256674/info
http://www.songtaste.com/user/9256669/info
http://www.songtaste.com/user/9256692/info
http://www.songtaste.com/user/9256695/info
http://www.songtaste.com/user/9256708/info
http://www.songtaste.com/user/9256713/info
http://www.songtaste.com/user/9256715/info
http://www.songtaste.com/user/9256722/info
http://www.songtaste.com/user/9256723/info
http://www.songtaste.com/user/9256719/info
http://www.songtaste.com/user/9256734/info
http://www.songtaste.com/user/9256735/info
http://www.songtaste.com/user/9256742/info
http://www.songtaste.com/user/9256795/info
http://www.songtaste.com/user/9256796/info
http://www.songtaste.com/user/9256799/info
http://www.songtaste.com/user/9256806/info
http://www.songtaste.com/user/9256816/info
http://www.songtaste.com/user/9256819/info
http://www.songtaste.com/user/9256815/info
http://www.songtaste.com/user/9256823/info
http://www.songtaste.com/user/9256827/info
http://www.songtaste.com/user/9256832/info
http://www.songtaste.com/user/9256854/info
http://www.songtaste.com/user/9256855/info
http://www.songtaste.com/user/9256858/info
http://www.songtaste.com/user/9256860/info
http://www.songtaste.com/user/9256861/info
http://www.songtaste.com/user/9256872/info
http://www.songtaste.com/user/9256878/info
http://www.songtaste.com/user/9256879/info
http://www.songtaste.com/user/9256884/info
http://www.songtaste.com/user/9256897/info
http://www.songtaste.com/user/9256915/info
http://www.songtaste.com/user/9256941/info
http://www.songtaste.com/user/9256956/info
http://www.songtaste.com/user/9256966/info
http://www.songtaste.com/user/9256978/info
http://www.songtaste.com/user/9256976/info
http://www.songtaste.com/user/9256979/info
http://www.songtaste.com/user/9256984/info
http://www.songtaste.com/user/9256988/info
http://www.songtaste.com/user/9256992/info
http://www.songtaste.com/user/9257000/info
http://www.songtaste.com/user/9257005/info
http://www.songtaste.com/user/9257011/info
http://www.songtaste.com/user/9257012/info
http://www.songtaste.com/user/9257006/info
http://www.songtaste.com/user/9257022/info
http://www.songtaste.com/user/9257023/info
http://www.songtaste.com/user/9257016/info
http://www.songtaste.com/user/9257027/info
http://www.songtaste.com/user/9257030/info
http://www.songtaste.com/user/9257050/info
http://www.songtaste.com/user/9257054/info
http://www.songtaste.com/user/9257060/info
http://www.songtaste.com/user/9257062/info
http://www.songtaste.com/user/9257063/info
http://www.songtaste.com/user/9257065/info
http://www.songtaste.com/user/9257069/info
http://www.songtaste.com/user/9257073/info
http://www.songtaste.com/user/9257084/info
http://www.songtaste.com/user/9257090/info
http://www.songtaste.com/user/9257089/info
http://www.songtaste.com/user/9257100/info
http://www.songtaste.com/user/9257104/info
http://www.songtaste.com/user/9257108/info
http://www.songtaste.com/user/9257109/info
http://www.songtaste.com/user/9257112/info
http://www.songtaste.com/user/9257114/info
http://www.songtaste.com/user/9257117/info
http://www.songtaste.com/user/9257122/info
http://www.songtaste.com/user/9257130/info
http://www.songtaste.com/user/9257137/info
http://www.songtaste.com/user/9257146/info
http://www.songtaste.com/user/9257148/info
http://www.songtaste.com/user/9257153/info
http://www.songtaste.com/user/9257168/info
http://www.songtaste.com/user/9257173/info
http://www.songtaste.com/user/9257176/info
http://www.songtaste.com/user/9257184/info
http://www.songtaste.com/user/9257185/info
http://www.songtaste.com/user/9257191/info
http://www.songtaste.com/user/9257195/info
http://www.songtaste.com/user/9257201/info
http://www.songtaste.com/user/9257206/info
http://www.songtaste.com/user/9257218/info
http://www.songtaste.com/user/9257223/info
http://www.songtaste.com/user/9257228/info
http://www.songtaste.com/user/9257235/info
http://www.songtaste.com/user/9257238/info
http://www.songtaste.com/user/9257242/info
http://www.songtaste.com/user/9257249/info
http://www.songtaste.com/user/9257260/info
http://www.songtaste.com/user/9257269/info
http://www.songtaste.com/user/9257280/info
http://www.songtaste.com/user/9257296/info
http://www.songtaste.com/user/9257297/info
http://www.songtaste.com/user/9257304/info
http://www.songtaste.com/user/9257311/info
http://www.songtaste.com/user/9257327/info
http://www.songtaste.com/user/9257331/info
http://www.songtaste.com/user/9257330/info
http://www.songtaste.com/user/9257333/info
http://www.songtaste.com/user/9257334/info
http://www.songtaste.com/user/9257343/info
http://www.songtaste.com/user/9257363/info
http://www.songtaste.com/user/9257380/info
http://www.songtaste.com/user/9257381/info
http://www.songtaste.com/user/9257383/info
http://www.songtaste.com/user/9257384/info
http://www.songtaste.com/user/9257385/info
http://www.songtaste.com/user/9257414/info
http://www.songtaste.com/user/9257416/info
http://www.songtaste.com/user/9257422/info
http://www.songtaste.com/user/9257424/info
http://www.songtaste.com/user/9257426/info
http://www.songtaste.com/user/9257433/info
http://www.songtaste.com/user/9257440/info
http://www.songtaste.com/user/9257450/info
http://www.songtaste.com/user/9257456/info
http://www.songtaste.com/user/9257457/info
http://www.songtaste.com/user/9257470/info
http://www.songtaste.com/user/9257468/info
http://www.songtaste.com/user/9257473/info
http://www.songtaste.com/user/9257478/info
http://www.songtaste.com/user/9257487/info
http://www.songtaste.com/user/9257492/info
http://www.songtaste.com/user/9257490/info
http://www.songtaste.com/user/9257500/info
http://www.songtaste.com/user/9257501/info
http://www.songtaste.com/user/9257509/info
http://www.songtaste.com/user/9257514/info
http://www.songtaste.com/user/9257523/info
http://www.songtaste.com/user/9257526/info
http://www.songtaste.com/user/9257528/info
http://www.songtaste.com/user/9257529/info
http://www.songtaste.com/user/9257535/info
http://www.songtaste.com/user/9257537/info
http://www.songtaste.com/user/9257540/info
http://www.songtaste.com/user/9257546/info
http://www.songtaste.com/user/9257553/info
http://www.songtaste.com/user/9257560/info
http://www.songtaste.com/user/9257562/info
http://www.songtaste.com/user/9257570/info
http://www.songtaste.com/user/9257577/info
http://www.songtaste.com/user/9257588/info
http://www.songtaste.com/user/9257615/info
http://www.songtaste.com/user/9257620/info
http://www.songtaste.com/user/9257627/info
http://www.songtaste.com/user/9257635/info
http://www.songtaste.com/user/9257632/info
http://www.songtaste.com/user/9257645/info
http://www.songtaste.com/user/9257656/info
http://www.songtaste.com/user/9257664/info
http://www.songtaste.com/user/9257667/info
http://www.songtaste.com/user/9257673/info
http://www.songtaste.com/user/9257674/info
http://www.songtaste.com/user/9257683/info
http://www.songtaste.com/user/9257688/info
http://www.songtaste.com/user/9257699/info
http://www.songtaste.com/user/9257703/info
http://www.songtaste.com/user/9257713/info
http://www.songtaste.com/user/9257715/info
http://www.songtaste.com/user/9257732/info
http://www.songtaste.com/user/9257733/info
http://www.songtaste.com/user/9257737/info
http://www.songtaste.com/user/9257743/info
http://www.songtaste.com/user/9257751/info
http://www.songtaste.com/user/9257756/info
http://www.songtaste.com/user/9257759/info
http://www.songtaste.com/user/9257775/info
http://www.songtaste.com/user/9257777/info
http://www.songtaste.com/user/9257782/info
http://www.songtaste.com/user/9257790/info
http://www.songtaste.com/user/9257788/info
http://www.songtaste.com/user/9257798/info
http://www.songtaste.com/user/9257805/info
http://www.songtaste.com/user/9257809/info
http://www.songtaste.com/user/9257813/info
http://www.songtaste.com/user/9257814/info
http://www.songtaste.com/user/9257816/info
http://www.songtaste.com/user/9257822/info
http://www.songtaste.com/user/9257828/info
http://www.songtaste.com/user/9257837/info
http://www.songtaste.com/user/9257846/info
http://www.songtaste.com/user/9257850/info
http://www.songtaste.com/user/9257853/info
http://www.songtaste.com/user/9257854/info
http://www.songtaste.com/user/9257858/info
http://www.songtaste.com/user/9257861/info
http://www.songtaste.com/user/9257862/info
http://www.songtaste.com/user/9257869/info
http://www.songtaste.com/user/9257870/info
http://www.songtaste.com/user/9257872/info
http://www.songtaste.com/user/9257901/info
http://www.songtaste.com/user/9257912/info
http://www.songtaste.com/user/9257918/info
http://www.songtaste.com/user/9257926/info
http://www.songtaste.com/user/9257929/info
http://www.songtaste.com/user/9257940/info
http://www.songtaste.com/user/9257941/info
http://www.songtaste.com/user/9257950/info
http://www.songtaste.com/user/9257951/info
http://www.songtaste.com/user/9257952/info
http://www.songtaste.com/user/9257957/info
http://www.songtaste.com/user/9257960/info
http://www.songtaste.com/user/9257962/info
http://www.songtaste.com/user/9257963/info
http://www.songtaste.com/user/9257964/info
http://www.songtaste.com/user/9257968/info
http://www.songtaste.com/user/9257985/info
http://www.songtaste.com/user/9258000/info
http://www.songtaste.com/user/9258010/info
http://www.songtaste.com/user/9258015/info
http://www.songtaste.com/user/9258014/info
http://www.songtaste.com/user/9258019/info
http://www.songtaste.com/user/9258022/info
http://www.songtaste.com/user/9258023/info
http://www.songtaste.com/user/9258026/info
http://www.songtaste.com/user/9258029/info
http://www.songtaste.com/user/9258043/info
http://www.songtaste.com/user/9258053/info
http://www.songtaste.com/user/9258058/info
http://www.songtaste.com/user/9258059/info
http://www.songtaste.com/user/9258064/info
http://www.songtaste.com/user/9258073/info
http://www.songtaste.com/user/9258076/info
http://www.songtaste.com/user/9258079/info
http://www.songtaste.com/user/9258091/info
http://www.songtaste.com/user/9258096/info
http://www.songtaste.com/user/9258098/info
http://www.songtaste.com/user/9258101/info
http://www.songtaste.com/user/9258117/info
http://www.songtaste.com/user/9258120/info
http://www.songtaste.com/user/9258139/info
http://www.songtaste.com/user/9258148/info
http://www.songtaste.com/user/9258150/info
http://www.songtaste.com/user/9258153/info
http://www.songtaste.com/user/9258154/info
http://www.songtaste.com/user/9258155/info
http://www.songtaste.com/user/9258166/info
http://www.songtaste.com/user/9258163/info
http://www.songtaste.com/user/9258180/info
http://www.songtaste.com/user/9258182/info
http://www.songtaste.com/user/9258197/info
http://www.songtaste.com/user/9258199/info
http://www.songtaste.com/user/9258200/info
http://www.songtaste.com/user/9258201/info
http://www.songtaste.com/user/9258202/info
http://www.songtaste.com/user/9258203/info
http://www.songtaste.com/user/9258204/info
http://www.songtaste.com/user/9258205/info
http://www.songtaste.com/user/9258214/info
http://www.songtaste.com/user/9258229/info
http://www.songtaste.com/user/9258232/info
http://www.songtaste.com/user/9258234/info
http://www.songtaste.com/user/9258238/info
http://www.songtaste.com/user/9258247/info
http://www.songtaste.com/user/9258252/info
http://www.songtaste.com/user/9258263/info
http://www.songtaste.com/user/9258266/info
http://www.songtaste.com/user/9258268/info
http://www.songtaste.com/user/9258274/info
http://www.songtaste.com/user/9258285/info
http://www.songtaste.com/user/9258289/info
http://www.songtaste.com/user/9258296/info
http://www.songtaste.com/user/9258302/info
http://www.songtaste.com/user/9258303/info
http://www.songtaste.com/user/9258313/info
http://www.songtaste.com/user/9258318/info
http://www.songtaste.com/user/9258323/info
http://www.songtaste.com/user/9258327/info
http://www.songtaste.com/user/9258320/info
http://www.songtaste.com/user/9258332/info
http://www.songtaste.com/user/9258335/info
http://www.songtaste.com/user/9258342/info
http://www.songtaste.com/user/9258360/info
http://www.songtaste.com/user/9258367/info
http://www.songtaste.com/user/9258374/info
http://www.songtaste.com/user/9258377/info
http://www.songtaste.com/user/9258378/info
http://www.songtaste.com/user/9258385/info
http://www.songtaste.com/user/9258387/info
http://www.songtaste.com/user/9258393/info
http://www.songtaste.com/user/9258396/info
http://www.songtaste.com/user/9258398/info
http://www.songtaste.com/user/9258405/info
http://www.songtaste.com/user/9258404/info
http://www.songtaste.com/user/9258407/info
http://www.songtaste.com/user/9258408/info
http://www.songtaste.com/user/9258410/info
http://www.songtaste.com/user/9258418/info
http://www.songtaste.com/user/9258422/info
http://www.songtaste.com/user/9258424/info
http://www.songtaste.com/user/9258429/info
http://www.songtaste.com/user/9258435/info
http://www.songtaste.com/user/9258436/info
http://www.songtaste.com/user/9258448/info
http://www.songtaste.com/user/9258464/info
http://www.songtaste.com/user/9258469/info
http://www.songtaste.com/user/9258472/info
http://www.songtaste.com/user/9258476/info
http://www.songtaste.com/user/9258477/info
http://www.songtaste.com/user/9258479/info
http://www.songtaste.com/user/9258496/info
http://www.songtaste.com/user/9258497/info