刚入职,遇到这样的代码,怎么办... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
qinxi
V2EX    程序员

刚入职,遇到这样的代码,怎么办...

  •  
  •   qinxi 2016-12-19 15:19:00 +08:00 21038 次点击
    这是一个创建于 3220 天前的主题,其中的信息可能已经有所发展或是发生改变。

    两周前来的初创公司,当时来面试的时候说之前的 代码是外包写的,我已经有心理准备了.

    但是却没想到,居然这么渣.

    这只是冰山一脚,for 循环用的出神入化,sql 拼的清新脱俗,

    没有用户登陆认证的说法,只需要传 userId 来识别用户身份,

    没有任何安全意识,用户列表直接返回了用户的所有信息,包括手机号 密码(明文).

    没有订单概念,微信支付只负责生成订单 id,不保存,支付宝由客户端自己生成订单(私钥当然也在 app 啦~)支付成功后由客户端直接提交 userid,money 直接存放数据库..

    数据库有一个查询要 14 秒 ,居然还不建索引,不优化.不过想想 之前的 sql,也就明白了

    这仍然只是冰山一角.

    负责人不懂技术,现在技术只剩下两个 ios 和我了(说是目前不打算做 android)

    现在年底了.工作不太好找.不造该咋办了.

    工作正好2年半,不过学历是大专

    第 1 条附言    2016-12-20 10:42:25 +08:00
    更糟心的是,给我的代码跟服务器上的对不上.

    我说一次.然后联系之前的人压缩给我,并说:这次肯定是最新的.

    然而 我还能发现 服务器有的功能我本地并没有.......

    这不是我想要的生活.先投简历.今天跟老板说
    133 条回复    2017-01-02 10:46:17 +08:00
    1  2  
    Miy4mori
        1
    Miy4mori  
       2016-12-19 15:25:04 +08:00 via Android
    大兄弟,赶紧另谋出路吧!
    qinxi
        2
    qinxi  
    OP
       2016-12-19 15:27:32 +08:00
    @Miy4mori 但是年底不太好找.唉
    Miy4mori
        3
    Miy4mori  
       2016-12-19 15:29:09 +08:00 via Android
    @qinxi 如果有实力的话可以慢慢重构,不过风险太大还没好处,可以先混着投简历……
    zhuangzhuang1988
        4
    zhuangzhuang1988  
       2016-12-19 15:32:36 +08:00
    我草, 网站 /api 在哪里, 可以测试注入了
    775229836
        5
    775229836  
       2016-12-19 15:37:17 +08:00
    我就看看不说话,你加油吧
    ipconfiger
        6
    ipconfiger  
       2016-12-19 15:38:07 +08:00
    外包的不就这样子了么
    helloccav
        7
    helloccav  
       2016-12-19 15:40:22 +08:00
    如果老板能认识到之前的代码多么烂并肯定你的能力与工作,那还是可以待下去的,否则就走人吧
    dapeng
        8
    dapeng  
       2016-12-19 15:40:42 +08:00
    我也要尝试下注入玩玩
    murmur
        9
    murmur  
       2016-12-19 15:41:33 +08:00
    绝佳的新人练手网站
    lusyoe
        10
    lusyoe  
       2016-12-19 15:41:42 +08:00 via iPhone
    我这也差不多啊,刚入职发现项目连 MVC 都没划分,业务逻辑加数据库查询全部写在 Struts 的 Action(Controller)中。。
    qinxi
        11
    qinxi  
    OP
       2016-12-19 15:42:55 +08:00
    @zhuangzhuang1988 根本就不需要人刻意注入, 上周他们说报错了.我一看.他们的参数有个 King's College London .我摊手,他这个 hibernate 封装是那个外包公司自己的.没有源码,只有 jar.

    数据库密码 root root,刚入职时候跟我说数据库天天崩,要重启...后来我查到是被黑了,告诉他们,他们说 以前数据被清空过....那居然还没人管...
    chocotan
        12
    chocotan  
       2016-12-19 15:46:28 +08:00
    面试的时候得了解清楚
    我待的第一家公司也不比楼主现在的好到哪里去......
    sorcerer
        13
    sorcerer  
       2016-12-19 15:47:02 +08:00 via iPhone
    @lusyoe 我这边自己写内部小系统没仔细划分 service 层和 dao 层。貌似你们更绝...
    sagaxu
        14
    sagaxu  
       2016-12-19 15:48:50 +08:00
    永远不要接盘外包代码,一帮月薪 10k 左右的人能写的出能用的代码吗?
    lijsh
        15
    lijsh  
       2016-12-19 15:50:18 +08:00   11
    我比你惨,几个月前 CTO 拉了个前端架构师写了个项目后来让我接手,好家伙,完全不搞模块化,变量、函数挂在 windows 上,明明引入了 Vue.js 还是大量 jQuery 操作 DOM ,异步状态也混乱,用 setTimeout 解决异步变量依赖……

    有两次我实在引不住了,直接拉他过来吐槽,然后这个项目完了后我被炒了。

    呵呵。
    fwrq41251
        16
    fwrq41251  
       2016-12-19 15:50:37 +08:00
    你们的数据库似乎还有三种命名风格,驼峰,下划线,全小写。。
    先在公司划一划,等明年换工作吧。
    qfdk
        17
    qfdk  
    PRO
       2016-12-19 15:52:16 +08:00 via Android
    告诉我 哪个公司 我绝对不会去注册 免得出现在 xxlove2017 数据库中
    qinxi
        18
    qinxi  
    OP
       2016-12-19 15:56:56 +08:00
    @lijsh 哈哈哈哈哈哈哈 666
    xrlin
        19
    xrlin  
       2016-12-19 15:59:28 +08:00 via iPhone
    666, 绝佳网络攻击练手网站()
    VaneHay
        20
    VaneHay  
       2016-12-19 16:00:02 +08:00
    等签完字,马上离职.也是外包公司,干了半年,真心累了.不过不在帝都,魔都
    yanzixuan
        21
    yanzixuan  
       2016-12-19 16:00:04 +08:00
    @helloccav 估计老板就是被忽悠的命。
    malkavia
        22
    malkavia  
       2016-12-19 16:00:43 +08:00   2
    @sagaxu 10k 月薪的躺着中枪了...
    qinxi
        23
    qinxi  
    OP
       2016-12-19 16:01:11 +08:00
    @fwrq41251 没法划水,任务清单老板都打印了.就我一个人做服务端,我划了都没人干活了.
    scys
        24
    scys  
       2016-12-19 16:07:21 +08:00
    楼主你去的是技术公司?
    还是去销售公司?
    qinxi
        25
    qinxi  
    OP
       2016-12-19 16:10:39 +08:00
    @scys 一个初创公司.社交属性的
    ilanyu
        26
    ilanyu  
       2016-12-19 16:14:23 +08:00 via Android
    厉害了我的玺
    Bown
        27
    Bown  
       2016-12-19 16:17:01 +08:00
    start size returnType 这是 IDEA 的什么插件吗
    robinshi2010
        28
    robinshi2010  
       2016-12-19 16:19:52 +08:00
    求问给多少钱才把你骗去的。
    Heinz
        29
    Heinz  
       2016-12-19 16:20:26 +08:00 via iPhone
    心疼
    qinxi
        30
    qinxi  
    OP
       2016-12-19 16:20:29 +08:00
    @Bown IDEA 最新版自带的
    qinxi
        31
    qinxi  
    OP
       2016-12-19 16:23:19 +08:00
    @robinshi2010 15 ...是不是很没出息
    itqls
        32
    itqls  
       2016-12-19 16:27:50 +08:00
    @qinxi 15 可以了...今年不景气呀
    wupher
        33
    wupher  
       2016-12-19 16:29:49 +08:00
    能说说是哪家初创公司么?帮它做个安全测试。
    qinxi
        34
    qinxi  
    OP
       2016-12-19 16:37:01 +08:00
    @wupher 那还是算了,出事了 不还是得找我.
    TIGERB
        35
    TIGERB  
       2016-12-19 16:38:31 +08:00
    开辟一片属于你的天地吧~
    SunnyCoffee
        36
    SunnyCoffee  
       2016-12-19 16:46:11 +08:00
    这是练习重构的好机会
    AltairT
        37
    AltairT  
       2016-12-19 16:50:08 +08:00 via iPhone
    只加功能少多事,你们头也不懂,你做好事也不一定领情的,以后出了问题都是你的锅
    annielong
        38
    annielong  
       2016-12-19 16:50:38 +08:00
    for 用的真是出神入化,
    yunying
        39
    yunying  
       2016-12-19 16:53:05 +08:00
    @lijsh 你去反映代码烂,反倒你被抄?快点把这个公司的名字爆出来,让我们笑一下
    irainsoft
        40
    irainsoft  
       2016-12-19 16:55:05 +08:00
    哈哈哈哈千万别把网址漏出来否则肯定一堆人想下手

    for 循环用的出神入化,sql 拼的清新脱俗 这句好顺口 2333333
    Rice
        41
    Rice  
       2016-12-19 16:56:41 +08:00
    去年我做的公司就是这样,连我个前端都看出他数据库和后台有问题了,赶紧找了个借口跑了。
    coderluan
        42
    coderluan  
       2016-12-19 17:08:30 +08:00
    从市场需求角度来说,很正常,先和公司反映一下,把主要问题和风险指明了,保留邮件,防止背锅,剩下的看公司决定。
    dreamwar
        43
    dreamwar  
       2016-12-19 17:15:08 +08:00
    @lijsh 心疼你
    Mogugugugu
        44
    Mogugugugu  
       2016-12-19 17:15:54 +08:00
    外包都是这种代码....开发速度至上,老板等不及,客户也等不及。这很正常的,很多都是代码生成器直接生成的。。。
    Email
        45
    Email  
       2016-12-19 17:16:23 +08:00   2
    ```
    for (int i = 0; i < 1000; i++) {
    save(); //存一千次 保证存成功
    }
    ```

    我又想起了这一段代码. for 循环用的出神入化
    chuanqirenwu
        46
    chuanqirenwu  
       2016-12-19 17:22:54 +08:00
    以前做过一个小外包,原则是只保证程序正常情况下不出问题,至于异常处理,安全性处理什么的不在考虑范围内。
    KentY
        47
    KentY  
       2016-12-19 17:27:45 +08:00   17
    不知道是不是我老了, 观念跟不上年轻人了, 我对这个贴有个别的看法.
    1, 外包的不一定差, digg 也是外包做的. 不要觉得是外包做的 就"有思想准备"
    2. 某种角度说, 解决问题的能力是自己价值的体现的一种方式. 这可以是漂亮地实现一个复杂功能, 也可能是把烂摊子规整好.
    3. 就问题本身, 当你在某领域的知识比别人深厚了, 看别人的工作, 就会发现非常多的问题, 首先一个锻炼自己的事就是, 不抱怨,不笑话别人. 要么指导别人, 要么改正 /进别人的工作. 这个说来容易, 其实很难做到, 包括我自己. 你可以注意观察下, 公司里的高深人士, 很少抱怨, 笑话别人的工作, 反而都是那些还不错 ,或者半瓶醋的水平人, 才做这样的事. 你接了一些不好的代码, 这的确头疼, 你可以大概归纳一下, 代码里你能发现的问题, 问题可能导致的后果以及你能想到的改进方案, 并且做个评估, 时间啊, 精力等. 然后跟你的领导谈一下, 说明如果投入这个会对将来有什么好处, 让领导决定是否要改进. 自己态度上是一个积极态度, 这并不是说要让领导看到你积极, 而是自己真要积极. 不要怕担责任, 你想, 你心里各行各业的牛人, 没有怕担责任的, 都是勇于担当. 主要审视自己能不能做好, 尽力去做到最好.
    当然, 如果对现在公司, 职位实在不满意, 可以考虑换工作.

    my 2 cents.
    wemore
        48
    wemore  
       2016-12-19 17:29:15 +08:00 via iPhone
    话说网站安全处理一般要干啥,用户输入的非法字符转码还有啥别的吗
    unknownservice
        49
    unknownservice  
       2016-12-19 17:29:53 +08:00
    给跪了,赶紧走,要不你要被毁了。。。
    tabris17
        50
    tabris17  
       2016-12-19 17:30:57 +08:00
    传说中的 1 分钱下订单吗?
    Sendya
        51
    Sendya  
       2016-12-19 17:31:48 +08:00
    @sagaxu 5K 工资看哭了
    uxstone
        52
    uxstone  
       2016-12-19 17:39:53 +08:00
    已经不错了,还好是 Java 写的,
    要是 PHP 写的就。。。。。
    775229836
        53
    775229836  
       2016-12-19 17:49:48 +08:00
    @sagaxu 不要用工资衡量啊,我 6K 也知道要预防这些常识问题
    flyingfz
        54
    flyingfz  
       2016-12-19 17:50:41 +08:00
    必须要和 老板讲清楚现在的系统的风险,以及你的意见。

    这是对你后面的工作负责(不论 是否 继续做下去), 同时也是对老板给你的工资负责。

    如果老板不重视你的意见,那只能说: 赶紧弃坑,否则最后会不欢而散。这样对谁都不好。
    sorra
        55
    sorra  
       2016-12-19 17:59:02 +08:00
    @qinxi 一看代码就是做 SNS 的。
    如果工资满意,可以向老板说明现状,让他支持和认可你接下来的工作。虽然既有的代码不好,但毕竟后端架构归你管了,是个练手机会。一切都做好了还有你什么事呢?
    如果你费力不讨好,那就不值得。
    amery2010
        56
    amery2010  
       2016-12-19 18:00:19 +08:00
    年末其实工作并没有想象的那样难找,你如果真心不想留在这公司的话,可以试着先更新网上的简历,边上班边找工作。
    lijsh
        57
    lijsh  
       2016-12-19 18:01:58 +08:00
    @yunying 其实公司不差,主要是新来的 CTO 有问题。
    guyskk
        58
    guyskk  
       2016-12-19 18:03:43 +08:00 via Android
    如果公司业务上确实有前景, boss 也愿意听你的建议,这就是你提高的机会,代码烂不烂都是次要的。
    否则,现在就开始找下家。
    sagaxu
        59
    sagaxu  
       2016-12-19 18:15:40 +08:00
    @Sendya 创业元老和体制内的别闹
    heeexy
        60
    heeexy  
       2016-12-19 18:28:20 +08:00
    讲真 要从外包公司离职. 这半年写的代码都是楼主讲得这种#24 怎么办...
    nimdanoob
        61
    nimdanoob  
       2016-12-19 18:50:09 +08:00
    如果公司确实还不错的话,看下工程量大不,可以跟领导商量选择重写
    fantastM
        62
    fantastM  
       2016-12-19 18:59:28 +08:00
    我这情况差不多。项目工程里存在一个反编译代码的包。包里类名、变量名清一色 abcd......老大说这是零几年写的,因为丢失了源码,所以只能反编译。
    loveminds
        63
    loveminds  
       2016-12-19 19:05:55 +08:00
    @qinxi 和乌云见到的某个地方的公安网的某数据库差不多, sa 123456 并且允许外部连接....
    lain0
        64
    lain0  
       2016-12-19 19:09:53 +08:00
    网站是什么,我去注入~
    ttop5
        65
    ttop5  
       2016-12-19 19:13:07 +08:00 via Android
    赶紧跑路别回头
    q397064399
        66
    q397064399  
       2016-12-19 19:16:15 +08:00
    这个时候不正是 展示你 24 种设计模式 以及 重构大法的能力么?
    wohenyingyu02
        67
    wohenyingyu02  
       2016-12-19 19:17:24 +08:00 via iPhone
    @sagaxu 没到 10K 的路过……
    q397064399
        68
    q397064399  
       2016-12-19 19:18:21 +08:00
    做业务的公司,代码肯定是会根据需求变动的,找外包写,必然是怎么快怎么来,有的时候 复制粘贴 能搞定就搞定了,写的人倒是爽了, 3 个月之后,自己反正基本上就别人填坑了,,一般自己写的代码 3 个月内,配合注释还是能看懂的,超过 3 个月,基本上是要出事的,就等着重构吧
    cxbig
        69
    cxbig  
       2016-12-19 19:19:00 +08:00
    烂摊子多少都会有,解决这个问题也是个人价值的体现。只要公司认可你的工作,不会把责任无脑的归于你就行。
    我现在的公司就是第一个 release 外包的,这 3 年来我们逐步把烂代码都干掉。头 2 年我们天天骂外包公司,近一年我们很少再提及这事了。
    q397064399
        70
    q397064399  
       2016-12-19 19:21:10 +08:00
    另外 外包本来就是一次性的玩意,外包一个人月,基本上是怎么快,就怎么来,谁管那么多,只要上线能运行就 ok

    你真要外包一个人年,人家肯定是要好好写的,提前做好设计 为未来做准备,毕竟是自己挖的坑,还得自己来填
    q397064399
        71
    q397064399  
       2016-12-19 19:22:27 +08:00
    @cxbig 骂外包,没必要吧,毕竟钱摆在那里,你要真外包一个人年,人家也会好好写
    tedzhou1221
        72
    tedzhou1221  
       2016-12-19 19:34:38 +08:00 via iPhone
    谁告诉你年底不好找工作的?

    我两天面试了 3 家就找到了
    so898
        73
    so898  
       2016-12-19 19:34:41 +08:00
    上面一排人在说 SQL 注入啥的,我突然想起来之前和朋友一起研究的解决 SQL 注入的好方法

    把所有标点符号都改成全角字符

    让你丫的再注入
    q397064399
        74
    q397064399  
       2016-12-19 19:44:47 +08:00
    @so898 现有的防注入的方案一大堆,没必要
    raincious
        75
    raincious  
       2016-12-19 20:04:58 +08:00
    @so898

    要是这样简单就安全了,那这方案为什么没有成为最佳实践?

    实际的问题要复杂得多,比如:
    http://stackoverflow.com/a/12118602/3628434
    so898
        76
    so898  
       2016-12-19 20:35:22 +08:00
    @raincious 有种东西叫做/\
    全角符号真万能啊……
    Simpleyyt
        77
    Simpleyyt  
       2016-12-19 20:44:05 +08:00
    @lain0 跟我想的一样
    jy01264313
        78
    jy01264313  
       2016-12-19 20:58:08 +08:00
    其实你换一个工作看起来也是差不多的
    unicorn1390
        79
    unicorn1390  
       2016-12-19 21:05:14 +08:00
    和我大一时候写的一毛一样。。
    xssing
        80
    xssing  
       2016-12-19 22:30:03 +08:00
    从安全的角度看有
    1. 越权操作漏洞
    2.SQL 注入漏洞
    3.支付漏洞

    。。。。。。。。。。。。。。
    anthozoan77
        81
    anthozoan77  
       2016-12-20 00:02:15 +08:00
    看了大家的评论,默默地面壁...
    everettjf
        82
    everettjf  
       2016-12-20 00:05:17 +08:00
    看老板是否重视你,你是否有权利决定重构,你是否有魄力重构,重构后老板是否认可。传说滴滴最初不也是外包的么,代码也很烂~
    airyland
        83
    airyland  
       2016-12-20 00:07:39 +08:00
    代码烂还可以稍微理解,这是严重的安全问题啊
    bearzk
        84
    bearzk  
       2016-12-20 00:20:35 +08:00
    14 秒太严重了 换地方吧 这坑不好填啊
    wjm2038
        85
    wjm2038  
       2016-12-20 01:08:13 +08:00 via Android
    @qfdk xxlove 是啥。。
    yangqi
        86
    yangqi  
       2016-12-20 01:12:03 +08:00
    这不正好是你的机会么,如果人家什么都写的很规范很标准了,还要你干嘛?
    mathgl
        87
    mathgl  
       2016-12-20 01:17:52 +08:00
    @sagaxu 外包现在工资有 10K 了。
    glogo
        88
    glogo  
       2016-12-20 01:27:34 +08:00
    大兄弟赶紧另谋出路吧
    practicer
        89
    practicer  
       2016-12-20 07:23:14 +08:00 via Android
    先把网站搞挂掉,再自己修好,引起领导重视?
    Felldeadbird
        90
    Felldeadbird  
       2016-12-20 09:08:03 +08:00
    这种代码你是改不了的了。除非重构,否则是不给你换的。
    dong3580
        91
    dong3580  
       2016-12-20 09:21:29 +08:00
    @Felldeadbird
    当年我都是一个方法一个方法的改,真的,可以改的,比如新增功能,你可以把那块的某些方法注释一下,稳定运行几周再切换到自己的方法并及时测试.

    @qinxi
    这绝对是一个好的练手机会, 依靠那些代码,学到了很多东西,有些方法我根本没用过,这样一来,我能用的更好.
    专业填坑户,现在基本不怕大多数坑.
    拼接 sql 真是算是好了,要是代码生成器生成的,你连 sql 都找不到,拼出来的方法都能让你头晕.
    wupher
        92
    wupher  
       2016-12-20 09:46:04 +08:00
    @qinxi 求教,原文中 “参数有个 King's College London ” 。 "King's College London" 是什么梗? 应该不是指国王学院吧。
    robinshi2010
        93
    robinshi2010  
       2016-12-20 09:54:18 +08:00
    @qinxi 并不会。
    建议跟头沟通好这个事儿吧。先把问题说清楚确保他认识到问题的严重性。然后再共同定制修改计划。别闷头干出力还不被理解就好。
    raiz
        94
    raiz  
       2016-12-20 09:59:54 +08:00
    这代码好面熟,好像是我写的 : p
    zlawliet
        95
    zlawliet  
       2016-12-20 10:08:23 +08:00
    见怪不怪...
    qinxi
        96
    qinxi  
    OP
       2016-12-20 10:46:46 +08:00   1
    @wupher 要查询一个学校的人.就有参数 是 伦敦大学国王学院....英文的 king's 就触发了注入
    qinxi
        97
    qinxi  
    OP
       2016-12-20 10:53:14 +08:00
    @qinxi 好像叫 伦敦国王学院....不是伦敦大学..尴尬
    zpf124
        98
    zpf124  
       2016-12-20 10:53:59 +08:00
    @Bown 新版 idea 默认会显示出调用方法的形参。
    m1a0
        99
    m1a0  
       2016-12-20 11:00:47 +08:00   1
    @wupher 应该是里面的单引号把 SQL 闭合了, 之后就执行错误了。
    yivanus
        100
    yivanus  
       2016-12-20 11:27:15 +08:00
    @raiz 赶紧回去 填坑。。。。哈哈。
    1  2   table cellpadding="0" cellspacing="0" border="0" width="100%">
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5543 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 09:02 PVG 17:02 LAX 02:02 JFK 05:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86